Teknologier

← Forside
Infrastruktur & udrulning

Cloud, Docker & DevOps — Hurtig og pålidelig udrulning

Vi containeriserer alle applikationer med Docker, orkestrerer dem med Docker Compose (eller Kubernetes til enterprise-projekter), konfigurerer Caddy som reverse proxy med automatisk SSL og automatiserer hele udrulningscyklussen via GitHub Actions — fra commit til produktion.

Containerisering med Docker og Docker Compose

Hver tjeneste har sin egen multi-stage Dockerfile: en build-fase, der installerer afhængigheder og kompilerer, og en minimal slutfase (distroless eller alpine), der kun indeholder de nødvendige artefakter. Et typisk Next.js-image fylder under 150 MB, et FastAPI-image under 80 MB. Images bygges om ved hver sammenfletning til main og får semantiske tags (`v1.2.3` + `latest`).

Docker Compose definerer hele stakken: frontend, API, DB, Redis, worker. Følsomme variabler (DB-adgangskode, API-nøgler, Stripe-hemmelighed) ligger i `.env`, som er udelukket fra git — aldrig hardkodet i imaget. Health checks i Compose sikrer, at afhængighederne er klar før start (DB klar → API starter → frontend starter).

  • Build-cache med `--mount=type=cache` — npm ci på under 30 s i CI
  • Optimeret lagrækkefølge: stabile afhængigheder → kildekode
  • Håndtering af hemmeligheder med Docker secrets eller HashiCorp Vault til enterprise-projekter
  • `restart: unless-stopped` + `docker compose up --no-deps` til atomisk udrulning

Caddy — moderne reverse proxy med automatisk SSL

