# Deploy ja infrastruktuur ## Serverid | Server | Roll | SSH | IP (Tailscale) | |--------|------|-----|----------------| | `ohmu` | Dev (arendus, andmetöötlus) | `ssh ohmu` | 100.87.1.24 | | `hetzner` | Prod (avalik veeb) | `ssh hetzner` | 135.181.229.246 (avalik), 100.80.222.54 | ## ohmu (dev) - Docker + docker-compose (vana v1) - Projekt: `/data/docker/liiklusatlas` - Port: 8074 (`main_ai_network`) - Uuendus: ```bash ssh ohmu cd /data/docker/liiklusatlas && git pull origin main docker-compose build && docker-compose up -d --force-recreate ``` - Muud teenused: n8n (5678), Qdrant (6333), PostgreSQL/PostGIS (5432), Ollama, open-webui, jupyter, searxng ## hetzner (prod) - Docker Swarm + traefik (Let's Encrypt, DNS-challenge DigitalOcean) - Projekt: `~/swarm/docker-compose/containers/other/liiklusatlas` - URL: `https://atlas.see1.ee` - Uuendus: ```bash ssh hetzner cd ~/swarm/docker-compose/containers/other/liiklusatlas && git pull origin main docker build -t liiklusatlas:latest . docker service update --force --image liiklusatlas:latest atlas_liiklusatlas ``` - Traefik: `traefik-network` (overlay), router `atlas-https`, certresolver `mychallenge` - **Tähelepanu:** traefik kuulab ainult IPv4 (`0.0.0.0:443`). IPv6 hetzneril on katki — **AAAA kirje peab olema eemaldatud** (asub erineva DO konto all, kustuta käsitsi). ## Gogs (Git) - URL: `https://gogs.odamus.com` (kasutaja `ardo`) - Repod: `liiklusatlas`, `Obsidian`, `ohmu-cron` - Gogs on hetzneril (Drupal see1.ee kõrval) ## Let's Encrypt / DNS - `atlas.see1.ee` → A `135.181.229.246` (DigitalOcean DNS, see1.ee zone) - Sert: traefik väljastab automaatselt DNS-01 challenge'ga - Kui sert ebaõnnestub `NXDOMAIN`-iga: DO token ei näe zone'i — kontrolli traefiku `DO_AUTH_TOKEN` ulatust ## Varundus - ohmu: `backup-ohmu.sh` → merkuur ketas (rsync --link-dest snapshot'id) - hetzner: `~/swarm` cron-backup ## Seos [[Liiklussageduse kaudne hindamine/04_Tehniline/Repo ja töövoog]]