Admin Dashboard
Admin Log In
Key figures
Access control
Loading access rules…
Temporary lock during updates. Check at least one profession and one user type. Administrators are always exempt. To keep the site live but stop new sign-ups, use Registrations below — not this panel.
Visitors
Loading visitors…
Registrations
Loading…
When this is off, visitors who try to create an account, log in with a licence, join as a guest, or open Preview see a thank-you message and can join the waitlist. Intro video and email login stay open. You can still create accounts here in admin.
Waitlist
Pricing
Loading…
Prices shown on the website, checkout and emails. Paddle charges the price set in the Paddle catalog, so change the price in Paddle at the same time: individual price on the individual price ID, group price on the group seat price ID.
Course presentations
Edit on-screen slide text and separate voice scripts before building lesson videos.
Open presentation editorGame requests
When a user taps Get More Games, the request lands here. Create the case in Decision Games first if you want full slides, then send it straight into their folder. They get an automatic message and email.
Send a game to a user
Create user
Needs attention
Loading…
Playbook — live, updates, GDPR
Avkrysningene huskes i denne nettleseren. Kommandoer på serveren står også i filen DEPLOY.md i prosjektmappen. Betaling er fortsatt demo.
Ordlista
- Lagre (Save)
- Filen skrives til disken på PC-en din (Ctrl+S i Cursor). Ingen andre ser endringen ennå.
- Git
- Et program som husker historikken til koden (hver commit). Det kjører på PC-en og på serveren. Det er ikke en nettside.
- GitHub
- En nettside (github.com) som lagrer Git-historikken din i skyen. Tenk et felles arkiv: PC-en pusher dit, serveren puller derfra. Du trenger en gratis konto. Alternativ: hopp over GitHub og kopier filer med
scp. - Commit
- Et merket øyeblikksbilde av endringene i Git, med en kort melding. Ligger fortsatt bare på PC-en din til du pusher.
- Push
- Sender commitene fra PC-en til GitHub.
- Pull
- Henter commitene fra GitHub inn på maskinen du står på (på serveren: laster ned det du pushet hjemmefra).
- DNS / «resolves»
- Internett slår opp domenenavnet og får tilbake en IP-adresse. Når oppslaget gir serverens IP, «peker domenet på serveren» — da treffer nettleseren riktig maskin.
- A-record
- En DNS-rad som sier: dette navnet har denne IPv4-adressen.
@= selve domenet (dittnavn.no).www=www.dittnavn.no. - VPS
- En leid Linux-maskin på internett med egen offentlig IP. Der kjører live-siden. Du styrer den ikke med mus — du skriver kommandoer via SSH.
- SSH
- En sikker tilkobling fra PC-en din til den leide serveren. Du åpner ikke et program «på serveren» først. Du åpner PowerShell på Windows og skriver
ssh root@DIN_IP. Da blir det svarte vinduet en fjern-kommandolinje inne på Linux-maskinen. Port 22 må være åpen i brannmuren (det er «døren» SSH bruker). - Port 80 / 443
- 80 = vanlig http. 443 = https (kryptert). Nettlesere bruker disse. Databasen (5432) skal ikke være åpen utenfra.
- Docker
- På live-serveren: kjører app, database og HTTPS. Trengs ikke på PC-en mens du utvikler (da brukes SQLite).
- .env
- Hemmelig oppsett på serveren (passord, JWT, domene). Kopieres fra
.env.example. Skal aldri lastes opp til GitHub. - /health
- En test-URL. Svarer
{"status":"ok"}når appen får kontakt med databasen. - Volume
- Diskområde Docker bruker til Postgres. Slettes det, er all live-data borte.
1. Gå live første gang
-
Steg for steg
- Kjøp domenet (Domeneshop, one.com, Namecheap, Cloudflare…).
- Opprett VPS først, slik at du har IPv4-adressen (se neste punkt). Den ser ut som
203.0.113.10. - I DNS-panelet hos domenet, lag to A-records:
- Type
A, navn@(eller tomt / Apex), verdi = server-IP - Type
A, navnwww, verdi = samme IP
- Type
- TTL kan stå på standard (ofte 300–3600 sekunder). Det er hvor lenge internett husker det gamle svaret.
-
Steg for steg
- Opprett Ubuntu 24.04, ca. 2 vCPU / 4 GB RAM (Hetzner, DigitalOcean, Azure…).
- Noter IPv4. Logg inn:
ssh root@DIN_IP. Første gang spør den om du stoler på nøkkelen — skrivyes. - Installer Docker (kommandoene står i
DEPLOY.md). - Brannmur: åpne 22 (SSH til deg), 80 og 443 (nettstedet). Ikke åpne 5432 — det er Postgres, og den skal bare snakke med appen inne i Docker.
-
Hva «resolves» betyr, og hvordan du sjekker
Når noen skriver
https://dittnavn.no, spør nettleseren internett: «hvilken maskin er dette?» Svaret er en IP. Resolves to the server = svaret er din VPS-IP, ikke en gammel side eller «finnes ikke».På PC-en (PowerShell eller ledetekst):
nslookup dittnavn.no
I svaret skal Address være VPS-en sin IP. Gjør det samme for
www.dittnavn.no. Stemmer det ikke ennå, vent (ofte noen minutter, av og til noen timer) og prøv igjen. Caddy kan ikke lage HTTPS-sertifikat før dette stemmer. -
Steg for steg
- Anbefalt: prosjektet pushes til GitHub (kode, ikke hemmeligheter). På serveren:
git clone ADRESSEN /opt/decisionworkout. - GitHub inneholder aldri
.enveller PC-databasen. Passord lages i.envpå serveren i neste steg. - Ikke kopier mappen fra PC-en med
scphvis du kan unngå det — da er det lett å ta med testdata. Ikke kopier lokale*.db-filer eller Docker-volumet.
- Anbefalt: prosjektet pushes til GitHub (kode, ikke hemmeligheter). På serveren:
-
Steg for steg
- På serveren:
cd /opt/decisionworkoutderettercp .env.example .envognano .env(lagre i nano: Ctrl+O, Enter, avslutt: Ctrl+X). SITE_ADDRESS/PUBLIC_BASE_URL= domenet ditt, f.eks.https://dittnavn.no.JWT_SECRETminst 32 tegn. Lag en:openssl rand -hex 32og lim inn. Dette signerer innloggings-cookies. Hvis du bytter den senere, logges alle ut.POSTGRES_PASSWORD(lang og tilfeldig). Admin eradmin@decisionworkout.com/Detteeradmin123med mindre du setterADMIN_INITIAL_PASSWORD.- Testbrukere på live får passordet
Detteertestbruker123automatisk.TEST_USERS_PASSWORDtrengs bare hvis du vil bytte det (minst 12 tegn). - SMTP og Paddle kan stå tomme i starten. Feltene ligger i
.env.exampleog fylles på serveren senere — ikke i GitHub.
- På serveren:
-
Hva kommandoen gjør
cd /opt/decisionworkout docker compose -f docker-compose.prod.yml up -d --build
-f docker-compose.prod.yml= bruk live-filen, ikke den lokaledocker-compose.yml.--build= bygg app-image på nytt fra koden.-d= kjør i bakgrunnen (du får tilbake kommandolinjen).- Nye kontoer er stengt automatisk. Test med admin og testbrukere. Når du er klar for kunder: panelet Registrations → slå på Allow new accounts.
- Tre tjenester starter: Postgres (data), appen (nettstedet), Caddy (HTTPS foran). Caddy henter Let's Encrypt-sertifikat automatisk når DNS allerede peker hit.
-
Steg for steg
- I nettleseren:
https://dittnavn.no/health. Du skal se{"status":"ok"}. Hengelås i adressefeltet = HTTPS virker. - Får du sertifikatfeil: DNS peker ikke hit ennå, eller port 80/443 er stengt. Vent, sjekk
nslookup, deretterdocker compose -f docker-compose.prod.yml restart caddy. - Får du 502: appen starter fortsatt, eller feilet. Se logg:
docker compose -f docker-compose.prod.yml logs app.
- I nettleseren:
-
Steg for steg
- Åpne
https://dittnavn.no/admin.html. - Logg inn med
admin@decisionworkout.com/Detteeradmin123. - Sjekk at forsiden, innlogging og et kursrom virker. Nye kontoer og gjeste-join er stengt til du slår på Allow new accounts.
- Åpne
-
Hva dette er
pg_dumplager en fil med all databasen (brukere, fremdrift, betalingsrader). Volume på serveren er ikke nok alene — hvis VPS-en dør, vil du ha filen et annet sted (PC, annen disk, sky).På serveren, fra prosjektmappen:
sh deploy/backup.sh. Kopier den ferdige.sql.gz-filen vekk. Helst hver natt (cron).
2. Lagre, commit, last opp og oppdater live
Tenk tre lag: disk på PC-en → Git-historikk → GitHub → serveren bygger på nytt. Save er bare lag 1.
-
Lagre filene på PC-en
- I Cursor: Ctrl+S, eller File → Save All. Da ligger koden på disken under
C:\Privat\CursorProsjekter\DecisionWorkoutV1. - Kjør gjerne
dev.cmdog test på http://localhost:5393 før du sender noe live. - Lagre er ikke det samme som å oppdatere nettstedet. Live endres først etter push + build på serveren.
- I Cursor: Ctrl+S, eller File → Save All. Da ligger koden på disken under
-
Commit (øyeblikksbilde med melding)
- Ikonet kan mangle (særlig i Agents-vinduet). Trykk Ctrl+Shift+P, skriv
Show Source Control, Enter. Virker det ikke:Open Editor Windowførst, deretterShow Source Controlder. - Øverst skriver du commit-meldingen. Under Changes ligger filer som er endret men ikke committet ennå. Trykk Commit. Nå er et punkt i historikken lagret lokalt.
- Se commit-punktene: i samme sidestolpe, åpne Source Control Graph (graf/klokke i Source Control-panelet, eller Command Palette Ctrl+Shift+P → skriv
Source Control Graph). Hver prikk er en commit. Klikk en prikk for melding, dato og filer. - Én fil: høyreklikk filen i Explorer → Open Timeline. Der ser du når akkurat den filen ble committet.
- Nederst til venstre i Cursor vises branchnavnet (ofte
main). Klikk det for å se lokale grener. - Uten Cursor: i PowerShell i prosjektmappen:
git add -A git status git log --oneline -20 git commit -m "Kort beskrivelse av hvorfor"
git loglister de siste lokale commitene. Du kan fortsatt angre før du pusher.
- Ikonet kan mangle (særlig i Agents-vinduet). Trykk Ctrl+Shift+P, skriv
-
Push (send til GitHub)
- I Cursor: Sync / Push etter commit.
- Eller:
git push. - Etter push kan serveren hente nøyaktig den koden. Har du ikke GitHub ennå, hopp til «Uten git» nederst i dette avsnittet.
-
Steng offentlig innlogging mens du oppdaterer, hvis folk er inne
- Her i admin: panelet Access control → kryss av profesjon/brukertype → Apply changes.
- Eksisterende brukere ser at innlogging er stengt pga. oppdatering. Du kan fortsatt bruke admin.
-
Koble til serveren med SSH, deretter pull og bygg
- Dette skjer på PC-en din. Åpne PowerShell (Windows-tast, søk etter PowerShell). Du «åpner» ikke SSH som et program på VPS-en — du starter en tilkobling hjemmefra.
- Skriv (bytt ut IP):
ssh root@203.0.113.10
Første gang: spør den om du stoler på maskinen → skrivyes. Deretter passordet du fikk da du opprettet VPS-en. Når du ser noe somroot@ubuntu:~#, skriver du kommandoer på serveren, ikke på Windows. - Der, på serveren, kjør:
cd /opt/decisionworkout git pull docker compose -f docker-compose.prod.yml up -d --build
git pullhenter det du pushet til GitHub.up -d --buildbygger ny app-boks. Databasen beholdes. Avslutt SSH etterpå medexit(da er du tilbake på PC-en).- Sjekk
https://dittnavn.no/health. Innlogging for deg og testbrukere skal virke. Nye kontoer er stengt til du slår på Allow new accounts i panelet Registrations.
-
Uten git: kopier filer med
scp, deretter sammedocker compose … up -d --buildpå serveren. Du må selv vite hvilke filer som endret seg — derfor er git enklere.
Ikke slett Docker-volumet decisionworkout_pgdata — det er live-databasen. Ikke lim inn den lokale databasen på live.
3. Bruker ber om GDPR, betaling eller faktura
- Søk e-posten i Accounts under. Klikk raden slik at detaljpanelet åpnes til høyre.
- Download GDPR pack — JSON-fil med konto, fremdrift, meldinger, abonnement og betalingsrader. Send den bare til e-postadressen som står på kontoen (kryptert e-post hvis du kan). Dette er innsyn/portabilitet (GDPR art. 15 og 20).
- Download invoices åpner utskriftsvennlige kvitteringer. Brukeren kan lagre som PDF via Utskrift i nettleseren. Betaling er demo via Paddle-plassholder: ikke kortnummer, ikke fiscal faktura før Paddle er live.
- Brukeren kan gjøre det samme selv: kurs-dashboard → My account → Export my data / Invoices.
- Sletting: de bruker My account → Delete account med passord. Admin-konto kan ikke slettes der. Uthenting logges i Audit log.
Svar fra post@decisionworkout.com når du sender pakke. Kortnummer lagres aldri.
4. Utvikling på PC-en
Dobbeltklikk dev.cmd. Appen bruker en lokal SQLite-fil (decisionworkout.db) — ingen Docker på PC-en. Åpne http://localhost:5393. Det er ikke live-siden. Live bruker PostgreSQL på VPS-en (tusenvis av samtidige brukere). Lokal testdata skal ikke kopieres dit.
Ideas
Drafts to bring back later. Not linked from the public site.
The Team — roster page, ready when you want it on the front page again.
Live Center — plan and start Zoom meetings with the team. Hidden from the user menu until it is live.
Forbedringsmuligheter
Arbeidsnotat du kan redigere mens du jobber. Teksten lagres i denne nettleseren.
Broadcast
Communication Center
Messages
Select a message to preview it here.
New message
Accounts & licenses
Filtered by
| Account | User group | Type | Licenses | Billing | Status | Last seen |
|---|
Billing
Renewing in 30 days
- Loading…
Cancelled
- Loading…
Unpaid / failed
- Loading…
Recent payments
- Loading…
Audit log
- Loading…