Teknik

← Hem
Infrastruktur & driftsättning

Cloud, Docker & DevOps — Snabb och pålitlig driftsättning

Vi containeriserar alla applikationer med Docker, orkestrerar dem med Docker Compose (eller Kubernetes för enterprise-projekt), konfigurerar Caddy som reverse proxy med automatisk SSL och automatiserar hela driftsättningscykeln via GitHub Actions — från commit till produktion.

Containerisering med Docker och Docker Compose

Varje tjänst har sin egen multi-stage Dockerfile: ett byggsteg som installerar beroenden och kompilerar, och ett minimalt slutsteg (distroless eller alpine) som bara innehåller de nödvändiga artefakterna. En typisk Next.js-image blir under 150 MB; en FastAPI-image under 80 MB. Imagerna byggs om vid varje merge till main och taggas semantiskt (`v1.2.3` + `latest`).

Docker Compose definierar hela stacken: frontend, API, DB, Redis, worker. Känsliga variabler (DB-lösenord, API-nycklar, Stripe-hemlighet) ligger i `.env` som är undantagen från git — aldrig hårdkodade i imagen. Health checks i Compose ser till att beroendena är redo före start (DB redo → API startar → frontend startar).

  • Byggcache med `--mount=type=cache` — npm ci på <30 s i CI
  • Optimerad lagerordning: stabila beroenden → källkod
  • Hantering av hemligheter med Docker secrets eller HashiCorp Vault för enterprise-projekt
  • `restart: unless-stopped` + `docker compose up --no-deps` för atomisk driftsättning

Caddy — modern reverse proxy med automatisk SSL

