Beamtic: et 10+ år Gammelt Privatprojekt

Beamtic er et personligt projekt fra 2016, hvor jeg deler tekniske vejledninger, erfaringer og artikler om webudvikling, Linux, open source og andre emner, der interesserer mig.

21 visninger

Af. Jacob

Edited: 2026-06-18 17:04

Beamtic begyndte som projekt i 2016, men bygger videre på et tidligere privat projekt, hvis rødder går endnu længere tilbage. Det er samtidig det projekt, jeg har arbejdet med i længst tid, og som har udviklet sig i takt med mine egne interesser og erfaringer.

I dag fungerer Beamtic primært som en teknisk blog med fokus på programmering, webudvikling, Linux, open source og self-hosting. Her deler jeg vejledninger, erfaringer og løsninger på konkrete problemer, som jeg selv møder i hverdagen, med det mål at gøre kompleks teknologi mere tilgængelig for andre.

Projektet er fortsat under aktiv udvikling og fungerer både som en vidensbase, et eksperimentarium for nye idéer og en platform, hvor jeg kan udforske og formidle de teknologier, der interesserer mig mest.

Hjemmeside: https://beamtic.com/

Værktøjer

Kodning:

  • PHP
  • JavaScript
  • Python
  • Bash
  • SCSS

Server opsætning:

  • PHP-FPM
  • MariaDB
  • Apache2
  • Docker

Beamtic er udviklet i ren PHP i backend, med en smule Python, som jeg bruger til at kommonikere med Pygments, som er en server-side syntax highlighter. Typisk bruger jeg altid seneste version af PHP, og kun meget begrænset brug af dependencies og frameworks. Sådan fortsætter jeg også i dag med at udvikle siden.

Mit CMS er efterhånden blevet så robust, at jeg ikke har behov for andre løsninger, og jeg har senest også flyttet mit portfolio-site over på det. Jeg er dog begyndt at bruge HedgeDoc til noter og dokumentation, hvilket fungerer rigtig godt, især når jeg arbejder sammen med andre.

Oversættelser

Fordi jeg har både sider på Dansk og Engelsk, har det været nødvendigt med et system til at oversætte tekst-strenge i brugerfladen, og derfor har jeg udviklet mit eget oversættelsessystem, som er indbygget i mit CMS.

Værktøj til håndtering af oversættelser på Beamtic

Mit Portfolie, jacobkristensen.dk er eksempelvis på Dansk, imens beamtic.com er på Engelsk.

De fleste funktioner jeg udvikler på mit eget CMS, udspringer altså af konkrete personlige behov.

Infrastruktur

Til at begynde med kørte jeg de forskellige services direkte AWS hosted VPS, men med tiden har jeg flyttet til Hetzner, og i samme omgang flyttet alt til custom Docker containers baseret på Alpine Linux. Fordelen er, at jeg spare plads, men også at jeg har grundig forståelse for, hvad der køre inde i mine containere.

Nedenfor ses groft hvordan, jeg har sammensat mine services med Docker.

Tegning af opsætningen af Beamtic

Sikkerhed har en høj prioritet for mig, og da Traefik kræver adgang til Docker's sock fil, har jeg derfor valgt at konfigurere en sock proxy. I det her tilfælde er valget faldet på tecnativa/docker-socket-proxy , da den lader til at være den mest brugte, og den har nogle fornuftige default indstillinger, så man ikke behøver tænke alt for meget over konfigurationen.

Hver enkelt service køre i en adskilt container, så hvis én container skulle blive kompromiteret, vil skaden muligvis være begrænset til den ene container. De services som ikke skal kunne tilgås fra internettet, er begrænset til et virtuelt Docker netværk. Jeg sigter også efter at begrænse installationen i containerne til det absolut nødvendige for at minimere angrebsfladen og reducere risikoen for sikkerhedsproblemer, men jeg anvender også cap_drop: all for at fjerne unødvendige Linux capabilities fra containeren og dermed yderligere reducere angrebsfladen og styrke sikkerheden.

Skrive-adgang bør begrænses til de mapper og filer, som er påkrævet for at en service kan køre korrekt. Når jeg afprøver nye services, så kan det godt tage lidt tid at finde ud af, præcis hvilke placeringer kræver skriveadgang.

Det særlige ved Beamtic

Udover at være et bloggging og tutorial site, så har Beamtic været en god platform at afprøve konfiguration af forskellige services. Mit Docker-miljø er stort set plug-and-play, så hvis ellers der er nok serverressourcer, så er det nemt at tilslutte flere services. Traefik tager sig automatisk af Let's Encrypt TLS certifikater og virtuelle hosts.