CasaOS 0.4.15 配置参数详解
CasaOS v0.4.15 配置文件体系详解:/etc/casaos 下 7 个配置文件逐项参数含义与默认值、端口修改实测、商店源管理与生产配置模板,全部回显实测。
CasaOS 0.4.15 配置参数详解
目标:系统梳理 CasaOS v0.4.15 的配置文件体系(
/etc/casaos/下 7 个配置文件 + 启动钩子),逐项解释每个参数的含义、默认值与修改影响,并给出端口修改、商店源管理等高频配置的实测验证过程。全部配置内容与命令回显已在 Ubuntu 22.04.5 LTS 环境实测采集。
一、环境信息
- 操作系统:Ubuntu 22.04.5 LTS(x86_64)
- CasaOS 版本:v0.4.15(组件:casaos v0.4.15 / gateway v0.4.9-alpha4 / message-bus v0.4.4-3-alpha2 / user-service v0.4.8 / local-storage v0.4.4 / app-management v0.4.10-alpha2 / casaos-cli v0.4.4-3-alpha1 / rclone v1.61.1)
- 配置目录:
/etc/casaos/(安装时生成,每个配置文件均附带同名.sample模板) - 数据目录:
/var/lib/casaos/;日志目录:/var/log/casaos/;运行时目录:/var/run/casaos/ - WebUI 端口:80(
casaos-gateway监听) - 服务托管:systemd(
casaos、casaos-gateway、casaos-message-bus、casaos-user-service、casaos-local-storage、casaos-app-management、rclone共 7 个服务)
二、前置条件
- 已按《Ubuntu 22.04 安装 CasaOS 0.4.15 指南》完成 CasaOS 安装并能访问 WebUI。
- 具有 root 权限(
/etc/casaos/下文件属主为 root,读写需要 root)。 - 理解配置生效机制:所有配置在服务启动时读取,修改后必须重启对应服务才能生效;网关端口等关键项改错会导致 WebUI 不可达,改前先备份。
三、参数查看与修改方式
3.1 查看配置清单
ls -la /etc/casaos/
实测回显:
total 68
drwxr-xr-x 3 root root 4096 Oct 21 07:02 .
drwxr-xr-x 1 root root 4096 Oct 21 07:02 ..
-rw-r--r-- 1 root root 338 Oct 21 07:02 app-management.conf
-rw-r--r-- 1 root root 338 Oct 21 07:02 app-management.conf.sample
-rw-r--r-- 1 root root 455 Oct 21 07:02 casaos.conf
-rw-r--r-- 1 root root 455 Oct 21 07:02 casaos.conf.sample
-rw-r--r-- 1 root root 24 Oct 21 07:02 env
-rw-r--r-- 1 root root 115 Oct 21 07:02 gateway.ini
-rw-r-- 1 root root 54 Oct 21 07:02 gateway.ini.sample
-rw-r--r-- 1 root root 214 Oct 21 07:02 local-storage.conf
-rw-r-- 1 root root 214 Oct 21 07:02 local-storage.conf.sample
-rw-r--r-- 1 root root 107 Oct 21 07:02 message-bus.conf
-rw-r-- 1 root root 107 Oct 21 07:02 message-bus.conf.sample
drwxr-xr-x 2 root root 4096 Oct 21 07:02 start.d
-rw-r--r-- 1 root root 177 Oct 21 07:02 user-service.conf
-rw-r--r-- 1 root root 177 Oct 21 07:02 user-service.conf.sample
解读:7 个功能文件 + 6 个 .sample 模板(env 无模板)+ start.d/ 启动钩子目录。.sample 是安装器生成的出厂模板,修改主文件前可对照它确认原始值。
3.2 查看服务读取哪个配置
每个服务的 systemd 单元写明了配置路径,以主服务为例:
systemctl cat casaos --no-pager
实测回显:
# /lib/systemd/system/casaos.service
[Unit]
After=casaos-message-bus.service
After=rclone.service
Description=CasaOS Main Service
[Service]
ExecStart=/usr/bin/casaos -c /etc/casaos/casaos.conf
PIDFile=/var/run/casaos/casaos.pid
Restart=always
Type=notify
[Install]
WantedBy=multi-user.target
解读:主服务通过 -c 显式指定 /etc/casaos/casaos.conf;其余服务按约定读取同目录下各自的 .conf(如 casaos-gateway 读 gateway.ini)。
3.3 修改参数的标准流程
cp /etc/casaos/<配置文件> /etc/casaos/<配置文件>.bak # 1. 备份
vim /etc/casaos/<配置文件> # 2. 修改
systemctl restart <对应服务> # 3. 重启生效
systemctl is-active <对应服务> # 4. 验证
⚠️ 主服务每次重启会更换监听端口并由网关动态注册,
systemctl restart casaos后网关自动跟随;单独重启其他服务不影响主服务注册关系。
四、参数总览
| 配置文件 | 读取服务 | 格式 | 核心参数 | 典型改动场景 |
|---|---|---|---|---|
casaos.conf | casaos 主服务 | INI | RunMode、ServerApi、LogPath、DBPath、PAGE_SIZE | 日志路径、运行模式 |
gateway.ini | casaos-gateway | INI | port、logpath、runtimepath | 修改 WebUI 端口 |
message-bus.conf | casaos-message-bus | INI | RuntimePath、LogPath | 总线日志路径 |
user-service.conf | casaos-user-service | INI | DBPath、UserDataPath、LogPath | 用户数据路径 |
local-storage.conf | casaos-local-storage | INI | USBAutoMount、EnableMergerFS、DBPath | USB 自动挂载、合并存储 |
app-management.conf | casaos-app-management | INI | appstore 源、AppStorePath、AppsPath | 自定义商店源 |
env | 主服务(AI 相关) | KEY=VALUE | OPENAI_API_KEY | AI 助手功能 |
start.d/*.sh | 主服务启动钩子 | Shell | — | 启动后自动执行的自定义脚本 |
关键差异解读:casaos.conf 管主服务自身行为,gateway.ini 管对外入口,其余四个 .conf 是各后端微服务的同名职责配置;多数参数保持默认即可,实际高频改动集中在 gateway.ini 的 port、local-storage.conf 的 USB/mergerFS 开关与 app-management.conf 的商店源 三处。
五、核心参数分类详解
5.1 主服务配置 casaos.conf
主服务承载系统信息、文件管理、通知等核心 API,配置分 [app](应用与存储路径)、[server](运行模式与外部服务)、[system](预留段)三段。实测完整内容:
[app]
PAGE_SIZE = 10
RuntimeRootPath = runtime/
LogPath = /var/log/casaos/
LogSaveName = log
LogFileExt = log
DateStrFormat = 20060102
DateTimeFormat = 2006-01-02 15:04:05
TimeFormat = 15:04:05
DateFormat = 2006-01-02
DBPath = /var/lib/casaos
ShellPath = /usr/share/casaos/shell
UserDataPath = /var/lib/casaos/conf
[server]
RunMode = release
ServerApi = https://api.casaos.io/casaos-api
Handshake = socket.casaos.io
Token =
USBAutoMount =
[system]
逐项说明:
| 参数 | 默认值 | 含义与影响 |
|---|---|---|
PAGE_SIZE | 10 | 文件列表等分页接口每页条数,调大会增加单次响应体积 |
RuntimeRootPath | runtime/ | 运行时临时文件根(相对路径) |
LogPath | /var/log/casaos/ | 主服务日志目录;改后需目录可写并重启服务 |
LogSaveName/LogFileExt | log/log | 日志文件名与扩展名,最终为 /var/log/casaos/log.log |
DateStrFormat/DateTimeFormat/TimeFormat/DateFormat | 见上文 | 各 API 输出的时间格式(Go 时间模板语法) |
DBPath | /var/lib/casaos | 主数据目录(应用商店、应用、conf 均在此树下) |
ShellPath | /usr/share/casaos/shell | 内置脚本目录 |
UserDataPath | /var/lib/casaos/conf | 用户配置目录(首次创建账户后生成) |
RunMode | release | 运行模式;debug 会输出更详细日志,排障时可临时切换 |
ServerApi | https://api.casaos.io/casaos-api | 官方在线服务 API(版本检查/应用推荐等),离线环境可留空减少外联 |
Handshake | socket.casaos.io | 官方握手服务域名 |
Token | 空 | 与官方服务通信令牌,保持默认 |
USBAutoMount | 空 | 主服务侧 USB 自动挂载开关(与 local-storage.conf 中的同名参数配套) |
💡 说明:Go 程序的时间格式模板以固定基准时间表示(如
2006-01-02 15:04:05),修改时保持语法形态,不要写成普通 strftime 格式。
5.2 网关配置 gateway.ini
网关是唯一对外入口,配置最关键的是监听端口。实测完整内容:
[common]
runtimepath=/var/run/casaos
[gateway]
logfileext=log
logpath=/var/log/casaos
logsavename=gateway
port=80
逐项说明:
| 参数 | 默认值 | 含义与影响 |
|---|---|---|
runtimepath | /var/run/casaos | 运行时目录:各服务注册的 .url 文件、routes.json 路由表、pid 文件都在这里;改后需同步其他服务的 RuntimePath,不建议改 |
port | 80 | WebUI 与 API 的对外端口;改为 1024 以上非特权端口可避免与既有服务冲突 |
logpath/logsavename/logfileext | /var/log/casaos/gateway/log | 网关日志为 /var/log/casaos/gateway.log |
端口修改的完整实测过程(含验证与还原)见《Ubuntu 22.04 安装 CasaOS 0.4.15 指南》第七章:修改 port=8080 并 systemctl restart casaos-gateway 后,ss -ltn 确认监听 *:8080、curl 返回 HTTP 200;改回后监听恢复 *:80。
5.3 消息总线配置 message-bus.conf
消息总线承载组件间事件分发(应用安装进度、磁盘插拔等)。实测完整内容:
[common]
RuntimePath=/var/run/casaos
[app]
LogPath=/var/log/casaos
LogSaveName=message-bus
LogFileExt=log
逐项说明:RuntimePath 是总线运行时目录(含其 SQLite 库 message-bus.db);LogPath/LogSaveName/LogFileExt 组合出总线日志文件 /var/log/casaos/message-bus.log。三段路径参数均无性能语义,仅在把日志/运行时迁移到独立分区时需要改。
5.4 用户服务配置 user-service.conf
用户服务负责账户与认证。实测完整内容:
[common]
RuntimePath=/var/run/casaos
[app]
LogPath = /var/log/casaos
LogSaveName = user-service
LogFileExt = log
DBPath = /var/lib/casaos/db
UserDataPath = /var/lib/casaos
逐项说明:
| 参数 | 默认值 | 含义与影响 |
|---|---|---|
DBPath | /var/lib/casaos/db | 用户库目录(账户凭据),迁移用户数据时整目录搬移并保持权限 |
UserDataPath | /var/lib/casaos | 用户文件根 |
LogPath/LogSaveName/LogFileExt | /var/log/casaos/user-service/log | 日志文件 /var/log/casaos/user-service.log |
未登录时调用用户接口可看到认证保护生效(实测回显):
curl -s http://127.0.0.1/v1/users/info
{"success":401,"message":"token is invalid","data":null}
5.5 本地存储配置 local-storage.conf
存储服务管理磁盘发现、挂载与 USB。实测完整内容:
[common]
RuntimePath=/var/run/casaos
[app]
LogPath=/var/log/casaos
LogSaveName=local-storage
LogFileExt=log
DBPath=/var/lib/casaos/db
ShellPath=/usr/share/casaos/shell
[server]
USBAutoMount=
EnableMergerFS=false
逐项说明:
| 参数 | 默认值 | 含义与影响 |
|---|---|---|
USBAutoMount | 空(关闭) | USB 设备插入自动挂载;置 ON 开启(配合安装的 udev 规则 11-usb-mount.rules 与 usb-mount@.service) |
EnableMergerFS | false | 多磁盘合并为单一逻辑视图(mergerFS);开启需系统已安装 mergerFS,适合多块数据盘聚合成一个存储池的场景 |
DBPath | /var/lib/casaos/db | 磁盘/挂载数据库 |
💡 技术拓展:多盘合并存储不止 mergerFS 一种方案,常见对比如下——
方案 原理/特点 适用场景 mergerFS 用户态联合挂载,按策略分布文件,单盘损坏只丢该盘 家庭 NAS 聚合异构磁盘(CasaOS 内置方案) LVM 块设备级卷管理,可条带/镜像 需要快照与弹性扩容 ZFS/Btrfs 文件系统级池化,带校验与快照 数据完整性要求高 RAID(mdadm) 块级冗余/条带 硬件级冗余需求 CasaOS 实际内置 mergerFS(安装时附带
/usr/local/bin/mergerfs.ctl),因为其"逐文件分布、异构盘友好、损坏影响局部化"的特性最贴合家庭存储场景。
5.6 应用管理配置 app-management.conf
应用管理服务负责 Docker 应用生命周期与应用商店。实测完整内容:
[common]
RuntimePath = /var/run/casaos
[app]
LogPath = /var/log/casaos/
LogSaveName = app-management
LogFileExt = log
AppStorePath = /var/lib/casaos/appstore
AppsPath = /var/lib/casaos/apps
[server]
appstore = https://casaos.app/store/main.zip
appstore = https://github.com/bigbeartechworld/big-bear-casaos/archive/refs/heads/master.zip
逐项说明:
| 参数 | 默认值 | 含义与影响 |
|---|---|---|
AppStorePath | /var/lib/casaos/appstore | 商店缓存根(按源域名+哈希分目录落地) |
AppsPath | /var/lib/casaos/apps | 已安装应用的工作目录(每个应用一个 Compose 工程) |
appstore(可重复出现) | 官方源 + BigBear 社区源 | 预置商店源列表;每行一个源,新增自定义源直接追加一行,也可用 casaos-cli app-management register app-store <url> 在线注册 |
实测通过 CLI 查看当前生效的商店源列表:
casaos-cli app-management list app-stores
实测回显:
ID URL STORE ROOT
-- --- ----------
0 https://casaos.app/store/main.zip /var/lib/casaos/appstore/casaos.app/4e6bf64b187e30664ab8e6ed48331e96/build/sysroot/var/lib/casaos/appstore/default.new
1 https://github.com/bigbeartechworld/big-bear-casaos/archive/refs/heads/master.zip /var/lib/casaos/appstore/github.com/2a1238d53212bfce4e8f861dcb8ef3fe/big-bear-casaos-master
解读:STORE ROOT 即每个源解包后的落地路径;官方源在 appstore/casaos.app/<hash>/ 下,社区源在 appstore/github.com/<hash>/ 下,缓存损坏时删除对应目录后重新注册即可。
5.7 环境变量文件 env
实测完整内容:
OPENAI_API_KEY=sk-xxxxxx
该文件为主服务 AI 相关功能提供密钥注入点,格式为标准 KEY=VALUE。默认值为占位 sk-xxxxxx(未配置状态),接入自有 OpenAI 兼容服务时替换为真实 Key。⚠️ 该文件含敏感凭据,权限应保持 rw-r--r-- 以内并避免提交到版本库;本文档中的 sk-xxxxxx 为出厂占位值而非真实密钥。
5.8 启动钩子目录 start.d/
/etc/casaos/start.d/ 下的可执行脚本会在主服务启动流程末尾自动执行(实测目录内容):
-rwxr-xr-x 1 root root 559 Oct 21 07:02 register-ui-events.sh
出厂仅含 register-ui-events.sh(注册 UI 事件订阅)。把自定义脚本放入该目录并赋予执行权限,即可在主服务每次启动后自动执行(如清理任务、通知钩子)。实测主服务日志中可见钩子执行记录:
Executing post-start script /etc/casaos/start.d/register-ui-events.sh using /bin/sh
Finished executing post-start scripts.
六、生产配置模板
以下模板面向 4GB 内存 / SATA SSD / 家庭轻负载(10 个以内应用) 的典型家庭云主机,改动仅限高频项,其余保持默认:
# /etc/casaos/gateway.ini —— 对外端口改到 8080(避开 80 上的既有 Web 服务或反代)
[gateway]
port=8080
# /etc/casaos/local-storage.conf —— 开启 USB 自动挂载
[server]
USBAutoMount=ON
EnableMergerFS=false
# /etc/casaos/casaos.conf —— 离线/内网环境减少不必要外联
[server]
ServerApi =
Handshake =
逐项说明:port=8080 后 WebUI 访问地址变为 http://<服务器IP>:8080,注意同步防火墙放行;USBAutoMount=ON 便于外接备份盘即插即用;ServerApi/Handshake 置空可让主服务跳过对官方在线服务的依赖(版本检查改为手动),完全离线的家庭服务器建议采用。修改后逐个重启对应服务并验证:
systemctl restart casaos-gateway
systemctl restart casaos-local-storage
systemctl restart casaos
验证(端口已迁移到 8080 时):
curl -s -o /dev/null -w "HTTP %{http_code}\n" http://127.0.0.1:8080/
实测回显:
HTTP 200
七、常见问题(FAQ)
Q1:改了配置不生效?
配置在服务启动时读取,改完必须重启对应服务(网关改端口重启 casaos-gateway,主服务参数重启 casaos)。重启后用 systemctl is-active <服务> 确认 active,再用对应功能验证(如 ss -ltn 看端口)。
Q2:配置改错导致 WebUI 打不开?
先 ss -ltnp | grep -E ':80 |:8080' 确认网关监听是否还在;若网关未监听,用备份恢复:cp /etc/casaos/gateway.ini.bak /etc/casaos/gateway.ini && systemctl restart casaos-gateway。仍不通时查 /var/log/casaos/gateway.log 与 journalctl -u casaos-gateway -n 50。
Q3:应用商店列表显示 "internal error - store root not found"?
该状态出现在商店缓存目录与索引不一致时(实测在重装/恢复后出现)。处理:casaos-cli app-management unregister app-store <id> 注销失效源,再用 casaos-cli app-management register app-store <url> 重新注册,注册为异步执行(回显 trying to register app store asynchronously - see /var/log/casaos/app-management.log for any errors.),进度与错误看 app-management.log。
Q4:日志文件在哪,能轮转吗?
全部在 /var/log/casaos/:log.log(主服务)、gateway.log、message-bus.log、user-service.log、local-storage.log、app-management.log。CasaOS 不自带轮转,可接入系统 logrotate 配置对该目录按大小轮转。
Q5:想迁移整个 CasaOS 到新磁盘?
配置在 /etc/casaos、数据在 /var/lib/casaos、日志在 /var/log/casaos,三处目录整体迁移后重启全部 casaos* 服务即可;/var/run/casaos 为运行时目录无需迁移(重启自动重建)。
八、参考链接
- CasaOS 主仓库与各组件仓库:
https://github.com/IceWhaleTech/CasaOS - 官方 Wiki(配置与排障):
https://wiki.casaos.io/en/troubleshooting - 本专栏相关文档:《CasaOS 介绍与选型指南》《Ubuntu 22.04 安装 CasaOS 0.4.15 指南》《CasaOS 0.4.15 常用 CLI 命令与工具详解》