Nieuw: scripts/install.sh — installeert de stack in zeven zichtbare stappen
met drie vragen, standaard in /srv/server-up (aan te passen met
ROOSTERWIJS_DIR). Het script:
- controleert git, docker, de compose-plugin en of de daemon bereikbaar is;
- maakt de doelmap aan, of legt uit welk commando daarvoor nodig is als de
rechten ontbreken (roept zelf geen sudo aan);
- kloont of werkt de checkout bij;
- laat kiezen waar de gegevens komen (zie hieronder);
- genereert .env met een willekeurige DJANGO_SECRET_KEY en een sterk
databasewachtwoord, en zet hostnaam, CSRF-origin en DJANGO_SECURE op basis
van twee vragen; een bestaande .env wordt nooit zomaar overschreven;
- bouwt en start de containers;
- meldt of er een account is en biedt aan er een aan te maken.
Opslagkeuze bij de installatie:
- docker-compose.yml gebruikt nu ${DATA_DB}, ${DATA_MEDIA} en ${DATA_STATIC}.
Een naam = Docker-volume, een pad = gewone map naast de code.
- De standaardwaarden zijn de bestaande named volumes, dus installaties die
al draaien veranderen niet en er gaan geen gegevens verloren.
- Kies je voor mappen, dan komt alles onder /srv/server-up/data/.
Verder:
- .gitignore: /data/ uitgesloten. Zonder dat zou de gegevensmap als lokale
wijziging gelden en zou deploy.sh weigeren te draaien.
- deploy.sh maakt de gegevensmappen aan als de opslagkeuze paden gebruikt,
zodat Docker ze niet als root aanmaakt.
- DEPLOY.md en README: installatie via het script, de opslagkeuze in een
tabel, en de dump/restore-stappen die nodig zijn bij het omzetten van
volumes naar mappen.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAQ4Np13v8fwbTtKHKnwDz
76 lines
1.6 KiB
Text
76 lines
1.6 KiB
Text
# ======================================================================
|
|
# Geheimen / omgeving
|
|
# ======================================================================
|
|
.env
|
|
.env.*
|
|
!.env.example
|
|
|
|
# ======================================================================
|
|
# Python / Django
|
|
# ======================================================================
|
|
__pycache__/
|
|
*.py[cod]
|
|
*$py.class
|
|
*.egg-info/
|
|
.eggs/
|
|
build/
|
|
dist/
|
|
.venv/
|
|
venv/
|
|
env/
|
|
ENV/
|
|
|
|
# Databases (lokaal SQLite)
|
|
*.sqlite3
|
|
*.sqlite3-journal
|
|
backend/db.sqlite3
|
|
backend/db.sqlite3-journal
|
|
|
|
# Door Django verzamelde/geüploade bestanden
|
|
backend/staticfiles/
|
|
staticfiles/
|
|
media/
|
|
|
|
# Test- en coverage-artefacten
|
|
.pytest_cache/
|
|
.coverage
|
|
.coverage.*
|
|
htmlcov/
|
|
.tox/
|
|
.mypy_cache/
|
|
.ruff_cache/
|
|
|
|
# ======================================================================
|
|
# Node / frontend
|
|
# ======================================================================
|
|
node_modules/
|
|
frontend/node_modules/
|
|
frontend/dist/
|
|
frontend/.vite/
|
|
npm-debug.log*
|
|
yarn-debug.log*
|
|
yarn-error.log*
|
|
.pnpm-debug.log*
|
|
|
|
# ======================================================================
|
|
# Logs
|
|
# ======================================================================
|
|
*.log
|
|
logs/
|
|
|
|
# ======================================================================
|
|
# Editor / OS
|
|
# ======================================================================
|
|
.vscode/
|
|
.idea/
|
|
*.swp
|
|
*.swo
|
|
.DS_Store
|
|
Thumbs.db
|
|
desktop.ini
|
|
|
|
# Gegevens bij de 'gewone mappen'-opslagkeuze (database, media, statics).
|
|
# Deze map hoort nooit in git en moet buiten 'git status' blijven, anders
|
|
# weigert scripts/deploy.sh te draaien wegens 'lokale wijzigingen'.
|
|
/data/
|
|
.env.backup-*
|