跳到主要内容

docker部署openlist

最后更新于:

docker部署openlist

1、docker部署

警告

强烈建议使用 Docker 在隔离环境中部署 OpenList。否则,如果没有正确配置像 SELinux 或 AppArmor 这样的安全措施,假如您的密码暴露,黑客将可以访问您服务器上的所有文件。

警告

  • v4.1.0 以后的版本中(不包含 v4.1.0),OpenList 镜像已经移除了 PUIDPGID,并借鉴于 MariaDB 的构建方式,使用 useradd 增加了用户 openlist(UID 1001)和组 openlist(GID 1001),并使用该用户运行 openlist server

    这意味着,您需要手动处理映射的目录的权限问题,确保容器内的 openlist(1001) 用户有权限访问映射的目录。

    您也可以通过 --user UID:GID 的方式来运行容器指定容器内运行 OpenList 的用户和组,让容器内有权限访问映射的目录。

  • rootless 模式中的 Docker, --user 0:0 代表当前用户的 UID 和 GID。请确保您在运行容器时,正确设置了 --user 参数,以确保文件权限的正确性。

创建 docker-compose.yml 文件。

1mkdir -p /root/docker-service/openlist
2cd /root/docker-service/openlist
3vim docker-compose.yml

写入以下内容,然后保存并退出:

v4.1.0 以后版本

 1# docker-compose.yml
 2services:
 3  openlist:
 4    image: 'openlistteam/openlist:latest'
 5    container_name: openlist
 6    user: '0:0' # Please replace `0:0` with the actual user ID and group ID you want to use to run OpenList.
 7    volumes:
 8      - './data:/opt/openlist/data'
 9    ports:
10      - '5244:5244'
11    environment:
12      - UMASK=022
13    restart: unless-stopped

运行:

1docker-compose up -d

image-20251221104748620

访问:

http://121.4.103.106:5244/

image-20251221105136361

image-20251221105151924

查看管理员信息

首次运行

1docker logs openlist

你将在日志中看到密码。

1Successfully created the admin user and the initial password is: xYZabHGf

非首次运行

您可以重新生成手动设置密码

1# 重新随机生成密码
2docker exec -it openlist ./openlist admin random
3
4# 手动设置密码为 `NEW_PASSWORD`(替换为您要设置的密码)
5docker exec -it openlist ./openlist admin set NEW_PASSWORD

2、配置nginx

云服务器配置好nginx:

 1[root@hg-ecs conf.d]#cat openlist.onedayxyy.cn.conf 
 2server {
 3    listen 80;
 4    server_name  openlist.onedayxyy.cn;
 5    #配置https重定向
 6    return 301 https://$host$request_uri;
 7}
 8
 9server {
10    listen  443 ssl;
11    server_name  openlist.onedayxyy.cn;
12
13    location / {
14        proxy_pass http://127.0.0.1:5244/; 
15        client_max_body_size 100M;
16        proxy_set_header Host $host;
17        proxy_set_header X-Real-IP $remote_addr;
18        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
19        proxy_set_header X-Forwarded-Proto $scheme;
20    } 
21
22    ssl_certificate             /etc/letsencrypt/live/onedayxyy.cn/fullchain.pem;
23    ssl_certificate_key         /etc/letsencrypt/live/onedayxyy.cn/privkey.pem;
24 
25    ssl_session_timeout 5m;
26    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
27    ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
28    ssl_prefer_server_ciphers on;
29    add_header Strict-Transport-Security "max-age=31536000";
30    
31    access_log /var/log/nginx/photo.onedayxyy.cn.https.log;
32}

重启nginx服务:systemctl restart nginx

在自己dns做好域名解析,后续就可以用域名来访问了。

最新文章

文档导航