Webhuset
Tilbake til Nyheter
2 min lesetid

Slik kjører du en privat dev-container på en VPS

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-ip

Oppdater pakkene før du installerer noe nytt:

apt update && apt upgrade -y

Lag gjerne en egen bruker for dev-arbeid, slik at du ikke jobber som root til daglig:

adduser dev
usermod -aG sudo dev

Logg inn som den nye brukeren:

ssh dev@din-server-ip

Trinn 2: Installer Docker

Installer Docker fra Ubuntu-pakkene:

sudo apt install -y docker.io docker-compose-plugin
sudo systemctl enable --now docker

Gi dev-brukeren tilgang til Docker:

sudo usermod -aG docker dev

Logg ut og inn igjen, og test at Docker fungerer:

docker run hello-world

Nå 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/prosjekt

Klon repoet du vil jobbe med:

git clone https://github.com/bruker/repo.git app

Poenget 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 \
  bash

Du er nå inne i containeren, med repoet montert som /workspace.

Installer dependencies og start prosjektet som vanlig:

npm install
npm run dev

Hvis appen lytter på port 3000, kan du nå teste den mot serverens IP:

http://din-server-ip:3000

For 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-ip

Da kan du åpne dette lokalt:

http://localhost:3000

Trafikken 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-dev

Start den igjen senere:

docker start -ai privat-dev

Hvis du vil begynne helt på nytt, sletter du bare containeren:

docker rm privat-dev

Arbeidsfilene 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 prune

En 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.