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
58 lines
2.7 KiB
Text
58 lines
2.7 KiB
Text
# Kopieer dit bestand naar .env en vul echte waarden in.
|
|
# cp .env.example .env
|
|
# Het .env-bestand bevat geheimen en hoort NIET in git (staat in .gitignore).
|
|
|
|
# --- Django ---------------------------------------------------------------
|
|
# Genereer een sterke sleutel, bv.:
|
|
# python -c "import secrets; print(secrets.token_urlsafe(50))"
|
|
DJANGO_SECRET_KEY=vervang-mij-door-een-lange-willekeurige-string
|
|
|
|
# 0 = uit (zo hoort het op de test-/productieserver). 1 alleen lokaal debuggen.
|
|
DJANGO_DEBUG=0
|
|
|
|
# Hostnaam(en) waarop de server bereikbaar is, komma-gescheiden.
|
|
# Vervang door de echte naam/IP van je test-server.
|
|
DJANGO_ALLOWED_HOSTS=rooster-test.example.nl,localhost,127.0.0.1
|
|
|
|
# Volledige origin(s) inclusief http(s):// voor CSRF achter nginx.
|
|
# LET OP: dit moet exact de origin zijn die de browser gebruikt. Draai je met
|
|
# TLS, dan hoort hier https:// te staan (en zonder poort als je op 443 zit).
|
|
# Staat hier http:// terwijl de browser https:// gebruikt, dan mislukt elke
|
|
# POST — dus ook het inloggen — met een CSRF-fout.
|
|
DJANGO_CSRF_TRUSTED_ORIGINS=https://rooster.example.nl
|
|
|
|
# Zet op 1 zodra de server achter HTTPS draait (TLS-certificaat aanwezig).
|
|
# Activeert o.a. veilige cookies, HSTS en een redirect naar https.
|
|
# Vereist dat de reverse proxy X-Forwarded-Proto: https meestuurt; nginx.conf
|
|
# in dit project geeft die header door.
|
|
DJANGO_SECURE=1
|
|
|
|
# --- Opslag ---------------------------------------------------------------
|
|
# Waar de gegevens staan. Een NAAM = Docker beheert het volume; een PAD =
|
|
# gewone map naast de code (direct benaderbaar, makkelijk te back-uppen).
|
|
# scripts/install.sh vult dit in op basis van je keuze.
|
|
# Docker-volumes: DATA_DB=pgdata DATA_MEDIA=media_volume DATA_STATIC=static_volume
|
|
# Gewone mappen: DATA_DB=./data/postgres DATA_MEDIA=./data/media DATA_STATIC=./data/static
|
|
DATA_DB=pgdata
|
|
DATA_MEDIA=media_volume
|
|
DATA_STATIC=static_volume
|
|
|
|
# --- PostgreSQL -----------------------------------------------------------
|
|
POSTGRES_DB=rooster
|
|
POSTGRES_USER=rooster
|
|
POSTGRES_PASSWORD=vervang-mij-door-een-sterk-wachtwoord
|
|
|
|
# --- E-mail (o.a. wachtwoordreset) ---------------------------------------
|
|
# Laat DJANGO_EMAIL_BACKEND leeg/weg om e-mail naar de console-log te sturen
|
|
# (handig om te testen). Zet onderstaande regel aan voor échte e-mail via SMTP:
|
|
# DJANGO_EMAIL_BACKEND=django.core.mail.backends.smtp.EmailBackend
|
|
EMAIL_HOST=
|
|
EMAIL_PORT=587
|
|
EMAIL_HOST_USER=
|
|
EMAIL_HOST_PASSWORD=
|
|
EMAIL_USE_TLS=1
|
|
DEFAULT_FROM_EMAIL=Roosterwijs <noreply@jouwschool.nl>
|
|
# Basis-URL van de frontend voor resetlinks in e-mails (zonder slash op het eind),
|
|
# bv. https://rooster.example.nl (leeg = afleiden uit het verzoek).
|
|
# Met TLS: gebruik https://, anders wijzen resetlinks naar een http-adres.
|
|
FRONTEND_BASE_URL=
|