最近又把底层换成了FNos,然后飞牛可以持续挂载网盘,这样我终于可以摆脱Alist或者Openlist用的第三方不稳定的挂载了。
这个时候又接触了思源笔记,需要稳定的同步服务器,加上手里的云服务器越来越多,我需要一个稳定的内容服务器来负责备份和同步节点。那么现在最好的就是S3存储了。
第一步:自建方案的选择
我们第一步需要找到一个合适的自建S3的方案。我之前就知道Minio,用的人也不少。
但是当我第一次按照别人的教程部署完成之后,我发现我的版本少了一大块内容。原来竟然是2025年四月的一次更新,Minio 竟然把管理界面给删除了!令我十分生气。好在我们可以安装删除的前一个版本。
(我尝试了另外一个方案,rustfs,但是它还在开发中,然后它的复制容器竟然需要四个存储和纠错作为基础。暂时没搞明白,蒜鸟蒜鸟。)
第二步:具体怎么干-很不优雅但能行?
然后就是理想情况是,我们建造一个Minio,然后建立两个桶,然后一个桶放在服务器上,一个桶放在网盘挂载的位置上。
但是!我发现Minio一个容器好像只能安排一个路径来存放这个桶。所以曲线救国,(谁叫我是新手呢)我们弄两个Minio,安排两个路径不久好了!
(我真是个天才)叉腰
第三步:部署X2
-
先让我们弄一个本地放置S3的持久化地址
-
然后创建两个文件在这个地址里
-
第一个文件是
.env
,这个样子可以方便大家复制,改这个就行。
-
CONTAINER_NAME='1Panel-minio-1' #名称
CPUS=0
HOST_IP='' #应该可以留空
MEMORY_LIMIT=0
MINIO_BROWSER='on' #开启前台方便管理
MINIO_BROWSER_LOGIN_ANIMATION='on'
MINIO_BROWSER_SESSION_DURATION='12h'
PANEL_APP_PORT_API=49000 #外面访问S3的端口
PANEL_APP_PORT_HTTP=49001 #前台管理端口
PANEL_MINIO_ROOT_PASSWORD='abcd123' #密码记好
PANEL_MINIO_ROOT_USER='Sehlani' #账号记好
MINIO_BROWSER_REDIRECT_URL='https://你的域名:反向代理的端口/' #重要:Console 对外地址(走你 Nginx/OpenResty 的 HTTPS 域名;注意末尾 /)
data_address='/vol02/minio/data' #你刚才的地址,持久化,刚才第一步让你准备的那个
2.第二个文件是 docker-compose.yml
networks:
1panel-network:
external: true
services:
minio:
command: server /data --console-address :9001 --address :9000
container_name: ${CONTAINER_NAME}
deploy:
resources:
limits:
cpus: ${CPUS}
memory: ${MEMORY_LIMIT}
environment:
MINIO_BROWSER: ${MINIO_BROWSER}
MINIO_BROWSER_LOGIN_ANIMATION: ${MINIO_BROWSER_LOGIN_ANIMATION}
MINIO_BROWSER_REDIRECT_URL: ${MINIO_BROWSER_REDIRECT_URL}
MINIO_BROWSER_SESSION_DURATION: ${MINIO_BROWSER_SESSION_DURATION}
MINIO_ROOT_PASSWORD: ${PANEL_MINIO_ROOT_PASSWORD}
MINIO_ROOT_USER: ${PANEL_MINIO_ROOT_USER}
image: minio/minio:RELEASE.2025-04-22T22-12-26Z #最后一个版本有admin的
labels:
createdBy: Apps
logging:
driver: json-file
options:
max-file: "10"
max-size: 5M
networks:
- minio-network #同一个网络就行,这里的名字可改
ports:
# 面向本机的明文端口(由 OpenResty 反代到这里)
- ${HOST_IP}:${PANEL_APP_PORT_HTTP}:9001
- ${HOST_IP}:${PANEL_APP_PORT_API}:9000
restart: always
volumes:
- ${data_address}:/data
# ⚠ 若仅由 OpenResty 终止 TLS,不要在容器里放证书,否则 MinIO 会启用自身 TLS。
# 如该目录为空可保留;若有 cert/key,请注释掉下一行或清空目录。
# - ./certs:/root/.minio/certs
-
运行这个docker-compose。cd 到你的文件夹,然后
docker-compose up -d
第四步:重复第三步
-
记得先更换成你网盘挂载的地址。
-
然后创建两个文件在这个地址里。(如上)
-
记得更换反向代理的网站。
-
记得更换 CONTAINER_NAME='1Panel-minio-1' #名称
-
记得更换两个端口
-
第五步:(建议但可选)反向代理X2组
-
nginx也得配置,即使你用的是1panel的自动配置,也得改
-
案例(你可以喂给GPT或者deepseek 让它适配下你的情况)
-
反向代理面板
server {
listen 8080; # 非SSL端口
listen 8888 ssl; # SSL端口
http2 on; # 开启 HTTP/2
server_name 你的域名; # 记得改成你的域名
location / {
proxy_http_version 1.1;
# WebSocket 支持(无需 map)
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 86400s;
proxy_send_timeout 86400s;
chunked_transfer_encoding off;
proxy_pass http://127.0.0.1:49001; # 你的后端服务地址和端口
}
# 自动跳转到 https
if ($scheme = http) {
return 301 https://$host$request_uri;
}
# SSL证书配置(记得改成你自己的)
ssl_certificate /你的ssl地址/ssl/fullchain.pem;
ssl_certificate_key /你的ssl地址/ssl/privkey.pem;
ssl_protocols TLSv1.3 TLSv1.2;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
# 日志路径(记得改成你自己的)
access_log /你的log地址/log/access.log main;
error_log /你的log地址/log/error.log;
}
-
反向代理S3访问端口
server {
listen 8080; # http端口
listen 8888 ssl http2; # https端口
server_name 你的域名不带端口; # 你的域名不带端口
# 大文件/长连接
client_max_body_size 0;
proxy_request_buffering off;
proxy_buffering off;
proxy_read_timeout 86400s;
proxy_send_timeout 86400s;
send_timeout 86400s;
# 根路径直达 S3 API
location / {
proxy_http_version 1.1;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Connection "";
chunked_transfer_encoding off;
proxy_pass http://127.0.0.1:49000; #你的本地IP和端口
}
if ($scheme = http) { return 301 https://$host$request_uri; }
ssl_certificate /你的ssl地址/ssl/fullchain.pem; #记得改
ssl_certificate_key /你的ssl地址/ssl/privkey.pem; # 记得改
ssl_protocols TLSv1.3 TLSv1.2;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
access_log /你的log地址/log/access.log main; #记得改
error_log /你的log地址/log/error.log; # 记得改
}
第六步:设置Minio
-
输出你设置的账号密码进去
-
在服务器本地点击新建一个桶,记得一定打开版本,versioned
-
设置Access Keys-1,记得保存
-
-
在网盘目录上建立的Minio点击新建另外一个桶,versioned。
-
设置Access Keys-2,记得保存
-
-
设置本地服务器的Minio的Repication的复制
那个Use TLS记得关一下,内网访问不用TLS。你要是部署到外网VPS记得换成反向代理的地址和端口,开这个TLS。
注意一个大坑!那个URL不要加http或者https!
然后就结束了!
你可以快乐的通过你配置的反向代理的S3地址,备份思源笔记,备份你的服务器什么的了。
哦哦,你的Key和Secret 全是你的panel 的账户密码也可以。可以不用弄个新的。