4.1 单机部署(二进制 + SQLite)

单机部署(二进制 + SQLite)

发布版二进制包含管理端静态资源、公开页模板和数据库迁移,适合以单文件方式运行。SQLite、内存缓存与本地发号器不依赖外部服务。

准备目录

从项目 Releases 下载与操作系统和 CPU 架构匹配的压缩包,解压到固定且可写的目录:

mkdir -p /opt/dwz/{config,data,logs}
cd /opt/dwz
chmod +x dwz-server

运行用户需要对 config/data/logs/ 有读写权限。不要使用 chmod 777 解决权限问题,应把目录所有者设置为实际运行用户。

首次启动

./dwz-server start

默认监听 :8080。访问 http://服务器地址:8080/,在安装向导中选择:

  • 数据库:SQLite,文件路径如 ./config/sqlite.db
  • 缓存:内存(memory);
  • ID 发号器:本地(local);
  • 管理员:使用独立账号和强密码。

向导会执行 Goose 数据库迁移,写入 config/config.yamlconfig/install.lock,然后重新加载服务。

进程管理

./dwz-server start --daemon
./dwz-server status
./dwz-server restart
./dwz-server stop

若由 systemd、supervisord 或容器编排器管理进程,使用前台 start,避免同时启用两套守护机制。

修改监听地址

HTTP_ADDR=:8081 ./dwz-server start

或在有效配置中设置:

http:
  addr: ":8081"
  mode: release

备份与恢复

停止写入后备份以下内容:

config/config.yaml
config/install.lock
config/sqlite.db
data/

恢复时将文件放回相同工作目录,再以相同版本或更高兼容版本启动。不要只复制 SQLite 主文件而忽略仍在使用的 WAL 文件;稳妥做法是先停服务再备份。

限制

SQLite 与 local 发号器用于单实例。需要水平扩容时,先迁移到 MySQL/PostgreSQL,并切换为 Redis 发号器。部署环境变量详见环境变量参考