Et dev-miljø trenger ikke ligge på laptopen din eller i en stor ekstern skytjeneste for å være ryddig og fleksibelt. Med Docker på en VPS fra Webhuset kan du kjøre en isolert dev-container på din egen server i Norge, koble deg til via SSH og kaste miljøet når du er ferdig.
Hva du trenger
- En VPS med Ubuntu
- SSH-tilgang til serveren
- Et domene eller subdomene hvis du vil koble på egne tjenester senere
- Grunnleggende kjennskap til Git og Docker
- Et repo du vil teste, bygge eller eksperimentere med
Trinn 1: Logg inn på VPS-en
Start med å koble deg til serveren via SSH:
ssh root@din-server-ipOppdater pakkene før du installerer noe nytt:
apt update && apt upgrade -yLag gjerne en egen bruker for dev-arbeid, slik at du ikke jobber som root til daglig:
adduser dev
usermod -aG sudo devLogg inn som den nye brukeren:
ssh dev@din-server-ipTrinn 2: Installer Docker
Installer Docker fra Ubuntu-pakkene:
sudo apt install -y docker.io docker-compose-plugin
sudo systemctl enable --now dockerGi dev-brukeren tilgang til Docker:
sudo usermod -aG docker devLogg ut og inn igjen, og test at Docker fungerer:
docker run hello-worldNå har du en VPS som kan kjøre containere uten at du fyller opp maskinen med tilfeldige runtime-versjoner, testverktøy og midlertidige dependencies.
Trinn 3: Lag et isolert arbeidsområde
Lag en mappe for dev-containere:
mkdir -p ~/dev-containers/prosjekt
cd ~/dev-containers/prosjektKlon repoet du vil jobbe med:
git clone https://github.com/bruker/repo.git appPoenget er å holde arbeidsfilene utenfor selve containeren. Da kan du slette containeren uten å miste repoet, endringer eller lokale testdata.
Trinn 4: Start en dev-container med volum
Her er et enkelt eksempel med Node.js:
docker run -it --name privat-dev \
-v "$PWD/app:/workspace" \
-w /workspace \
-p 3000:3000 \
node:22-bookworm \
bashDu er nå inne i containeren, med repoet montert som /workspace.
Installer dependencies og start prosjektet som vanlig:
npm install
npm run devHvis appen lytter på port 3000, kan du nå teste den mot serverens IP:
http://din-server-ip:3000For private eksperimenter bør du ikke la dev-porter stå åpne mot internett. Bruk heller SSH-tunnel fra maskinen din:
ssh -L 3000:localhost:3000 dev@din-server-ipDa kan du åpne dette lokalt:
http://localhost:3000Trafikken går gjennom SSH, og dev-tjenesten trenger ikke eksponeres offentlig.
Trinn 5: Stopp, start og kast miljøet
Når du er ferdig for dagen, kan du stoppe containeren:
docker stop privat-devStart den igjen senere:
docker start -ai privat-devHvis du vil begynne helt på nytt, sletter du bare containeren:
docker rm privat-devArbeidsfilene ligger fortsatt i ~/dev-containers/prosjekt/app, fordi de er montert som volum. Det er hele poenget med en dev-container: runtime, dependencies og eksperimenter kan kastes, mens koden og dataene dine blir liggende kontrollert på serveren.
Tips
- Bruk én container per prosjekt eller eksperiment.
- Ikke eksponer dev-porter offentlig med mindre du faktisk trenger det.
- Bruk SSH-nøkler, ikke passordinnlogging, for tryggere tilgang.
- Rydd gamle images jevnlig:
docker system pruneEn privat dev-container gir deg et ryddig, kastbart miljø for testing og bygging, samtidig som kode, tilgang og arbeidsfiler ligger på en server du kontrollerer i Norge, under norsk lov og GDPR.