Installation og drift af OS2BorgerPC Admin
Introduktion
OS2BorgerPC admin-site er designet som et Docker-image. Bygning og publicering håndteres af en GitHub-pipeline, som uploader Docker-image’et til GitHub Packages. Her kan du finde image-tags og URLs.
Konfiguration sker via miljøvariabler (beskrevet nedenfor) og omfatter desuden specifikationer for driftskrav. En compose.yaml
-fil leveres som reference til udvikling og konfiguration.
Bemærk: compose.yaml
er ikke opdateret til at understøtte de nye cron job-endpoints. Til produktion anbefales brug af de nye cron job endpoints.
Oversigt over Miljøvariabler
Variabel | Forklaring | Standardværdi | Påkrævet |
---|---|---|---|
ADMIN_USERNAME | Brugernavn for admin-bruger | Ingen | Ja |
ADMIN_PASSWORD | Adgangskode for admin-bruger | Ingen | Ja |
ADMIN_EMAIL | Email for admin-bruger | Ingen | Ja |
DB_HOST | Databasevært | Ingen | Ja |
DB_PORT | Databaseport | Ingen | Ja |
DB_USER | Brugernavn til databasen | Ingen | Ja |
DB_PASSWORD | Adgangskode til databasen | Ingen | Ja |
DB_NAME | Navn på databasen | Ingen | Ja |
CORE_SCRIPT_VERSION_TAG | Version af de globale scripts | Ingen | Ja |
CORE_SCRIPT_COMMIT_HASH | Matchende commit-hash for scripts | Ingen | Ja |
HTTPS_GUARANTEED | Aktiverer behandling af HTTP som HTTPS bag proxy | false | Nej |
PC_IMAGE_RELEASES_URL | URL til download af BorgerPC ISO images | Ingen | Nej |
KIOSK_IMAGE_RELEASES_URL | URL til download af Kiosk ISO images | Ingen | Nej |
Drift Anbefalinger
For at understøtte leverandører og kommuner i at sætte OS2BorgerPC admin-site i drift samt håndtere opgraderinger anbefales følgende fremgangsmåde:
Drift Opsætning
- Undgå brug af
docker-compose
i produktion:docker-compose
er velegnet til udvikling, men anbefales ikke til produktion.- Brug en orkestreringsløsning som Kubernetes eller Docker Swarm til at håndtere containere.
- Ønskes brug af docker-compose alligevel eller sammen med Docker Swarm:
- Lav ny docker-compose fil med udgangspunkt i
compose.yaml
- Fjern unødvendige services som
frontend
og tilpascron-service
som beskrevet nedenfor. - Konfigurer admin-site til at pege på et specifikt Docker-image-tag, f.eks.:
image: ghcr.io/os2borgerpc/os2borgerpc-admin-site:<specific-tag>
- Indstil miljøvariabler i henhold til dokumentationen.
- Lav ny docker-compose fil med udgangspunkt i
- Volumenhåndtering:
- Sørg for at mount persistente volumes til
/media
for at sikre, at scripts og andre uploads bevares mellem genstarter. - Eksempel: ```yaml volumes:
- admin-media:/media ```
- Sørg for at mount persistente volumes til
- Sikkerhed:
- Angiv en stærk
SECRET_KEY
i miljøvariablerne. - Begræns
ALLOWED_HOSTS
til de domæner, der skal have adgang til admin-site.
- Angiv en stærk
Opgradering af Admin-Site
- Forberedelse:
- Gennemgå release-notes for den nye version.
- Test opgraderingen i et udviklings- eller staging-miljø.
- Opdatering:
- Opdater Docker-image-tagget til den ønskede version i din orkestreringsopsætning.
- Genstart admin-site-containere for at anvende ændringerne.
- Validering:
- Bekræft, at opgraderingen er succesfuld ved at teste kernefunktionalitet.
- Tjek logfiler for fejl eller advarsler.
Fejlfinding
- Hvis der opstår problemer under opgradering, kan du rulle tilbage til det tidligere Docker-image-tag.
- Kontroller logfiler i admin-site-containere for detaljerede fejlmeddelelser.
Bootstrapping
For at initialisere admin-site og få adgang til Djangos administrationsside (<base URL>/admin
), skal en admin-bruger oprettes med følgende miljøvariabler:
ADMIN_USERNAME
ADMIN_PASSWORD
ADMIN_EMAIL
Bemærk: ADMIN_EMAIL
anvendes af Djangos indbyggede brugerhåndtering. Den oprettede admin-bruger kan også administrere sites og klienter.
Database
Konfiguration af databaseforbindelsen sker via følgende miljøvariabler:
DB_HOST
DB_PORT
DB_USER
DB_PASSWORD
DB_NAME
Se compose.yaml
for eksempler.
Scripts
Scripts gemmes i Djangos mediamappe (/media
). For at sikre persistens mellem genstarter skal en persistent volume mountes på denne sti.
Globale Scripts
Globale scripts downloades fra OS2’s core-script repository under opstart. Konfiguration sker med:
CORE_SCRIPT_VERSION_TAG
: Version af de globale scripts (f.eks.v0.1.5
).CORE_SCRIPT_COMMIT_HASH
: Matchende commit-hash for versionen (f.eks.5340bdc128e2de8c01def5dc50e8680399631f53
).
Sådan Finder du Commit-Hash
- Gå til commit-historik.
- Find det commit, der matcher versionstagget.
- Kopiér commit-hash.
Opdatering af Globale Scripts
- Opdater
CORE_SCRIPT_VERSION_TAG
ogCORE_SCRIPT_COMMIT_HASH
. - Genstart containeren.
Bemærk: Eksisterende scripts fjernes ikke automatisk og skal ryddes manuelt via SQL eller /admin
.
Cron Jobs
Admin-site understøtter to cron jobs:
check_notifications
: Sender notifikationer. (Forslag:*/10 * * * *
)clean_up_database
: Rydder op i databasen. (Forslag:0 19 * * 6
)
Kørsel af Cron Jobs
Via HTTP:
curl http://admin-site-url:8080/jobs/check_notifications -f
curl http://admin-site-url:8080/jobs/clean_up_database -f
Manuelt fra container:
/code/admin_site/manage.py check_notifications
/code/admin_site/manage.py clean_up_database
Diverse Konfigurationsparametre
HTTPS_GUARANTEED
:-
true false (default: false). - Aktiverer middleware for behandling af HTTP som HTTPS bag en proxy.
-
PC_IMAGE_RELEASES_URL
ogKIOSK_IMAGE_RELEASES_URL
:- URLs til download af BorgerPC ISO images.