在 1Panel 应用商店部署 RustFS:安装、配置与验证步骤
装一套对象存储教程往往一上来就是十几行的 docker run挂卷、设环境变量、开端口装完还得自己琢磨凭证和 TLS 的事。如果只是想给备份、图床或者网盘找个存储后端可以先走一条更省事的路RustFS 已经上架了 1Panel 的应用商店安装、升级、日志查看都能在面板里完成。RustFS 是一个开源的分布式对象存储100% 兼容 S3 协议采用 Apache 2.0 协议。先确认这三样东西在手一台能跑 Docker 的 Linux 服务器CentOS、Ubuntu、Debian 这些主流发行版都行内存 1 GB 起步这是商店条目标注的安装门槛一个装好的 1Panel它是飞致云出品的开源 Linux 服务器运维管理面板用 Web 界面管网站、数据库、容器这些活一个想绑的域名不挂 HTTPS 可以先没有。没装 1Panel 的话先跑下面这一行装好面板后续步骤都在 Web 界面里操作这也是全文唯一要敲的 shellbash-c$(curl-sSLhttps://resource.fit2cloud.com/1panel/package/v2/quick_start.sh)脚本跑完会输出面板访问地址和初始账号浏览器进去就行。RustFS 在商店里的条目支持 amd64 和 arm64 两种架构常见云服务器和 ARM 小主机都能装。应用商店里搜 RustFS进面板后点左侧菜单的“应用商店”右上角搜索框输入 RustFS点应用卡片进详情页点“安装”。安装弹窗里有几组参数要过一遍名称默认 rustfs不用动。API 端口 / Web 端口分别映射容器里的 9000 和 9001。9000 是 S3 APIS3 是对象存储的通用协议兼容它意味着现成的备份软件、S3 客户端、各类 SDK 都能直接接9001 是 Web 管理控制台。宿主机上这两个口被占的话在弹窗里改掉。用户 / 密码登录控制台、应用程序接 S3 API 用的那对凭证。这里有个值得知道的默认值用户名默认就是 rustfsadmin模板没给它做随机生成务必改掉密码一栏面板会自动生成随机值存好或改成自己顺手的都行。RustFS 官方容器文档警告过任一凭证都别用众所周知的 rustfsadmin商店模板的用户名默认值恰好就是它。启用控制台模板默认开启。只把 RustFS 当存储后端、不需要 Web 管理界面的可以选关闭9001 控制台就不存在了。端口外部访问这是 1Panel 安装弹窗的通用开关控制面板防火墙放行属于面板能力而非 RustFS 模板自带。想让局域网直接访问 9001 控制台就打开但能不开就别为公网开9000、9001 裸露在公网会被扫描器持续盯着控制台登录页尤其招人。对外服务统一走后面说的反向代理从 443 的域名进原始端口只留在内网确有直连需求再用防火墙或安全组按来源 IP 收窄。弹窗里没有存储路径这一项数据挂载在模板 compose 里写死为./data:/data落在 1Panel 该应用目录下的 data 子目录。备份和迁移时记住这一点数据在这儿不在容器里。确认之后面板自己拉镜像、起容器已安装列表里状态变成已启动就算装完。整个过程的参数都收在面板里背后就是一个普通容器后面排查问题时按容器那一套来就行。装完先别急着用凭证和 HTTPS如果安装时没填自定义凭证先停下来处理这件事。官方文档给的改法是停掉容器带上RUSTFS_ACCESS_KEY和RUSTFS_SECRET_KEY两个环境变量重建数据卷不受影响。在 1Panel 里对应“已安装”列表中修改应用参数改完应用会重建容器数据目录不动不同版本的入口名称可能有差异以面板界面为准。强密钥可以拿openssl rand -base64 24生成这也是官方文档给的示例。接下来是 HTTPS。9001 控制台如果裸着走 HTTP登录密码在公网上等于明文传。1Panel 的路子是建一个反向代理网站把外部域名请求转发到内部服务指向本机控制台端口再给这个网站套证书进“网站”创建一个反向代理类型的网站填域名代理地址指到 127.0.0.1:9001。然后在“网站 → 证书”里申请证书先创建 ACME 账户ACME 是 Let’s Encrypt 这类机构自动发证书用的协议相当于证书机构的会员账号验证方式选 HTTP 模式最省事前提是 80 端口能从公网访问记得勾上自动续签证书 90 天到期后面板会自己续。证书签下来后回到网站设置里启用 HTTPSHTTP 选项选“自动跳转到 HTTPS”。9000 那个 S3 API 口要不要套 HTTPS 看用途。给外部应用备份软件、S3 客户端访问的话建议也走域名反代或者用 RustFS 自己的 TLS 方案挂载证书目录并加RUSTFS_TLS_PATH环境变量。两条路选一条客户端那边记得信任对应的 CA。反代这条路 TLS 终结在代理层RustFS 容器内部继续跑 HTTP 就行。暴露面顺手收窄一下只走反代的话安装弹窗里的端口外部访问可以不开9000/9001 就不直接对公网开放流量统一从 443 的反代网站进。另外别把宿主机部署里服务地址绑 127.0.0.1那套写法照搬进容器RUSTFS_ADDRESS 绑的是容器自己的回环绑死之后反代和端口映射都够不着它服务直接失联容器里靠的就是端口外部访问开关和安全组来控暴露面。验证它真能存东西浏览器开http://服务器IP:9001用安装时填的凭证登录控制台。进去先建一个存储桶再在左侧“访问密钥”里加一把密钥填过期时间、名称、描述提交后复制保存这把密钥给应用程序用别把管理员凭证到处发。命令行验证也快官方文档给的两条dockerps--filternamerustfscurl--failhttp://localhost:9000/health容器状态正常、健康检查端点有响应S3 API 就在http://服务器IP:9000上等着了。想再进一步拿 AWS CLI 或任何 S3 SDK 把 endpoint 指过来试一次上传下载链路就算全通了。应用商店安装和 docker run差在哪儿两条路最终跑的是同一个官方镜像差别在控制粒度。docker run 这条路按官方文档是这么写dockerrun-d\--namerustfs\--restartunless-stopped\-p9000:9000\-p9001:9001\-vrustfs-data:/data\-eRUSTFS_ACCESS_KEYyour-access-key\-eRUSTFS_SECRET_KEYyour-secret-key\-eRUSTFS_ADDRESS:9000\-eRUSTFS_CONSOLE_ADDRESS:9001\-eRUSTFS_CONSOLE_ENABLEtrue\-eRUSTFS_OBS_LOGGER_LEVELerror\-eRUSTFS_OBS_LOG_DIRECTORY/var/log/rustfs/\rustfs/rustfs:latest\/data适合要精确控制每个参数、命令要进配置仓库留档的人。代价是挂载权限、TLS、日志目录全要自己料理比如用主机目录挂载时容器以 10001:10001 的非 root 用户跑目录属主不对会直接 Permission denied。1Panel 这条路省掉的正是这些细碎活参数在弹窗里填升级在商店里点日志和容器状态在面板里看证书和反代是现成的。代价也得说清楚。其一版本节奏。商店模板把镜像锁在固定 tag 上当前条目装的就是 rustfs/rustfs:1.0.3不会上游一发版就跟着动但版本往前走的前提是 1Panel 侧的应用维护者更新了模板所以商店版本可能滞后于上游。docker run 那条路按官方文档写 latest拉镜像时拿到的就是当时最新版。哪条路都得自己盯版本商店这边升级前看看条目更新到了哪个 tag自管这边升到哪个 tag、什么时候升全由自己定。顺带一个小差异模板的重启策略是restart: always官方 docker run 示例用的是--restart unless-stopped差在服务器重启后容器要不要跟着起来影响不大配置留档时别混着抄。其二商店模板是单实例部署RustFS 的多节点要走--network host加RUSTFS_VOLUMES那套写法官方文档有多节点专章生产集群别指望面板模板一键拉起这部分还是按官方文档来。常见卡点与收尾单子容器反复重启、日志里 Permission denied九成是挂载目录属主问题官方镜像以 UID/GID 10001:10001 运行专用数据目录记得chown -R 10001:10001。控制台打不开先看安装时“端口外部访问”开没开再检查云服务商安全组和 1Panel 防火墙有没有放行 9001。端口冲突尽量在安装弹窗里一次改掉别装完再折腾。凭证忘了的话环境变量里存着容器详情里能看到要改就按前面说的参数修改流程重建数据不受影响。收尾把这几件事过一遍安装弹窗里的用户名默认值是 rustfsadmin确认已经改掉密码若用了面板自动生成的随机值先复制保存。控制台套上 HTTPS反向代理网站加 Let’s Encrypt 证书勾自动续签。应用程序接入前在控制台单独建访问密钥别共用管理员凭证。docker ps --filter namerustfs和curl http://localhost:9000/health各跑一遍确认。计划上生产多节点的话先读官方的预安装检查清单。RustFS 容器部署文档、访问密钥管理和 GitHub 仓库都在官方站点1Panel 侧的证书申请文档也值得收藏遇到面板版本差异时以官方文档为准。