====== Infrastructure & Deployment ===== **Table of Contents** {{toc}} ===== Server ===== * Host: kimsufi.flyfucker.fr * IP: 5.196.88.17 * SSH: fatal@5.196.88.17:8090 * Hardware: Intel Atom N2800 (4 threads @ 1.86GHz), 3.2 GB RAM, 757 GB disk * Note: Old CPU does not support SSE4.2 — Node.js 22 apps will crash with "Illegal instruction" ===== Architecture ===== * nginx (Docker, alpine) — reverse proxy on ports 80/443, terminates TLS, routes to backends * All services run in separate containers on an internal Docker network * No ports exposed to host except 80/443 on the nginx container ===== TLS Certificates ===== * Issuer: Let's Encrypt (R3) * Type: Single certificate with wildcard SAN for *.mere-mortal.net * Valid until: **19 December 2026** * Auto-renewal: certbot timer configured * Cert path on host: /home/fatal/nginx/certs/{fullchain,privkey}.pem ===== Domains ===== All subdomains point to 5.196.88.17 via DNS A records: * **wiki.mere-mortal.net** → DokuWiki * **dokuwiki.mere-mortal.net** → DokuWiki (alias) * keepass.mere-mortal.net → KeeWeb * privatebin.mere-mortal.net → PrivateBin * shaarli.mere-mortal.net → Shaarli * kuma.mere-mortal.net → Uptime Kuma * revodb.mere-mortal.net → NocoDB * game.mere-mortal.net → Solitaire game (static) ===== Docker Compose ===== The stack is defined in /home/fatal/docker-compose.yml on the server. Each service has its own named volume for persistent data. Current services: | Service | Image | Container | Port | Subdomain | |---|---|---|---|---| | nginx | nginx:alpine | mere-nginx | 80/443 | *.mere-mortal.net | | DokuWiki | linuxserver/dokuwiki:latest | mere-dokuwiki | 80 (int) | wiki/, dokuwiki/ | | KeeWeb | ghcr.io/keeweb/keeweb:latest | mere-keepass | 80 (int) | keepass/ | | PrivateBin | privatebin/fs:latest | mere-privatebin | 8080 (int) | privatebin/ | | Shaarli | shaarli/shaarli:latest | mere-shaarli | 80 (int) | shaarli/ | | Uptime Kuma | louislam/uptime-kuma:2 | mere-kuma | 3001 (int) | kuma/ | | NocoDB | nocodb/nocodb:0.250.0 | mere-nocodb | 8080 (int) | revodb/ | | Solitaire | (static files) | — | — | game/ | ===== Directory Layout ===== /home/fatal/ ├── docker-compose.yml # Service definitions ├── nginx/ │ ├── conf.d/ # nginx server blocks │ │ ├── mere-mortal.conf # Main service proxy rules │ │ ├── dokuwiki.conf # DokuWiki server block │ │ └── game.conf # Solitaire static file server │ ├── certs/ # TLS certificates │ ├── logs/ # nginx access/error logs │ └── game/ # Klondike solitaire static files