roosterwijs/.env.example
Ramon f795e85333
Some checks failed
CI / backend (push) Has been cancelled
CI / frontend (push) Has been cancelled
Installatiescript met opslagkeuze, standaard /srv/server-up (v0.2.04 beta)
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
2026-08-19 15:17:08 +02:00

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=