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>
This commit is contained in:
104
DEPLOY.md
Normal file
104
DEPLOY.md
Normal file
@@ -0,0 +1,104 @@
|
||||
# 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):
|
||||
|
||||
```sh
|
||||
apt update && apt install -y curl git
|
||||
```
|
||||
|
||||
Node.js 20 (LTS) über NodeSource:
|
||||
|
||||
```sh
|
||||
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
|
||||
apt install -y nodejs
|
||||
node -v # sollte v20.x zeigen
|
||||
```
|
||||
|
||||
## 2. Repo klonen
|
||||
|
||||
```sh
|
||||
cd /opt
|
||||
git clone <DEINE_REPO_URL> fuesse-sexy
|
||||
cd fuesse-sexy
|
||||
./install.sh # installiert Abhängigkeiten (npm install)
|
||||
```
|
||||
|
||||
Kurzer Funktionstest:
|
||||
|
||||
```sh
|
||||
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`](deploy/fuesse-sexy.service).
|
||||
|
||||
```sh
|
||||
# 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)
|
||||
|
||||
```sh
|
||||
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:
|
||||
|
||||
```sh
|
||||
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
|
||||
}
|
||||
```
|
||||
|
||||
```sh
|
||||
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.
|
||||
Reference in New Issue
Block a user