Caddy 2.8 håndterer SSL/TLS automatisk via ACME (Let's Encrypt eller ZeroSSL) — ingen udløbne certifikater og ingen manuel konfiguration. HTTP/2 og HTTP/3 (QUIC) er aktiveret som standard. Sikkerhedsheadere (HSTS, X-Frame-Options, CSP) sættes globalt via genbrugelige snippets. Den deklarative Caddyfile-konfiguration kan diffes og versioneres i git.

Rate limiting, gzip/brotli-komprimering og struktureret JSON-logning aktiveres via Caddys native direktiver — ingen nginx-moduler eller kompleks Apache-konfiguration. Adgang til følsomme ruter (`/admin`, `.env`, `.git`) returnerer 444 (intet svar), konfigureret som et globalt sikkerhedssnippet.

  • Kun TLS 1.3 med moderne cipher suites, konfigureret globalt i Caddy
  • On-demand TLS til multi-tenant SaaS med dynamiske subdomæner
  • Reload uden nedetid — `caddy reload` afbryder ikke aktive forbindelser
  • Caddy-logning → Loki → Grafana — trafikanalyse og alarmer ved anomalier

GitHub Actions CI/CD og overvågning

CI-pipelinen kører ved hver PR: lint, typetjek, enhedstest, build af Docker-image og sårbarhedsscanning (Trivy). Hvis alt består, pushes imaget til registret, og udrulning til staging sker automatisk. Sammenfletning til main = automatisk udrulning til produktion med healthcheck efter udrulningen. Automatisk rollback, hvis healthchecket fejler inden for 60 sekunder.

Overvågning med Grafana + Prometheus til applikationsmetrikker (latenstid, fejlrate, kølængde) og Loki til logaggregering. Alarmer er konfigureret til Slack/e-mail: fejlrate > 1 %, P95-latenstid > 500 ms, disk > 85 %. Ekstern oppetidsovervågning med Better Uptime — et offentligt SLA-dashboard er tilgængeligt på forespørgsel.

  • Trivy-sårbarhedsscanning af images — blokeret ved kritisk CVE
  • Dependabot + auto-merge til patch-opdateringer (grøn CI er et krav)
  • Automatisk DB-backup til S3-kompatibel lagring (hver nat, 30 dages opbevaring)

Fordele og begrænsninger

Fordele

  • Udrulning med automatisk rollback ved fejlet healthcheck.
  • Automatisk SSL/TLS via Caddy — ingen manuelt udløbne certifikater.
  • Reproducerbart miljø: samme Docker-image på dev, staging og produktion.
  • Overvågning og alarmer (Grafana, Loki) — problemer opdages før brugerne.

Begrænsninger

  • Docker Compose skalerer ikke som Kubernetes til enterprise med flere noder.
  • Den indledende CI/CD-opsætning kræver tid og DevOps-ekspertise.
  • Images og logs optager diskplads — kræver periodisk oprydning.
  • Fuld overvågning (Prometheus + Grafana) tilføjer tjenester, der skal vedligeholdes.

Kort konklusion

Docker + Caddy + GitHub Actions er den ideelle kombination til pålidelig udrulning på en VPS eller et par noder. Til dusinvis af noder med aggressiv autoskalering bør du gå over til Kubernetes.

Specifikationstabel

EgenskabGrænse / tærskelTypisk anvendelse
OrkestreringDocker Compose, hele stakkenEnkelt node; flere noder kræver Swarm/K8sVPS, små til mellemstore projekter
Reverse proxyCaddy 2.8, HTTP/3, automatisk SSLMeget komplekse regler kræver udvidet konfigurationMulti-domæne, multi-tenant
CI/CDGitHub Actions, udrulning < 5 minCI-minutter afregnes ud over den gratis kvoteAutomatisk fra commit til produktion
Typisk prisVPS fra ca. 5 €/månedOvervågning + backup øger prisenFra et enkelt site til multi-brand

Docker Compose vs. Kubernetes

KriteriumDocker ComposeKubernetes
OpsætningskompleksitetLavHøj
Flere noder / autoskaleringBegrænset (én node)Fremragende
Bedst tilVPS, små til mellemstore projekterStore flåder, enterprise

Ofte stillede spørgsmål

Hvorfor Caddy og ikke Nginx?

Caddy håndterer SSL/TLS automatisk via ACME, aktiverer HTTP/2 og HTTP/3 som standard og har en kort, deklarativ konfiguration. Nginx kræver certbot og mere manuel konfiguration for at opnå det samme.

Har jeg brug for Kubernetes?

Ikke til de fleste sites. Docker Compose på en VPS håndterer et site eller nogle få tjenester pålideligt. Kubernetes bliver først nyttigt ved dusinvis af noder med aggressiv autoskalering.

Hvordan fungerer udrulning?

GitHub Actions bygger et nyt image, starter det side om side med det gamle, kører et healthcheck og skifter derefter trafikken. Hvis healthchecket fejler inden for 60 sekunder, ruller det automatisk tilbage til den forrige version.

Hvilken overvågning anbefaler I?

Grafana + Prometheus til metrikker (latenstid, fejlrate) og Loki til aggregerede logs, med alarmer via Slack/e-mail. Til ekstern oppetidsovervågning tilføjer vi en uafhængig tjeneste som Better Uptime.

4b2b.net
Forretningsøkosystem
4conta.ro
Bogføring
4invoices.net
Faktureringsapp
4expenses.net
Udgiftsstyring
4notify.net
Notifikationer
4hosting.net
Webhotel
4database.net
Databaser
4buildsite.net
Hjemmesidebygger
4myapp.net
App-bygger
4avatars.net
AI-avatarer
4chaty.net
AI-chatbot
4webagency.net
Software til webbureauer
4softedu.net
Hjemmesider til uddannelse
4softcrm.net
CRM-platform
4softerp.net
ERP-system
4softhr.net
HR-styring
4mystaff.net
Medarbejderportal
4myprojects.net
Projektstyring
4mycontracts.net
Kontrakter
4docs.net
Dokumenthåndtering
4appointments.net
Booking
4marketingonline.net
Markedsføring
4insurance.net
Forsikring
4property.net
Ejendomsmæglere
4lawyers.net
Advokatsystem
4mygarage.net
Autoværksted
4driving.net
Køreskoler
4fleet.net
Bilflåde
4myevents.net
Events
4therapy.net
Terapi
4clinics.net
Klinikker
4dental.net
Tandklinikker
4restaurants.net
Restauranter
4beautify.net
Skønhedssalon
4gym.net
Fitnesscentre
4guards.net
Vagtvirksomheder
4softvet.net
Dyreklinikker
4softauto.net
Software til autobranchen
4construct.net
Byggevirksomheder
4marketplace.net
Markedsplads
4shopy.net
Webshop
4pricing.net
Prissammenligning
4salefood.net
Madlevering
4rentify.net
Udlejning
4transports.net
Transport
4agencytravel.net
Rejsebureau
4hotel.net
Hotelsystem
4ong.net
Foreningsstyring