add easy-to-start-script
This commit is contained in:
parent
ddc3ff976e
commit
7b0d4b76d7
3 changed files with 201 additions and 3 deletions
49
README.md
49
README.md
|
@ -1,5 +1,39 @@
|
||||||
# The Fallen Birdy Form
|
# The Fallen Birdy Form
|
||||||
|
|
||||||
|
## 🚀 Schneller Einstieg
|
||||||
|
|
||||||
|
Für einen schnellen Start des Projekts verwenden Sie die bereitgestellten Skripte:
|
||||||
|
|
||||||
|
### Start des Projekts
|
||||||
|
```bash
|
||||||
|
./start_project.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
Das Start-Skript führt automatisch folgende Schritte aus:
|
||||||
|
- Erstellt eine `.env` Datei mit Entwicklungseinstellungen
|
||||||
|
- Baut und startet alle Docker Container (Web, Datenbank, Traefik)
|
||||||
|
- Führt Django Migrations aus
|
||||||
|
- Lädt Testdaten (Fixtures)
|
||||||
|
- Erstellt einen Admin-Benutzer
|
||||||
|
- Sammelt statische Dateien
|
||||||
|
|
||||||
|
**Nach dem Start ist die Anwendung verfügbar unter:**
|
||||||
|
- **Hauptanwendung**: [http://localhost:8008](http://localhost:8008)
|
||||||
|
- **Admin-Panel**: [http://localhost:8008/admin](http://localhost:8008/admin)
|
||||||
|
|
||||||
|
**Standard Admin-Zugang:**
|
||||||
|
- Benutzername: `admin`
|
||||||
|
- Passwort: `admin`
|
||||||
|
|
||||||
|
### Stop des Projekts
|
||||||
|
```bash
|
||||||
|
./stop_project.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
Das Stop-Skript stoppt alle Container und räumt auf.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Throw old database
|
## Throw old database
|
||||||
In case you've got an preexisting database, delete it and do the following:
|
In case you've got an preexisting database, delete it and do the following:
|
||||||
|
|
||||||
|
@ -82,7 +116,16 @@ CSRF_TRUSTED_ORIGINS=[os.getenv('CSRF_TRUSTED_ORIGINS')]
|
||||||
|
|
||||||
## How to use this project?
|
## How to use this project?
|
||||||
|
|
||||||
### Development
|
### Einfachster Weg (Empfohlen)
|
||||||
|
Verwenden Sie die bereitgestellten Skripte für einen schnellen Start:
|
||||||
|
```bash
|
||||||
|
./start_project.sh # Projekt starten
|
||||||
|
./stop_project.sh # Projekt stoppen
|
||||||
|
```
|
||||||
|
|
||||||
|
### Manueller Weg
|
||||||
|
|
||||||
|
#### Development
|
||||||
|
|
||||||
Build the images and spin up the containers:
|
Build the images and spin up the containers:
|
||||||
|
|
||||||
|
@ -92,8 +135,8 @@ $ docker-compose up -d --build
|
||||||
|
|
||||||
Test it out:
|
Test it out:
|
||||||
|
|
||||||
1. [http://django.localhost:8008/](http://django.localhost:8008/)
|
1. [http://localhost:8008/](http://localhost:8008/) - Hauptanwendung
|
||||||
1. [http://django.localhost:8081/](http://django.localhost:8081/)
|
1. [http://localhost:8081/](http://localhost:8081/) - Traefik Dashboard
|
||||||
|
|
||||||
### Production
|
### Production
|
||||||
|
|
||||||
|
|
142
start_project.sh
Executable file
142
start_project.sh
Executable file
|
@ -0,0 +1,142 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Django FBF Projekt Startup Script
|
||||||
|
# Dieses Skript startet das Projekt und erstellt einen Admin-Benutzer
|
||||||
|
|
||||||
|
set -e # Script bei Fehlern beenden
|
||||||
|
|
||||||
|
echo "🚀 Django FBF Projekt wird gestartet..."
|
||||||
|
|
||||||
|
# Überprüfen ob Docker läuft
|
||||||
|
if ! docker info > /dev/null 2>&1; then
|
||||||
|
echo "❌ Docker ist nicht gestartet. Bitte starten Sie Docker Desktop."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# .env Datei erstellen falls sie nicht existiert
|
||||||
|
if [ ! -f .env ]; then
|
||||||
|
echo "📝 Erstelle .env Datei..."
|
||||||
|
cp .env.example .env
|
||||||
|
|
||||||
|
# Secret Key generieren
|
||||||
|
SECRET_KEY=$(openssl rand -base64 50 | tr -d "=+/" | cut -c1-50)
|
||||||
|
|
||||||
|
# .env Datei mit Entwicklungseinstellungen anpassen
|
||||||
|
cat > .env << EOF
|
||||||
|
# APP URL
|
||||||
|
APP_URL='http://localhost:8008'
|
||||||
|
|
||||||
|
# Allowed Hosts (für Traefik Route - nur ein Host)
|
||||||
|
ALLOWED_HOSTS='localhost'
|
||||||
|
|
||||||
|
# Database
|
||||||
|
DB_HOST='db'
|
||||||
|
DB_NAME='db_fbf'
|
||||||
|
DB_PASSWORD='superSecret'
|
||||||
|
DB_PORT='5432'
|
||||||
|
DB_USER='fbf'
|
||||||
|
|
||||||
|
# Debugging
|
||||||
|
DEBUG='True'
|
||||||
|
|
||||||
|
# Secrets
|
||||||
|
SECRET_KEY='${SECRET_KEY}'
|
||||||
|
|
||||||
|
# CSRF
|
||||||
|
CSRF_TRUSTED_ORIGINS='http://localhost:8008,http://127.0.0.1:8008'
|
||||||
|
|
||||||
|
# Email (Optional - für lokale Entwicklung)
|
||||||
|
DEFAULT_FROM_EMAIL='admin@localhost'
|
||||||
|
EMAIL_HOST_PASSWORD=''
|
||||||
|
EMAIL_HOST_USER=''
|
||||||
|
EMAIL_HOST=''
|
||||||
|
EMAIL_PORT=25
|
||||||
|
EOF
|
||||||
|
echo "✅ .env Datei erstellt"
|
||||||
|
else
|
||||||
|
echo "📄 .env Datei bereits vorhanden"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Docker Container stoppen falls sie laufen
|
||||||
|
echo "🛑 Stoppe eventuell laufende Container..."
|
||||||
|
docker compose down --remove-orphans > /dev/null 2>&1 || true
|
||||||
|
|
||||||
|
# Docker Images bauen und Container starten
|
||||||
|
echo "🔨 Baue Docker Images..."
|
||||||
|
docker compose build --no-cache
|
||||||
|
|
||||||
|
echo "🐳 Starte Docker Container..."
|
||||||
|
docker compose up -d
|
||||||
|
|
||||||
|
# Warten bis die Datenbank bereit ist
|
||||||
|
echo "⏳ Warte auf Datenbankverbindung..."
|
||||||
|
until docker compose exec db pg_isready -U fbf -d db_fbf > /dev/null 2>&1; do
|
||||||
|
echo " ... Datenbank startet noch..."
|
||||||
|
sleep 2
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "✅ Datenbank ist bereit"
|
||||||
|
|
||||||
|
# Warten bis der Web-Container läuft
|
||||||
|
echo "⏳ Warte auf Web-Container..."
|
||||||
|
sleep 10
|
||||||
|
|
||||||
|
# Django Migrations ausführen
|
||||||
|
echo "🔄 Führe Django Migrations aus..."
|
||||||
|
docker compose exec -T web python manage.py makemigrations
|
||||||
|
docker compose exec -T web python manage.py migrate
|
||||||
|
|
||||||
|
# Fixtures laden (falls vorhanden)
|
||||||
|
if [ -d "app/fixtures" ] && [ "$(ls -A app/fixtures)" ]; then
|
||||||
|
echo "📦 Lade Fixtures..."
|
||||||
|
for fixture in app/fixtures/*.json; do
|
||||||
|
if [ -f "$fixture" ]; then
|
||||||
|
echo " Lade $(basename "$fixture")..."
|
||||||
|
docker compose exec -T web python manage.py loaddata "fixtures/$(basename "$fixture")" || true
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Admin-Benutzer erstellen
|
||||||
|
echo "👤 Erstelle Admin-Benutzer..."
|
||||||
|
cat << 'EOF' | docker compose exec -T web python manage.py shell
|
||||||
|
from django.contrib.auth.models import User
|
||||||
|
|
||||||
|
# Überprüfen ob Admin-User bereits existiert
|
||||||
|
if User.objects.filter(username='admin').exists():
|
||||||
|
print("Admin-Benutzer existiert bereits")
|
||||||
|
user = User.objects.get(username='admin')
|
||||||
|
user.set_password('admin')
|
||||||
|
user.is_superuser = True
|
||||||
|
user.is_staff = True
|
||||||
|
user.save()
|
||||||
|
print("Admin-Passwort wurde auf 'admin' zurückgesetzt")
|
||||||
|
else:
|
||||||
|
# Neuen Admin-User erstellen
|
||||||
|
User.objects.create_superuser('admin', 'admin@localhost', 'admin')
|
||||||
|
print("Admin-Benutzer erstellt")
|
||||||
|
print("Benutzername: admin")
|
||||||
|
print("Passwort: admin")
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Static Files sammeln
|
||||||
|
echo "📁 Sammle Static Files..."
|
||||||
|
docker compose exec -T web python manage.py collectstatic --noinput --clear
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "🎉 Projekt erfolgreich gestartet!"
|
||||||
|
echo ""
|
||||||
|
echo "📋 Informationen:"
|
||||||
|
echo " 🌐 Anwendung: http://localhost:8008"
|
||||||
|
echo " 🔧 Admin-Panel: http://localhost:8008/admin"
|
||||||
|
echo " 👤 Admin-Login:"
|
||||||
|
echo " Benutzername: admin"
|
||||||
|
echo " Passwort: admin"
|
||||||
|
echo ""
|
||||||
|
echo "📝 Nützliche Befehle:"
|
||||||
|
echo " docker compose logs -f web # Logs anzeigen"
|
||||||
|
echo " docker compose down # Projekt stoppen"
|
||||||
|
echo " docker compose up -d # Projekt starten"
|
||||||
|
echo ""
|
||||||
|
echo "🔍 Container Status:"
|
||||||
|
docker compose ps
|
13
stop_project.sh
Executable file
13
stop_project.sh
Executable file
|
@ -0,0 +1,13 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Django FBF Projekt Stopp Script
|
||||||
|
|
||||||
|
echo "🛑 Stoppe Django FBF Projekt..."
|
||||||
|
|
||||||
|
# Docker Container stoppen
|
||||||
|
docker compose down
|
||||||
|
|
||||||
|
echo "✅ Projekt gestoppt"
|
||||||
|
echo ""
|
||||||
|
echo "📝 Zum erneuten Starten verwenden Sie:"
|
||||||
|
echo " ./start_project.sh"
|
Loading…
Add table
Add a link
Reference in a new issue