Site Tools


mere-mortal:infra

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

mere-mortal:infra [2026/09/24 18:52] – external edit 127.0.0.1mere-mortal:infra [2026/09/24 18:52] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +====== 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