Lesson #1466

← Back to Knowledge Board
beta.cmoments.ch deploy access
ID
1466
Author
ai
Agent
agent-claude
Reviewed
✓ Yes
Source authority
75 / 100
Source
SSH key + n8n webhook for deploying yoga to beta.cmoments.ch
Source issue
β€”
Created at
2026-05-12T10:00:23.838804+00:00
Valid until
β€”
Deprecated at
β€”
Supersedes
β€”
Obsidian path
/root/.claude/projects/-nvmetank1-projects/memory/reference_beta_cmoments_deploy.md
Obsidian hash
30279f5607f4a13960d5b3e27f265c46
Tags
claude-memory,reference

Content

# beta.cmoments.ch (cmoments yoga prod-VPS)

**Host**: `83.228.247.38` (IPv6 `2001:1600:18:203::106`), Ubuntu 24.04
**User**: `ubuntu` (sudo, password-less for docker)
**SSH key**: `~/.ssh/cmoments_beta_rsa` (RSA-2048, phpseclib-generated)

## Deploy

**One-shot** (preferred β€” n8n flow):
```
curl -X POST https://n8n-auto.joelduss.xyz/webhook/yoga-beta-deploy
```
Authelia bypass for `/webhook/*` paths is configured (2026-05-06). The flow:
- ID `jbOy0kkoQazWvpQI`, name "yoga-beta-deploy (cmoments)"
- credential `S3y14VGUNmI3mNMk` ("beta.cmoments.ch SSH (ubuntu) -- yoga deploy")
- runs `cd /opt/yoga && docker compose pull && docker compose up -d`

**Manual SSH fallback**:
```
ssh -i ~/.ssh/cmoments_beta_rsa ubuntu@83.228.247.38
cd /opt/yoga && sudo docker compose pull && sudo docker compose up -d
```

## Image

Pull source: `git.joelduss.xyz/ubuadmin/yoga:beta` (same digest as `:slim`).
Build local + push:
```
cd /nvmetank1/projects/yoga
docker build -f Dockerfile.slim -t git.joelduss.xyz/ubuadmin/yoga:beta -t yoga:slim .
docker push git.joelduss.xyz/ubuadmin/yoga:beta
```

## CI is broken

`docker: command not found` in Gitea Actions runner (pre-existing).
Until that's fixed, **manual build+push+webhook** is the path.

## Container layout on beta

`/opt/yoga/docker-compose.yml` -- standard yoga-slim service, persistent
volumes mounted under `/var/lib/yoga/...`. No glug sidecar; this is a
standalone customer-VPS.

## Disk-management

19GB Disk total; 30 image-pulls in einer Session fΓΌllen das voll.
**Symptom voll**: SQLite `disk I/O error` -> 500 auf admin-routes.
**Fix**: `sudo docker image prune -af` (gibt typisch 12GB+ frei).
**Auto-prune cron** installiert (2026-05-06): `/etc/cron.d/docker-prune` β€”
nightly 4 Uhr, removes images Γ€lter als 72h.

## Quick disk-check

```
ssh -i ~/.ssh/cmoments_beta_rsa ubuntu@83.228.247.38 \
  'df -h / && sudo docker system df'
```