Caddy 2.8 hanterar SSL/TLS automatiskt via ACME (Let's Encrypt eller ZeroSSL) — inga utgångna certifikat och ingen manuell konfiguration. HTTP/2 och HTTP/3 (QUIC) är aktiverade som standard. Säkerhetshuvuden (HSTS, X-Frame-Options, CSP) sätts globalt via återanvändbara snippets. Den deklarativa Caddyfile-konfigurationen går att jämföra med diff och versionshanteras i git.

Rate limiting, gzip/brotli-komprimering och strukturerad JSON-loggning aktiveras med inbyggda Caddy-direktiv — utan nginx-moduler eller komplicerad Apache-konfiguration. Åtkomst till känsliga sökvägar (`/admin`, `.env`, `.git`) returnerar 444 (inget svar), konfigurerat som en global säkerhetssnippet.

  • A+ på SSL Labs från dag ett — endast TLS 1.3 med moderna cipher suites
  • On-demand TLS för multi-tenant SaaS med dynamiska subdomäner
  • Omladdning utan driftstopp — `caddy reload` avbryter inte aktiva anslutningar
  • Caddy-loggning → Loki → Grafana — trafikanalys och larm vid avvikelser

CI/CD med GitHub Actions och övervakning

CI-pipelinen körs vid varje PR: lint, typkontroll, enhetstester, bygge av Docker-image och sårbarhetsskanning (Trivy). Om allt passerar pushas imagen till registret och driftsättningen till staging sker automatiskt. Merge till main = automatisk driftsättning i produktion med healthcheck efter driftsättningen. Automatisk rollback om healthchecken misslyckas inom 60 sekunder.

Övervakning med Grafana + Prometheus för applikationsmetrik (latens, felfrekvens, könivå) och Loki för logg-aggregering. Larm konfigureras på Slack/e-post: felfrekvens >1 %, latens P95 >500 ms, disk >85 %. Extern uptime-övervakning med Better Uptime — en publik SLA-dashboard finns på begäran.

  • Trivy-sårbarhetsskanning av images — blockerar vid Critical CVE
  • Dependabot + auto-merge för patch-uppdateringar (grön CI krävs)
  • Automatisk DB-backup till S3-kompatibel lagring (varje natt, 30 dagars retention)

Fördelar och begränsningar

Fördelar

  • Driftsättning med automatisk rollback vid misslyckad healthcheck.
  • Automatisk SSL/TLS via Caddy — inga certifikat som går ut utan att någon märker det.
  • Reproducerbar miljö: samma Docker-image i dev, staging och produktion.
  • Övervakning och larm (Grafana, Loki) — problem upptäcks före användarna.

Begränsningar

  • Docker Compose skalar inte som Kubernetes för enterprise med flera noder.
  • Den initiala CI/CD-uppsättningen kräver tid och DevOps-kompetens.
  • Images och loggar tar diskutrymme — kräver regelbunden rensning.
  • Fullständig övervakning (Prometheus + Grafana) ger fler tjänster att underhålla.

Kort slutsats

Docker + Caddy + GitHub Actions är den ideala kombinationen för pålitlig driftsättning på en VPS eller några få noder. För dussintals noder med aggressiv autoskalning bör du gå över till Kubernetes.

Specifikationstabell

FörmågaGräns / tröskelTypisk användning
OrkestreringDocker Compose, komplett stackEn enda nod; flera noder kräver Swarm/K8sVPS, små till medelstora projekt
Reverse proxyCaddy 2.8, HTTP/3, automatisk SSLMycket komplexa regler kräver utökad konfigurationFlera domäner, multi-tenant
CI/CDGitHub Actions, driftsättning < 5 minCI-minuter debiteras utöver gratisnivånAutomatiskt från commit till produktion
Typisk kostnadVPS från ~5 €/månadÖvervakning + backup tillför kostnadFrån en enda sajt till flera varumärken

Docker Compose jämfört med Kubernetes

KriteriumDocker ComposeKubernetes
Uppsättningens komplexitetLågHög
Skalning över flera noder / autoskalningBegränsad (en nod)Utmärkt
Lämplig förVPS, små till medelstora projektStora flottor, enterprise

Vanliga frågor

Varför Caddy och inte Nginx?

Caddy hanterar SSL/TLS automatiskt via ACME, aktiverar HTTP/2 och HTTP/3 som standard och har en kort deklarativ konfiguration. Nginx kräver certbot och mer manuell konfiguration för samma resultat.

Behöver jag Kubernetes?

Inte för de flesta webbplatser. Docker Compose på en VPS hanterar en sajt eller några få tjänster på ett pålitligt sätt. Kubernetes blir användbart först vid dussintals noder med aggressiv autoskalning.

Hur fungerar driftsättning?

GitHub Actions bygger en ny image, startar den vid sidan av den gamla, kör en healthcheck och växlar sedan över trafiken. Om healthchecken misslyckas inom 60 sekunder sker en automatisk rollback till föregående version.

Vilken övervakning rekommenderar ni?

Grafana + Prometheus för metrik (latens, felfrekvens) och Loki för aggregerade loggar, med larm på Slack/e-post. För extern uptime-övervakning lägger vi till en oberoende tjänst som Better Uptime.

4b2b.net
Affärsekosystem
4conta.ro
Bokföring
4invoices.net
Faktureringsapp
4expenses.net
Utläggshantering
4notify.net
Notiser
4hosting.net
Webbhotell
4database.net
Databaser
4buildsite.net
Webbplatsbyggare
4myapp.net
Appbyggare
4avatars.net
AI-avatarer
4chaty.net
AI-chatbot
4webagency.net
Programvara för webbyråer
4softedu.net
Webbplatser för utbildning
4softcrm.net
CRM-plattform
4softerp.net
Affärssystem
4softhr.net
HR-hantering
4mystaff.net
Personalportal
4myprojects.net
Projekthantering
4mycontracts.net
Avtal
4docs.net
Dokumenthantering
4appointments.net
Bokning
4marketingonline.net
Marknadsföring
4insurance.net
Försäkring
4property.net
Fastigheter
4lawyers.net
Juristprogram
4mygarage.net
Bilverkstad
4driving.net
Trafikskolor
4fleet.net
Fordonsflotta
4myevents.net
Evenemang
4therapy.net
Terapi
4clinics.net
Kliniker
4dental.net
Tandvårdskliniker
4restaurants.net
Restauranger
4beautify.net
Skönhetssalong
4gym.net
Gym och träningsanläggningar
4guards.net
Bevakningsföretag
4softvet.net
Veterinärkliniker
4softauto.net
Programvara för bilbranschen
4construct.net
Byggföretag
4marketplace.net
Marknadsplats
4shopy.net
Webbutik
4pricing.net
Prisjämförelse
4salefood.net
Matleverans
4rentify.net
Uthyrning
4transports.net
Transport
4agencytravel.net
Resebyrå
4hotel.net
Hotellsystem
4ong.net
Föreningshantering