Teknologier

← Hjem
Infrastruktur og utrulling

Cloud, Docker & DevOps — rask og pålitelig utrulling

Vi containeriserer alle applikasjoner med Docker, orkestrerer dem med Docker Compose (eller Kubernetes for enterprise-prosjekter), konfigurerer Caddy som reverse proxy med automatisk SSL og automatiserer hele utrullingssyklusen med GitHub Actions — automatisk fra commit til produksjon.

Containerisering med Docker og Docker Compose

Hver tjeneste har sin egen multi-stage Dockerfile: et build-trinn som installerer avhengigheter og kompilerer, og et minimalt sluttrinn (distroless eller alpine) som bare inneholder de nødvendige artefaktene. Et typisk Next.js-image blir under 150 MB, og et FastAPI-image under 80 MB. Imagene bygges på nytt ved hver merge til main og får semantiske tagger (`v1.2.3` + `latest`).

Docker Compose definerer hele stacken: frontend, API, DB, Redis, worker. Sensitive variabler (DB-passord, API-nøkler, Stripe-hemmelighet) ligger i `.env`, som er utelatt fra git — aldri hardkodet i imaget. Helsesjekker i Compose sikrer at avhengighetene er klare før oppstart (DB klar → API starter → frontend starter).

  • Build-cache med `--mount=type=cache` for installasjon av avhengigheter i CI
  • Optimalisert lagrekkefølge: stabile avhengigheter → kildekode
  • Håndtering av hemmeligheter med Docker secrets eller HashiCorp Vault for enterprise-prosjekter
  • `restart: unless-stopped` + `docker compose up --no-deps` for atomisk utrulling

Caddy — moderne reverse proxy med automatisk SSL

