Files
fuesse-sexy/DEPLOY.md
Guido 1a9710ec88 Initial commit: fuesse.sexy — Where's the Feet
Wimmel-Suchspiel: finde 3 versteckte Fuesse in einer randvollen Szene.
- Node/Express-Server generiert Szenen prozedural aus einer gemeinsamen Library
  (library/props = Deko, library/feet = Fuesse); Spezial-Level (emoji) unter scenes/
- Serverseitige Trefferpruefung (nicht per DOM austrickbar)
- Frontend rendert die Szene als ein Bild -> fluessiges Zoom/Pan (panzoom)
- Dark Mode, kein Start-Screen, Installationsskript + Deploy-Doku (Proxmox LXC)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-04 17:29:25 +02:00

2.8 KiB

Deployment auf einem Proxmox-VE LXC

Anleitung, um fuesse.sexy in einem LXC-Container laufen zu lassen (Debian 12 als Beispiel). Läuft danach dauerhaft als systemd-Dienst und startet beim Boot mit.

1. LXC vorbereiten

Ein unprivilegierter Debian/Ubuntu-Container reicht locker (1 vCPU, 512 MB RAM, 2 GB Disk). In der Container-Konsole (als root):

apt update && apt install -y curl git

Node.js 20 (LTS) über NodeSource:

curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
apt install -y nodejs
node -v   # sollte v20.x zeigen

2. Repo klonen

cd /opt
git clone <DEINE_REPO_URL> fuesse-sexy
cd fuesse-sexy
./install.sh        # installiert Abhängigkeiten (npm install)

Kurzer Funktionstest:

npm start
# -> "fuesse.sexy laeuft auf http://localhost:3000"

Im Browser http://<LXC-IP>:3000 öffnen. Läuft es? Dann mit Strg+C stoppen und als Dienst einrichten.

3. Als systemd-Dienst einrichten (dauerhaft + Autostart)

Eine Service-Vorlage liegt bei: deploy/fuesse-sexy.service.

# node-Pfad prüfen (in der Service-Datei ggf. anpassen):
which node        # z.B. /usr/bin/node

cp /opt/fuesse-sexy/deploy/fuesse-sexy.service /etc/systemd/system/
systemctl daemon-reload
systemctl enable --now fuesse-sexy

systemctl status fuesse-sexy   # sollte "active (running)" zeigen

Läuft jetzt unter http://<LXC-IP>:3000 und startet beim Boot automatisch.

Optional als eigener Benutzer statt root: adduser --system --group fuesse, chown -R fuesse:fuesse /opt/fuesse-sexy, dann die User=/Group=-Zeilen in der Service-Datei einkommentieren.

4. Aktualisieren (neue Version einspielen)

cd /opt/fuesse-sexy
git pull
npm install
systemctl restart fuesse-sexy

5. Domain fuesse.sexy + HTTPS (optional, empfohlen)

Am einfachsten mit Caddy (automatisches HTTPS via Let's Encrypt) — entweder im selben LXC oder auf einem Reverse-Proxy davor:

apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | tee /etc/apt/sources.list.d/caddy-stable.list
apt update && apt install -y caddy

/etc/caddy/Caddyfile:

fuesse.sexy {
    reverse_proxy localhost:3000
}
systemctl reload caddy

Voraussetzung: Der DNS-A/AAAA-Eintrag von fuesse.sexy zeigt auf die öffentliche IP, und Port 80/443 sind aus dem Internet erreichbar (Port-Forwarding/Firewall). Caddy holt dann automatisch ein Zertifikat.

Ports / Netzwerk

  • Die App lauscht auf Port 3000 (via PORT-Env änderbar).
  • Ohne Reverse-Proxy: LXC-Firewall Port 3000 freigeben.
  • Mit Caddy: nur 80/443 nach außen, 3000 bleibt intern.