alist
分享了一些文件,偶尔需要分享到公网,开启https还是有些安全感的。
下载证书
我的域名证书都是在ohttps
统一管理,价格便宜,也可以用免费的,我用的手动更新,3个月更新一次,每个域名单次手动更新0.25元。
https://ohttps.com/?invitationCode=5py6vrv176xrnze1
下载我们需要的证书

安装alist
在alist
文件夹创建cert
、config
两个文件夹和docker-compose.yml
文件。把刚才下载的两个证书文件上传到cert
文件夹内。docker-compose.yml
文件内容和目录结构参考如下:

docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
services:
alist:
image: xhofe/alist:latest
container_name: alist
volumes:
- ./config:/opt/alist/data
- ./cert:/cert
ports:
- 5244:5244
- 5245:5245
environment:
- PUID=0
- PGID=0
- UMASK=022
restart: unless-stopped
|
然后运行 docker compose up -d alist容器就创建完成了
修改alist config
alist创建完成后,config文件会有config.json配置文件,普通用户无权限修改,所以运行sudo vim config/config.json
修改配置文件,scheme
修改内容如下:
1
2
3
4
5
6
7
8
9
10
|
"scheme": {
"address": "0.0.0.0",
"http_port": 5244,
"https_port": 5245,
"force_https": false,
"cert_file": "/cert/fullchain.cer",
"key_file": "/cert/cert.key",
"unix_file": "",
"unix_file_perm": ""
},
|
配置生效
运行如下命令重构容器,容器重构后,在内网可以用https://localhost:5245或者[http://localhost:5244/](http://localhost:5244/)
docker compose down
docker compose up -d
映射公网端口
配合ddns服务就可以用自己域名和映射端口,公网访问自己的alist

用NGINX实现
通过NGINX反向代理到alist的5244端口,所以alist docker-compose 文件不需要改动,路由器NAT服务端口映射内网端口5244 改成 443
nginx配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
server {
listen 443 ssl;
server_name nas.11010.net; # 改成你的域名
ssl_certificate /etc/nginx/certs/fullchain.cer;
ssl_certificate_key /etc/nginx/certs/cert.key;
location / {
proxy_pass http://192.168.3.103:5244; # 改成你的容器或服务
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
|
📎 参考文章