Add deploy webhook receiver for snotes

This commit is contained in:
2026-09-23 10:15:36 -07:00
parent abfbf3de1f
commit 3486edc141
5 changed files with 283 additions and 0 deletions

61
deploy/README.md Normal file
View File

@@ -0,0 +1,61 @@
# Deploy
Auto-deploy snotes when code is pushed to Gitea.
## How it works
```
User pushes → Gitea webhook POST → webhook-server.py → git pull
→ docker compose build
→ docker compose up -d
→ health check
```
The webhook server runs on the Docker host (ppv.loc) and listens for push events
from Gitea.
## Setup
### 1. Start the webhook server on the Docker host
```bash
cd /root/git/snotes/deploy
python3 webhook-server.py --port 9997 --secret "<your-secret>"
```
Or run as a systemd service (see below).
### 2. Configure Gitea webhook
In the Gitea repo **Settings > Webhooks > Add Webhook > Gitea**:
- **Target URL**: `http://ppv.loc:9997/deploy`
- **Secret**: same `<your-secret>` from step 1
- **Trigger On**: Push events
- **Active**: ✅
### 3. Test
Push to `main`. The webhook server logs each step.
## systemd service (recommended)
Install `deploy/snotes-deploy.service`:
```bash
cp deploy/snotes-deploy.service /etc/systemd/system/snotes-deploy.service
# edit the --secret value in the unit, then:
systemctl daemon-reload
systemctl enable --now snotes-deploy
```
## Manual deploy
```bash
bash deploy/deploy.sh
```
## Secrets / config
`deploy/deploy.conf` (gitignored) can carry a `GIT_TOKEN` for HTTP remotes. The
default checkout uses SSH, so no token is needed.