mirror of
https://github.com/Awuqing/BackupX.git
synced 2026-08-13 16:34:04 +08:00
支持受限网络、正向代理、私有 CA 与 SSH 堡垒机部署 Agent。 加固 Docker、systemd、Nginx、安装器、Release 校验与可信代理边界,并完善命令队列索引、前端安装向导及中英文运维文档。
88 lines
2.9 KiB
Markdown
88 lines
2.9 KiB
Markdown
---
|
|
sidebar_position: 1
|
|
title: Installation
|
|
description: Install BackupX via Docker, prebuilt archive, or from source.
|
|
---
|
|
|
|
# Installation
|
|
|
|
BackupX ships as a single static binary. Three ways to install, pick the one that matches your environment.
|
|
|
|
## Docker (recommended)
|
|
|
|
No cloning required.
|
|
|
|
```bash
|
|
docker run -d --name backupx \
|
|
-p 8340:8340 \
|
|
-v backupx-data:/app/data \
|
|
awuqing/backupx:latest
|
|
```
|
|
|
|
Or use `docker compose`:
|
|
|
|
```yaml title="docker-compose.yml"
|
|
services:
|
|
backupx:
|
|
image: awuqing/backupx:latest
|
|
container_name: backupx
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8340:8340"
|
|
volumes:
|
|
- backupx-data:/app/data
|
|
# Mount host directories to back up (as needed):
|
|
# - /var/www:/mnt/www:ro
|
|
# - /etc/nginx:/mnt/nginx-conf:ro
|
|
environment:
|
|
- TZ=Asia/Shanghai
|
|
|
|
volumes:
|
|
backupx-data:
|
|
```
|
|
|
|
Images: [`awuqing/backupx`](https://hub.docker.com/r/awuqing/backupx) — supports `linux/amd64` and `linux/arm64`.
|
|
|
|
## Prebuilt archive (bare metal)
|
|
|
|
Download from the [Releases page](https://github.com/Awuqing/BackupX/releases) and run the installer:
|
|
|
|
```bash
|
|
sha256sum -c backupx-v*-linux-amd64.tar.gz.sha256
|
|
tar xzf backupx-v*-linux-amd64.tar.gz && cd backupx-*
|
|
sudo ./install.sh # creates system user, installs to /opt/backupx, sets up systemd
|
|
```
|
|
|
|
The installer:
|
|
|
|
1. Creates a `backupx` system user
|
|
2. Installs the binary to `/opt/backupx/bin/backupx` and the web console to `/opt/backupx/web`
|
|
3. Creates `/etc/backupx/config.yaml` with safe defaults
|
|
4. Installs and enables the `backupx.service` systemd unit
|
|
5. Leaves Nginx unchanged unless `INSTALL_NGINX=1` is explicitly requested
|
|
6. Waits for `/api/auth/setup/status`; if startup fails, prints systemd diagnostics and exits non-zero
|
|
|
|
## From source
|
|
|
|
Requires Go ≥ 1.25 and Node.js ≥ 20.
|
|
|
|
```bash
|
|
git clone https://github.com/Awuqing/BackupX.git && cd BackupX
|
|
make build
|
|
sudo ./deploy/install.sh
|
|
```
|
|
|
|
After `make build`, the binary is at `server/bin/backupx` and the built web UI is at `web/dist/`.
|
|
The installer consumes those exact paths, so no Docker runtime is required. If an existing configuration uses a non-default port, set `HEALTH_URL` for the readiness check, for example `sudo HEALTH_URL=http://127.0.0.1:9000/api/auth/setup/status ./deploy/install.sh`.
|
|
|
|
The Nginx template is opt-in because automatically installing a catch-all virtual host can intercept existing sites. Review `deploy/nginx.conf`, then use `sudo INSTALL_NGINX=1 ./deploy/install.sh` only when it matches the host.
|
|
|
|
## Verify the install
|
|
|
|
```bash
|
|
/opt/backupx/bin/backupx --version
|
|
curl -fsS http://127.0.0.1:8340/api/auth/setup/status
|
|
```
|
|
|
|
Then open `http://your-server:8340`. Choose **English** or **中文** in the upper-right corner. A fresh database shows **System setup**, where you create the first administrator username and password. If that form does not appear, retry the status request above before attempting to sign in.
|