Teknikstack
Jag designade och driftsatte en containerbaserad servermiljö på en VPS-hostad Ubuntu Server. Infrastrukturens fokus ligger på isolering, säkerhet och enkel skalning av applikationer.
- Ubuntu Server (minimal installation)
- Docker & Docker Compose
- Nginx Reverse Proxy
- PostgreSQL
- Certbot (Let´s Encrypt)
- VPS-hosting via Hostinger)
Infrastrukturdesign
Servern är uppbyggd enligt en lagerindelad arkitektur där Nginx körs direkt på värdmaskinen och fungerar som central ingresspunkt för all inkommande trafik.
Nätverksarkitektur
Servermiljön är uppbyggd kring en central ingressmodell där Nginx fungerar som reverse proxy för samtliga applikationer. Genom att hantera SSL, domänrouting och trafikstyrning på värdservern skapas en tydlig separation mellan publika och interna resurser.
Applikationerna körs i isolerade Docker-nätverk och exponeras inte direkt mot internet. Istället routas inkommande trafik till rätt container baserat på domän och konfiguration. Lösningen ger en flexibel grund för att hosta flera tjänster på samma server samtidigt som säkerhet, underhållbarhet och skalbarhet bibehålls.
Säkerhet
Säkerhet har varit en central del av serverarkitekturen redan från början. All extern trafik krypteras med SSL-certifikat från Let's Encrypt som automatiskt förnyas med hjälp av Certbot. Nginx fungerar som den enda publika ingresspunkten och ansvarar för att dirigera trafiken vidare till rätt tjänst.
Databaser exponeras aldrig direkt mot internet utan är endast åtkomliga från de containrar som behöver kommunicera med dem. Genom privata Docker-nätverk och separerade applikationsmiljöer skapas ytterligare ett skyddslager som begränsar åtkomsten mellan olika system.
Containerisering
Säkerhet har varit en central del av serverarkitekturen redan från början. All extern trafik krypteras med SSL-certifikat från Let's Encrypt som automatiskt förnyas med hjälp av Certbot. Nginx fungerar som den enda publika ingresspunkten och ansvarar för att dirigera trafiken vidare till rätt tjänst. Databaser exponeras aldrig direkt mot internet utan är endast åtkomliga från de containrar som behöver kommunicera med dem. Genom privata Docker-nätverk och separerade applikationsmiljöer skapas ytterligare ett skyddslager som begränsar åtkomsten mellan olika system.
För att skapa en stabil och lättadministrerad driftmiljö är plattformen uppbyggd kring Docker.Varje applikation körs i sin egen isolerade container tillsammans med en dedikerad PostgreSQL-databas. Genom att separera tjänsterna från varandra minimeras risken att ett problem i en applikation påverkar övriga system på servern.
Skalbarhet
Infrastrukturen är designad för att enkelt kunna växa när nya projekt eller tjänster behöver läggas till. Genom Docker Compose definieras hela miljön som kod, vilket innebär att samma konfiguration kan återskapas på nya servrar med minimala manuella insatser.
När en ny applikation ska driftsättas skapas en separat containeruppsättning med egna miljövariabler, databasresurser och nätverksinställningar. Nginx kan därefter konfigureras för att routa trafik till den nya tjänsten utan att påverka redan existerande applikationer.
Detta arbetssätt ger konsekventa miljöer mellan utveckling, test och produktion samtidigt som det förenklar både felsökning och framtida expansion.
Resultat
Den färdiga plattformen ger en robust grund för att hosta flera applikationer på samma server utan att kompromissa med säkerhet eller underhållbarhet. Genom containerisering, centraliserad trafikhantering och automatiserad certifikathantering har infrastrukturen blivit både enkel att administrera och enkel att vidareutveckla.
Arkitekturen möjliggör snabb driftsättning av nya projekt samtidigt som befintliga tjänster kan uppdateras oberoende av varandra. Resultatet är en flexibel och skalbar plattform som kan växa i takt med nya behov utan att kräva större förändringar i den underliggande infrastrukturen.