# 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`) - **Token:** `.env` failis (`ATLAS_ACCESS_TOKEN=`), `.env` on `.gitignore`-is - Uuendus: ```bash ssh ohmu cd /data/docker/liiklusatlas && git pull origin main docker-compose build && docker-compose up -d --force-recreate # koodimuutus # andmeuuendus (ilma koodimuutuseta): # git pull && docker restart liiklusatlas ``` - Logid: `tail -f /data/docker/liiklusatlas/data/logs/access.log` - 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` - **Token:** tuleb **eksportida shellis** enne stack deploy — muidu `stack-prod.yml` saab tühja väärtuse ja kõik kaitstud vallad on lukus isegi koodiga. - Uuendus: ```bash ssh hetzner cd ~/swarm/docker-compose/containers/other/liiklusatlas && git pull origin main docker build -t liiklusatlas:latest . export ATLAS_ACCESS_TOKEN= docker stack deploy --compose-file=stack-prod.yml atlas docker service update --force 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]]