ezBookkeeping 自托管记账服务部署
本文通过 Docker Compose 方式部署 ezBookkeeping 服务到绿联的 NAS 上。同时也提供了通用的部署方法,可供在其他 Linux 服务器上部署时参考。
1 - 项目简介
ezBookkeeping 是一款轻量级、自托管的个人财务APP。
其前端支持桌面浏览器和移动端浏览器访问,并支持PWA技术,可添加到桌面使用。
2 - 使用 Docker Compose 部署 IPTV-API
2.1 项目配置
编写 docker-compose.yml
的文件内容如下:
yaml
services:
ezbookkeeping:
image: mayswind/ezbookkeeping
container_name: ezbookkeeping
user: "1000:1000"
ports:
- "38080:8080"
volumes:
- ./data:/ezbookkeeping/data
- ./log:/ezbookkeeping/log
- ./storage:/ezbookkeeping/storage
environment:
- "EBK_USER_ENABLE_REGISTER=true"
- "EBK_SERVER_DOMAIN=ezbookkeeping.yourdomain"
- "EBK_SERVER_ENABLE_GZIP=true"
- "EBK_LOG_MODE=file"
- "EBK_SECURITY_SECRET_KEY=its_should_be_a_random_string"
restart: unless-stopped
项目的挂载路径:
./data:/ezbookkeeping/data
: 数据库文件存放在./data
目录下 (sqlite3 数据库文件)./log:/ezbookkeeping/log
: 日志文件存放在./log
目录下./storage:/ezbookkeeping/storage
: 默认对象存储使用本地文件系统, 根路径为./storage
默认容器运行用户的 UID=1000
, GID=1000
, 建议检查确保挂载数据目录的权限。
项目的端口映射为本地的 38080 端口
配置选项说明:
可以用 EBK_{SECTION_NAME}_{OPTION_NAME}
形式通过环境变量设置。
默认的配置文件在 /ezbookkeeping/config/ezbookkeeping.ini
, 可以参考默认配置文件的内容。
配置参考: ezBookkeeping 配置文档。
EBK_USER_ENABLE_REGISTER
: 是否允许注册,可选值为true
或false
。默认值为true
, 建议在初始化用户账户后设置为false
EBK_SERVER_DOMAIN
: 服务域名。默认为localhost
。配置域名解析或反向代理后,建议设置EBK_SERVER_ENABLE_GZIP
: 是否启用 gzip 压缩,可选值为true
或false
。默认值为true
EBK_LOG_MODE
: 日志模式,可选值为console
或file
。console
模式下,日志会输出到控制台。file
模式下,日志会输出到文件。默认值为console file
EBK_SECURITY_SECRET_KEY
: 安全密钥, 强烈建议配置- secret_key 可以用如下 python 命令生成:
python -c "import secrets; print(secrets.token_hex(32))"
- secret_key 可以用如下 python 命令生成:
2.2 部署服务
(1) 通过 NAS UI 部署
进入 NAS 的管理界面,打开 Docker,在 "项目" 中点击 "创建"。
- 项目名称:ezbookkeeping
- 存放路径(可自选):
共享文件夹/docker/ezbookkeeping/
- Compose 配置: 将上述
docker-compose.yml
的内容导入或复制到此目录下 - 启动项目: 点击 “立即部署”
(2) 在 Linux Server 上部署
如果是在服务器上部署,可以通过 SSH 登录到服务器:
- 进入服务器,选择一个合适的目录存放项目文件,比如
~/docker
- 创建项目目录
mkdir ezbookkeeping
- 在目录中创建
docker-compose.yml
文件,在其中写入上述配置内容 - 执行以下命令启动服务:
bash
docker-compose up -d