docs: add self-hosted deployment guide, Dockerfile & docker-compose.yml
This commit is contained in:
@@ -20,41 +20,63 @@ Ein modernes, helles und schnelles Web-App-System für euren veganen Vorrat, eur
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Deployment (z. B. auf Vercel)
|
||||
## 🖥️ Lokales Server-Deployment (Self-Hosted)
|
||||
|
||||
Am einfachsten lässt sich die App kostenlos auf **[Vercel](https://vercel.com)** deployen.
|
||||
Ihr könnt die App ganz einfach auf eurem **eigenen lokalen Server** (Home-Server, Raspberry Pi, Ubuntu/Debian Linux, Windows Server, Synology NAS) betreiben.
|
||||
|
||||
### 1. Repository auf Vercel importieren
|
||||
1. Gehe auf [Vercel.com](https://vercel.com) und erstelle / wähle ein Konto.
|
||||
2. Klicke auf **"Add New..."** → **"Project"**.
|
||||
3. Wähle das Repository `immissmandy/Kitchen` aus.
|
||||
### Methode 1: PM2 / Direct Node.js (Empfohlen)
|
||||
|
||||
### 2. Umgebungsvariablen (Environment Variables) eintragen
|
||||
Füge in Vercel unter **Environment Variables** folgende Variablen ein:
|
||||
Voraussetzung: Node.js (v18+) auf dem Server installiert.
|
||||
|
||||
| Variable | Beschreibung | Beispiel / Standardwert |
|
||||
| :--- | :--- | :--- |
|
||||
| `GEMINI_API_KEY` | Google Gemini API Key | `AQ.Ab8RN6IF-hRoe09JrDVAAktkIAPu400_bnh8egCVa8nuTYyAPQ` |
|
||||
| `GEMINI_MODEL` | Modellbezeichnung | `gemma-2-27b-it` |
|
||||
| `NEXT_PUBLIC_APP_URL` | Domain URL der App | `https://kitchen-mandy-amy.vercel.app` |
|
||||
```bash
|
||||
# 1. Repository auf den Server klonen
|
||||
git clone https://github.com/immissmandy/Kitchen.git
|
||||
cd Kitchen
|
||||
|
||||
### 3. Deployen
|
||||
Klicke auf **"Deploy"**. Vercel baut die App automatisch in unter 1 Minute!
|
||||
# 2. .env.local anlegen
|
||||
cat <<EOT > .env.local
|
||||
GEMINI_API_KEY=AQ.Ab8RN6IF-hRoe09JrDVAAktkIAPu400_bnh8egCVa8nuTYyAPQ
|
||||
GEMINI_MODEL=gemma-2-27b-it
|
||||
NEXT_PUBLIC_APP_URL=http://<EURE_SERVER_IP>:3000
|
||||
EOT
|
||||
|
||||
# 3. Abhängigkeiten installieren & Production Build erstellen
|
||||
npm install
|
||||
npm run build
|
||||
|
||||
# 4. PM2 Process Manager installieren & App starten (Dauerhafter Hintergrundbetrieb)
|
||||
npm install -g pm2
|
||||
pm2 start npm --name "kitchen-stock" -- start
|
||||
|
||||
# 5. Automatischer Server-Neustart aktivieren
|
||||
pm2 startup
|
||||
pm2 save
|
||||
```
|
||||
|
||||
Die App ist jetzt dauerhaft unter `http://<EURE_SERVER_IP>:3000` im Heimnetzwerk erreichbar!
|
||||
|
||||
---
|
||||
|
||||
## 💻 Lokale Entwicklung
|
||||
### Methode 2: Docker Compose (1-Klick Container)
|
||||
|
||||
Falls ihr Docker auf eurem Heimserver nutzt (Synology, Unraid, Portainer, Docker Desktop):
|
||||
|
||||
```bash
|
||||
# 1. Repository klonen
|
||||
git clone https://github.com/immissmandy/Kitchen.git
|
||||
cd Kitchen
|
||||
|
||||
# 2. Abhängigkeiten installieren
|
||||
npm install
|
||||
|
||||
# 3. Entwicklungs-Server starten
|
||||
npm run dev
|
||||
# 2. Container starten
|
||||
docker compose up -d --build
|
||||
```
|
||||
|
||||
Öffne dann [http://localhost:3000](http://localhost:3000) im Browser.
|
||||
Fertig! Der Docker-Container startet automatisch neu, wenn der Server neu gestartet wird.
|
||||
|
||||
---
|
||||
|
||||
## 🌐 Zugriff im Heimnetzwerk & SSL
|
||||
|
||||
Damit Amy & Mandy die App bequem auf dem Smartphone öffnen können:
|
||||
|
||||
1. **Im Heimnetzwerk**: Öffnet am Smartphone einfach `http://192.168.178.X:3000` (IP-Adresse eures Servers).
|
||||
2. **Unterwegs (Optional)**: Nutzt kostenlos **Cloudflare Tunnel** oder Nginx Reverse Proxy mit Let's Encrypt SSL.
|
||||
|
||||
Reference in New Issue
Block a user