First commit - es tut schon mal ganz gut
This commit is contained in:
193
DEPLOYMENT.md
Normal file
193
DEPLOYMENT.md
Normal file
@@ -0,0 +1,193 @@
|
||||
# Deployment Guide - Ausgaben-Next
|
||||
|
||||
## Lokale Entwicklung
|
||||
|
||||
### Voraussetzungen
|
||||
- Node.js 22+
|
||||
- MySQL 8+ (Docker container läuft bereits)
|
||||
- npm oder yarn
|
||||
|
||||
### Setup
|
||||
|
||||
1. **Dependencies installieren:**
|
||||
```bash
|
||||
npm install
|
||||
```
|
||||
|
||||
2. **Umgebungsvariablen konfigurieren:**
|
||||
```bash
|
||||
cp .env.example .env
|
||||
# Bearbeiten Sie .env mit Ihren Datenbankzugangsdaten
|
||||
```
|
||||
|
||||
3. **Development Server starten:**
|
||||
```bash
|
||||
npm run dev
|
||||
```
|
||||
|
||||
Die Anwendung ist dann unter http://localhost:3000 erreichbar.
|
||||
|
||||
## Production Deployment
|
||||
|
||||
### Mit Docker (Empfohlen)
|
||||
|
||||
1. **Lokaler Build:**
|
||||
```bash
|
||||
docker-compose -f docker-compose.local.yml build
|
||||
docker-compose -f docker-compose.local.yml up -d
|
||||
```
|
||||
|
||||
Die Anwendung läuft dann auf Port 3001 (konfigurierbar in docker-compose.local.yml).
|
||||
|
||||
2. **Logs prüfen:**
|
||||
```bash
|
||||
docker logs ausgaben-next-app
|
||||
```
|
||||
|
||||
### Ohne Docker
|
||||
|
||||
1. **Production Build:**
|
||||
```bash
|
||||
npm run build
|
||||
```
|
||||
|
||||
2. **Production Server starten:**
|
||||
```bash
|
||||
npm start
|
||||
```
|
||||
|
||||
## Datenbank
|
||||
|
||||
### Schema erstellen
|
||||
|
||||
Falls die Tabelle `Ausgaben_Tag` noch nicht existiert:
|
||||
|
||||
```bash
|
||||
mysql -u root -p RXF < create_table.sql
|
||||
```
|
||||
|
||||
### Datenbank-Verbindung
|
||||
|
||||
Die Anwendung verwendet die gleiche MySQL-Datenbank wie die alte Ausgaben-Anwendung:
|
||||
|
||||
- **Host:** gitea-db (oder localhost für lokale Entwicklung)
|
||||
- **Database:** RXF
|
||||
- **Table:** Ausgaben_Tag
|
||||
|
||||
Die Zugangsdaten werden über Umgebungsvariablen in `.env` konfiguriert.
|
||||
|
||||
## Umgebungsvariablen
|
||||
|
||||
Erforderliche Variablen in `.env`:
|
||||
|
||||
```env
|
||||
DB_HOST=gitea-db # oder localhost für lokale Entwicklung
|
||||
DB_USER=root
|
||||
DB_PASS=Ihr_Passwort
|
||||
DB_NAME=RXF
|
||||
```
|
||||
|
||||
## Port-Konfiguration
|
||||
|
||||
- **Development:** Port 3000 (npm run dev)
|
||||
- **Production (lokal):** Port 3000 (npm start)
|
||||
- **Docker (lokal):** Port 3001 (gemappt auf internen Port 3000)
|
||||
|
||||
Ändern Sie den Port in `docker-compose.local.yml` falls nötig:
|
||||
|
||||
```yaml
|
||||
ports:
|
||||
- "0.0.0.0:DEIN_PORT:3000"
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Datenbankverbindung schlägt fehl
|
||||
|
||||
1. Prüfen Sie die Umgebungsvariablen in `.env`
|
||||
2. Stellen Sie sicher, dass der MySQL-Container läuft:
|
||||
```bash
|
||||
docker ps | grep mysql
|
||||
```
|
||||
3. Falls Docker verwendet wird, prüfen Sie ob die Container im gleichen Netzwerk sind
|
||||
|
||||
### Build-Fehler
|
||||
|
||||
1. Löschen Sie `.next` und `node_modules`:
|
||||
```bash
|
||||
rm -rf .next node_modules
|
||||
npm install
|
||||
npm run build
|
||||
```
|
||||
|
||||
2. Prüfen Sie die Node.js Version:
|
||||
```bash
|
||||
node --version # Sollte >= 22.x sein
|
||||
```
|
||||
|
||||
### Port bereits belegt
|
||||
|
||||
Ändern Sie den Port in `docker-compose.local.yml` oder verwenden Sie einen anderen Port:
|
||||
```bash
|
||||
PORT=3002 npm run dev
|
||||
```
|
||||
|
||||
## Monitoring
|
||||
|
||||
### Logs ansehen
|
||||
|
||||
**Docker:**
|
||||
```bash
|
||||
docker logs -f ausgaben-next-app
|
||||
```
|
||||
|
||||
**Ohne Docker:**
|
||||
Logs werden in der Konsole angezeigt wo `npm start` läuft.
|
||||
|
||||
## Updates
|
||||
|
||||
1. **Code aktualisieren:**
|
||||
```bash
|
||||
git pull # falls Git verwendet wird
|
||||
```
|
||||
|
||||
2. **Dependencies aktualisieren:**
|
||||
```bash
|
||||
npm install
|
||||
```
|
||||
|
||||
3. **Neu bauen und starten:**
|
||||
```bash
|
||||
npm run build
|
||||
# Dann entweder:
|
||||
npm start
|
||||
# oder:
|
||||
docker-compose -f docker-compose.local.yml up -d --build
|
||||
```
|
||||
|
||||
## Backup
|
||||
|
||||
### Datenbank
|
||||
|
||||
Die Datenbank sollte regelmäßig gesichert werden:
|
||||
|
||||
```bash
|
||||
mysqldump -u root -p RXF Ausgaben_Tag > backup_$(date +%Y%m%d).sql
|
||||
```
|
||||
|
||||
### Application Files
|
||||
|
||||
Wichtige Dateien für Backup:
|
||||
- `.env` (Konfiguration)
|
||||
- `public/` (falls custom Dateien hinzugefügt wurden)
|
||||
- Die Datenbank (siehe oben)
|
||||
|
||||
## Security
|
||||
|
||||
1. **Niemals `.env` ins Git-Repository einchecken!**
|
||||
2. Verwenden Sie starke Datenbankpasswörter
|
||||
3. Halten Sie Dependencies aktuell:
|
||||
```bash
|
||||
npm audit
|
||||
npm update
|
||||
```
|
||||
Reference in New Issue
Block a user