48 lines
1.3 KiB
Markdown
48 lines
1.3 KiB
Markdown
# PMFlow Docker Server Deploy Guide
|
|
|
|
## 1. Prerequisites
|
|
|
|
- Remote host has Docker Engine and Docker Compose plugin.
|
|
- Remote host can be accessed by SSH.
|
|
- This machine can run `rsync` and `ssh`.
|
|
- `docker-compose.yml` and `.env.example` exist in project root.
|
|
|
|
## 2. Local one-line deploy
|
|
|
|
```bash
|
|
bash scripts/deploy_remote_docker.sh <host> <user> </opt/pmflow>
|
|
```
|
|
|
|
Examples:
|
|
|
|
```bash
|
|
bash scripts/deploy_remote_docker.sh 192.168.1.100 root /opt/pmflow
|
|
SSH_KEY=~/.ssh/id_rsa bash scripts/deploy_remote_docker.sh 8.8.8.8 ubuntu /srv/pmflow
|
|
```
|
|
|
|
## 3. What the script does
|
|
|
|
1. Create remote target directory.
|
|
2. Sync local project with `rsync --delete` (excludes `.git`, `venv`, `node_modules`, `logs`).
|
|
3. Create `.env` from `.env.example` when missing.
|
|
4. Run `docker compose build && docker compose up -d`.
|
|
|
|
## 4. Daily operations (local)
|
|
|
|
```bash
|
|
bash scripts/docker_stack.sh start
|
|
bash scripts/docker_stack.sh health
|
|
bash scripts/docker_stack.sh status
|
|
bash scripts/docker_stack.sh logs backend
|
|
bash scripts/docker_stack.sh restart
|
|
bash scripts/docker_stack.sh stop
|
|
```
|
|
|
|
## 5. Remote troubleshoot
|
|
|
|
```bash
|
|
ssh <user>@<host> "cd /opt/pmflow && docker compose ps"
|
|
ssh <user>@<host> "cd /opt/pmflow && docker compose logs --tail=200 backend"
|
|
ssh <user>@<host> "cd /opt/pmflow && docker compose down && docker compose up -d"
|
|
```
|