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>
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 dieUser=/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.