systemd 部署
这一篇适合谁
云主机、物理机、长期稳定运行的 Linux 服务器。 systemd 只负责拉起进程,HTTPS / 域名 / WebDAV 透传全部交给前面的反向代理——别让 aster_drive 直接对公网。
systemd 适合长期稳定运行的 Linux 服务器。
这类部署最重要的是先定好工作目录,再决定配置文件、数据库、上传目录和临时目录放在哪里。
正式上线时,不要直接把 aster_drive 暴露到公网。
systemd 只负责拉起进程;HTTPS、域名、HSTS、上传限制和 WebDAV / WOPI 透传都应该交给前面的反向代理。浏览器页面基线 Content-Security-Policy 由 AsterDrive 返回,代理层别删掉或覆盖成不兼容的策略。
1. 准备运行目录
sudo useradd -r -s /usr/sbin/nologin asterdrive
sudo mkdir -p /var/lib/asterdrive
sudo chown -R asterdrive:asterdrive /var/lib/asterdrive2. 放置可执行文件
把 aster_drive 可执行文件放到固定路径,例如:
sudo install -m 0755 ./aster_drive /usr/local/bin/aster_drive3. 准备配置文件
把 config.toml 放进 data/ 目录:
sudo mkdir -p /var/lib/asterdrive/data
sudo cp config.toml /var/lib/asterdrive/data/config.toml
sudo chown -R asterdrive:asterdrive /var/lib/asterdrive/data如果继续使用默认相对路径,工作目录下通常会出现:
data/config.tomldata/asterdrive.dbdata/uploadsdata/.tmpdata/.uploads
长期部署时,建议数据库路径、本地存储路径和临时目录都尽量使用绝对路径。
如果你准备长期运行,别只考虑“怎么启动”,还要同时规划备份和恢复。
SQLite、本地存储目录、头像目录和你自定义的本地 local 存储根目录,都应该纳入同一套备份策略。见 备份与恢复。
4. 写入 Service 文件
创建 /etc/systemd/system/asterdrive.service:
[Unit]
Description=AsterDrive
After=network.target
[Service]
Type=simple
User=asterdrive
Group=asterdrive
WorkingDirectory=/var/lib/asterdrive
ExecStart=/usr/local/bin/aster_drive
Restart=on-failure
RestartSec=5
Environment=RUST_LOG=info
[Install]
WantedBy=multi-user.target如果你现在还是内网 HTTP 测试环境,可以先在 config.toml 里把 auth.bootstrap_insecure_cookies 设成 true。
它只会影响第一次初始化时 Cookie 的 HTTPS 要求。正式切到 HTTPS 后,把后台对应设置改回开启,再把这个静态引导项去掉。
5. 启动服务
sudo systemctl daemon-reload
sudo systemctl enable --now asterdrive
sudo systemctl status asterdrive6. 查看日志
journalctl -u asterdrive -f7. 首次验收
/health返回 200/health/ready返回 200- 首页响应头里已经带上 AsterDrive 返回的页面基线
Content-Security-Policy - 首次启动日志里已完成数据库更新和默认策略初始化
- 管理后台里能看到默认策略组
- 浏览器可以正常登录
- 如果启用了 WebDAV,实际挂载路径与
[webdav].prefix一致 - 如果启用了外部 Office / WOPI 打开方式,至少用一个真实 Office 文件试开并保存一次
- 如果把数据库、上传目录或临时目录放到其他磁盘,确认路径和权限没有写错
8. 常见环境变量写法
把数据库放到其他位置
Environment=ASTER__DATABASE__URL=sqlite:///srv/asterdrive/asterdrive.db?mode=rwc监听所有网卡
Environment=ASTER__SERVER__HOST=0.0.0.0固定登录签名密钥
Environment=ASTER__AUTH__JWT_SECRET=replace-with-your-own-secret9. HTTPS 与域名
systemd 只负责把服务拉起来。
如果你要提供 HTTPS、域名、WebDAV 客户端访问,或者外部 Office / WOPI 打开方式,还需要在前面加一层反向代理。代理层负责 TLS、HSTS、上传限制和长连接透传,同时保留 AsterDrive 返回的页面 CSP,见 反向代理部署。