feat: add Docker deployment support

- Multi-stage Dockerfile (Node build + Go build + Alpine runtime)
- docker-compose.yml with named volume for data persistence
- In-container Nginx reverse proxy (static files + API)
- Entrypoint script for graceful process management
- .dockerignore for optimized build context
- Updated README (zh/en) with Docker quick start and deployment docs

Closes #14
This commit is contained in:
Awuqing
2026-03-30 07:56:15 +08:00
parent 2ccea28e34
commit 8cf97e439e
7 changed files with 262 additions and 2 deletions

View File

@@ -112,10 +112,30 @@ BackupX 是一个面向 **Linux / macOS 服务器**的自托管备份管理平
### 🌐 其他
- 中英文国际化 (i18n)
- 零外部依赖(内嵌 SQLite单二进制部署
- Docker / Docker Compose 一键部署
- systemd 服务支持
## Quick Start
### Docker 部署 (推荐)
```bash
# 克隆项目
git clone https://github.com/Awuqing/BackupX.git
cd BackupX
# 一键启动
docker compose up -d
```
如需备份宿主机上的目录,在 `docker-compose.yml` 中挂载对应路径:
```yaml
volumes:
- backupx-data:/app/data
- /path/to/backup/source:/mnt/source:ro
```
### 从源码构建
```bash
@@ -302,11 +322,16 @@ BackupX/
├── deploy/ # 部署配置
│ ├── nginx.conf # Nginx 参考配置
│ ├── backupx.service # systemd 服务单元
── install.sh # 一键安装脚本
── install.sh # 一键安装脚本
│ └── docker/ # Docker 部署配置
│ ├── nginx.conf # 容器内 Nginx 配置
│ └── entrypoint.sh # 容器启动脚本
├── .github/ # GitHub 配置
│ ├── workflows/ci.yml # CI 工作流
│ ├── workflows/release.yml # Release 工作流
│ └── ISSUE_TEMPLATE/ # Issue 模板
├── Dockerfile # Docker 多阶段构建
├── docker-compose.yml # Docker Compose 配置
└── Makefile # 构建命令
```
@@ -371,6 +396,29 @@ sudo ./deploy/install.sh
5. 注册并启动 systemd 服务
6. 配置 Nginx 反向代理(如已安装)
### Docker 部署
```bash
# 使用 docker compose
docker compose up -d
# 或手动构建镜像
docker build -t backupx .
docker run -d --name backupx -p 8340:8340 -v backupx-data:/app/data backupx
```
通过环境变量覆盖配置:
```bash
docker run -d --name backupx \
-p 8340:8340 \
-v backupx-data:/app/data \
-e TZ=Asia/Shanghai \
-e BACKUPX_LOG_LEVEL=debug \
-e BACKUPX_BACKUP_MAX_CONCURRENT=4 \
backupx
```
### 手动部署
```bash