Caddy 2.8 håndterer SSL/TLS automatisk via ACME (Let's Encrypt eller ZeroSSL) — ingen utløpte sertifikater og ingen manuell konfigurasjon. HTTP/2 og HTTP/3 (QUIC) er aktivert som standard. Sikkerhetshoder (HSTS, X-Frame-Options, CSP) settes globalt gjennom gjenbrukbare snippets. Den deklarative Caddyfile-konfigurasjonen kan diffes og versjoneres i git.

Rate limiting, gzip-/brotli-komprimering og strukturert JSON-logging aktiveres med Caddys egne direktiver — uten nginx-moduler eller kompleks Apache-konfigurasjon. Tilgang til sensitive ruter (`/admin`, `.env`, `.git`) returnerer 444 (ingen respons), satt opp som en global sikkerhetssnippet.

  • Kun TLS 1.3 med moderne cipher suites
  • On-demand TLS for multi-tenant SaaS med dynamiske underdomener
  • Reload uten nedetid — `caddy reload` avbryter ikke aktive tilkoblinger
  • Caddy-logging → Loki → Grafana — trafikkanalyse og varsling ved avvik

GitHub Actions CI/CD og overvåking

CI-pipelinen kjører for hver PR: lint, typesjekk, enhetstester, bygging av Docker-image og sårbarhetsskanning (Trivy). Hvis alt går gjennom, pushes imaget til registeret og utrullingen til staging skjer automatisk. Merge til main = automatisk utrulling til produksjon med helsesjekk etter utrulling. Automatisk tilbakerulling hvis helsesjekken feiler innen 60 sekunder.

Overvåking med Grafana + Prometheus for applikasjonsmetrikker (latens, feilrate, køstørrelse) og Loki for logg-aggregering. Varsler konfigureres på Slack/e-post: feilrate >1 %, P95-latens >500 ms, disk >85 %. Ekstern oppetidsovervåking med Better Uptime — offentlig SLA-dashbord tilgjengelig på forespørsel.

  • Trivy-sårbarhetsskanning av image — blokkering ved kritiske CVE-er
  • Dependabot + auto-merge for patch-oppdateringer (grønn CI kreves)
  • Automatisk DB-backup til S3-kompatibel lagring (hver natt, 30 dagers oppbevaring)

Fordeler og begrensninger

Fordeler

  • Den nye versjonen startes ved siden av den gamle, med automatisk tilbakerulling når helsesjekken feiler.
  • Automatisk SSL/TLS via Caddy — ingen sertifikater som utløper på grunn av manuell håndtering.
  • Reproduserbart miljø: samme Docker-image på dev, staging og produksjon.
  • Overvåking og varsler (Grafana, Loki) på feilrate, latens og logger.

Begrensninger

  • Docker Compose skalerer ikke som Kubernetes for enterprise med flere noder.
  • Det første CI/CD-oppsettet krever tid og DevOps-kompetanse.
  • Images og logger bruker diskplass — krever periodisk opprydding.
  • Full overvåking (Prometheus + Grafana) gir flere tjenester å vedlikeholde.

Kort vurdering

Docker + Caddy + GitHub Actions er den ideelle kombinasjonen for pålitelig utrulling på en VPS eller noen få noder. For titalls noder med aggressiv auto-skalering bør du gå over til Kubernetes.

Spesifikasjonstabell

EgenskapGrense / terskelTypisk bruk
OrkestreringDocker Compose, komplett stackÉn node; flere noder krever Swarm/K8sVPS, små og mellomstore prosjekter
Reverse proxyCaddy 2.8, HTTP/3, automatisk SSLSvært komplekse regler krever omfattende konfigurasjonFlere domener, multi-tenant
CI/CDGitHub Actions, automatisk utrullingCI-minutter belastes utover gratisnivåetAutomatisk fra commit til produksjon
Typisk kostnadVPS fra ~5€/månedOvervåking + backup gir ekstra kostnadFra ett enkelt nettsted til flere merkevarer

Docker Compose mot Kubernetes

KriteriumDocker ComposeKubernetes
OppsettkompleksitetLavHøy
Skalering over flere noder / auto-skaleringBegrenset (én node)Utmerket
Egnet forVPS, små og mellomstore prosjekterStore flåter, enterprise

Ofte stilte spørsmå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 konfigurasjon. Nginx krever certbot og mer manuell konfigurasjon for å oppnå det samme.

Trenger jeg Kubernetes?

Ikke for de fleste nettsteder. Docker Compose på en VPS håndterer ett nettsted eller noen få tjenester på en pålitelig måte. Kubernetes blir først nyttig med titalls noder og aggressiv auto-skalering.

Hvordan fungerer en utrulling med helsesjekk?

GitHub Actions bygger et nytt image, starter det ved siden av det gamle, kjører en helsesjekk og bytter deretter trafikken over. Hvis helsesjekken feiler innen 60 sekunder, rulles det automatisk tilbake til forrige versjon.

Hvilken overvåking anbefaler dere?

Grafana + Prometheus for metrikker (latens, feilrate) og Loki for aggregerte logger, med varsler på Slack/e-post. For ekstern oppetidsovervåking legger vi til en uavhengig tjeneste som Better Uptime.

4b2b.net
Forretningsøkosystem
4conta.ro
Regnskap
4invoices.net
Faktureringsapp
4expenses.net
Utgiftsstyring
4notify.net
Varsler
4hosting.net
Webhotell
4database.net
Databaser
4buildsite.net
Nettsidebygger
4myapp.net
App-bygger
4avatars.net
AI-avatarer
4chaty.net
AI-chatbot
4webagency.net
Programvare for webbyråer
4softedu.net
Nettsider for utdanning
4softcrm.net
CRM-plattform
4softerp.net
ERP-system
4softhr.net
HR-styring
4mystaff.net
Medarbeiderportal
4myprojects.net
Prosjektstyring
4mycontracts.net
Kontrakter
4docs.net
Dokumenthåndtering
4appointments.net
Timebestilling
4marketingonline.net
Markedsføring
4insurance.net
Forsikring
4property.net
Eiendomsmegling
4lawyers.net
Advokatsystem
4mygarage.net
Bilverksted
4driving.net
Trafikkskoler
4fleet.net
Bilparkstyring
4myevents.net
Arrangementer
4therapy.net
Terapi
4clinics.net
Klinikker
4dental.net
Tannklinikker
4restaurants.net
Restauranter
4beautify.net
Skjønnhetssalong
4gym.net
Treningssentre
4guards.net
Vaktselskaper
4softvet.net
Dyreklinikker
4softauto.net
Programvare for bilbransjen
4construct.net
Byggefirmaer
4marketplace.net
Markedsplass
4shopy.net
Nettbutikk
4pricing.net
Prissammenligning
4salefood.net
Matlevering
4rentify.net
Utleie
4transports.net
Transport
4agencytravel.net
Reisebyrå
4hotel.net
Hotellsystem
4ong.net
Foreningsstyring