diff --git a/README.md b/README.md index 77f3802..18e5370 100644 --- a/README.md +++ b/README.md @@ -33,6 +33,55 @@ http://<服务器IP>/ - 创建 `systemd` 服务,使用 `gunicorn` 直接监听 `0.0.0.0:80` - 开放防火墙 `80/tcp`(如系统启用了 `ufw`) +## 全命令部署(使用 Docker 部署 MongoDB) + +适用系统:Ubuntu 20.04+/22.04+/24.04(需 root),MongoDB 通过 Docker 启动,其余步骤照常。 + +1. 安装 Docker 并启动: + ```bash + sudo apt update + sudo apt install -y docker.io + sudo systemctl enable --now docker + ``` +2. 启动 MongoDB 容器(持久化到 `/srv/taiko-web-mongo`,监听 `27017`): + ```bash + sudo mkdir -p /srv/taiko-web-mongo + sudo docker run -d \ + --name taiko-web-mongo \ + --restart unless-stopped \ + -v /srv/taiko-web-mongo:/data/db \ + -p 27017:27017 \ + mongo:6 + ``` + 如需开启认证,可加上: + ```bash + -e MONGO_INITDB_ROOT_USERNAME=<用户名> -e MONGO_INITDB_ROOT_PASSWORD=<强密码> + ``` + 并在应用侧通过环境变量指定 Host: + ```bash + export TAIKO_WEB_MONGO_HOST=127.0.0.1:27017 + ``` +3. 安装并启动 Redis(照常): + ```bash + sudo apt install -y redis-server + sudo systemctl enable --now redis-server + ``` +4. 准备项目与虚拟环境(照常): + ```bash + sudo mkdir -p /srv/taiko-web + sudo rsync -a --delete --exclude '.git' --exclude '.venv' . /srv/taiko-web/ + sudo python3 -m venv /srv/taiko-web/.venv + sudo /srv/taiko-web/.venv/bin/pip install -U pip + sudo /srv/taiko-web/.venv/bin/pip install -r /srv/taiko-web/requirements.txt + sudo cp /srv/taiko-web/config.example.py /srv/taiko-web/config.py + ``` +5. 赋予 80 端口绑定权限并启动: + ```bash + sudo setcap 'cap_net_bind_service=+ep' /srv/taiko-web/.venv/bin/python3 + export TAIKO_WEB_MONGO_HOST=${TAIKO_WEB_MONGO_HOST:-127.0.0.1:27017} + sudo /srv/taiko-web/.venv/bin/gunicorn -b 0.0.0.0:80 app:app + ``` + ## 手动部署(可选) 1. 安装依赖: