GuiderUtveckling och driftAppplattformen Dokploy

Driftsätt dina appar med Dokploy

Dokploy på Debian 13, ett självhostat alternativ till Heroku och Vercel som bygger dina appar från Git och kör dem på Docker Swarm med gratis certifikat och databaser, med installationssidan stängd mot internet.

Testad på Dokploy 0.30.7 med Docker 28.5.0 på Debian 13 (trixie) på en server hos Melonslab Uppdaterad 27 september 2026

Rekommenderad server för guiden

VC-S Micro · 2 vCPU · 8 GB Minne · 250 GB Lagring

Månadsvis, ingen bindningstid 7 dagars öppet köp

90 kr/mån

Beställ nu
På den här sidan

Det här sätter du upp

Dokploy är en plattform för dina egna appar: peka den mot ett Git-repo, så bygger den appen, kör den i en container, ger den ett certifikat och startar om den om den stannar. Den kör också databaser bredvid dina appar.

Precis som Coolify installerar Dokploy Docker, tar över port 80 och 443 för sin egen proxy, Traefik, och körs som root. Den behöver därför en egen, nyinstallerad server. Dokploy kör allt som tjänster i Docker Swarm, vilket också gör att den senare kan sprida appar över flera servrar.

Varje steg nedan har körts på en nyinstallerad VC-P Alloy (2 vCPU, 8 GB) hos Melonslab med Debian 13, som Dokploys dokumentation ännu inte nämner:

  • Dokploy 0.30.7 installerades på ungefär 3 minuter, och panelen fick ett certifikat från Let's Encrypt för sitt eget namn.
  • En Go-app byggdes från ett publikt Git-repo på ungefär 2 minuter, fick sitt certifikat och omdirigerade HTTP till HTTPS. Över IPv4 såg apparna varje besökares riktiga adress.
  • En PostgreSQL-databas gick att nå från Dokploys eget nätverk, men inte från internet.
  • Installationssidan gick aldrig att nå från internet, och allt startade igen av sig självt efter en omstart av servern.

Med två appar och en databas använde servern omkring 1,4 GB minne.

Innan du börjar

Du behöver:

  • en nyinstallerad server hos Melonslab med Debian 13 och inget annat installerat, med minst 2 GB minne, vilket är Dokploys minimum. Att bygga appar på servern kräver mer: Dokploy rekommenderar 4 GB eller mer för det;
  • ett namn för panelen, till exempel dokploy.example.com, och ett för varje app, till exempel app.example.com, med A- och AAAA-poster som pekar på servern.

Sätt upp SSH-nycklar och automatiska säkerhetsuppdateringar enligt steg 1 till 3 i säkerhetsguiden, och hoppa över steg 4: Docker öppnar containerportar förbi ufw, så i stället stänger steg 2 här den port som inte ska vara publik.

Exemplen använder dokploy.example.com för panelen och app.example.com för en app. Byt genomgående ut dem mot dina egna.

1. Installera Dokploy

Som root:

apt update
apt install -y curl
curl -sSL https://dokploy.com/install.sh -o dokploy-install.sh
bash dokploy-install.sh

Installationen sätter upp Docker, Docker Swarm, Traefik och Dokploys egen databas, och avslutas med Congratulations, Dokploy is installed! och en adress med port 3000. Öppna inte den adressen än. Den visar en sida där den som kommer först skapar administratörskontot, och därmed styr servern. Gör steg 2 direkt.

2. Stäng port 3000

Docker öppnar containerportar förbi ufw, så stäng port 3000 i Dockers egen kedja, med en tjänst som lägger till regeln igen efter varje omstart. Skapa /etc/systemd/system/dokploy-ports.service:

[Unit]
Description=Keep the Dokploy dashboard port off the internet
After=docker.service
Requires=docker.service

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/sh -c "for t in iptables ip6tables; do $t -C DOCKER-USER -i eth0 -p tcp -m conntrack --ctorigdstport 3000 -j DROP 2>/dev/null || $t -I DOCKER-USER -i eth0 -p tcp -m conntrack --ctorigdstport 3000 -j DROP; done"

[Install]
WantedBy=multi-user.target

Starta den sedan:

systemctl daemon-reload
systemctl enable --now dokploy-ports.service

Nu är port 3000 stängd mot internet över IPv4 och IPv6, men fortfarande öppen på själva servern.

3. Skapa administratörskontot

Nå installationssidan via SSH i stället. Öppna en tunnel från din egen dator:

ssh -L 3000:127.0.0.1:3000 root@203.0.113.10

Låt den vara öppen och gå till http://localhost:3000. Ange ett namn, din e-postadress och ett lösenord under Setup the server och välj Register. När kontot finns släpper sidan inte längre in någon annan som vill registrera sig.

Dokploy visar sedan några första steg. Med Skip all hoppar du över dem.

4. Ge panelen ett eget namn

Öppna Settings och Web Server. Ange dokploy.example.com som Domain och din adress som Let's Encrypt Email under Server Domain, slå på HTTPS och välj Save. Inom en minut svarar panelen på https://dokploy.example.com med ett certifikat från Let's Encrypt. Logga in där från och med nu, och stäng tunneln.

5. Driftsätt en app

Peka först app.example.com mot servern, med en A- och en AAAA-post. Öppna sedan Projects, skapa ett projekt och välj Create Service och Application i det. Ge appen ett namn och välj Create. På appens flik General:

  • Välj Git under Provider, ange Repository URL, Branch och Build Path och välj Save. För ett första test fungerar Dokploys egna exempel: https://github.com/Dokploy/examples.git, grenen main, med /go-fiber som byggsökväg.
  • Under Build Type är Nixpacks valt från början, som känner igen språket själv. Ett repo med en Dockerfile kan använda Dockerfile i stället.
  • Välj Add Domain på fliken Domains. Ange app.example.com som värdnamn och porten appen lyssnar på, 3000 för exemplet, slå på HTTPS och välj Let's Encrypt som certifikat.
  • Välj Deploy. Fliken Deployments visar byggloggen, och appen svarar på https://app.example.com när den är klar. Besökare på vanlig HTTP omdirigeras till HTTPS.

De andra alternativen under Provider, till exempel GitHub och GitLab, ansluter ett konto för privata repon och driftsättning vid varje push. Med Autodeploy slår du på det för appen.

Appar bakom Dokploys proxy ser besökarens adress i headerna X-Forwarded-For och X-Real-Ip. Över IPv6 ser de i stället adressen till Dockers eget nätverk, 172.18.0.1, eftersom Dokploys nätverk saknar IPv6. Webbplatserna svarar ändå över IPv6.

6. Lägg till en databas

Välj Create Service och Database i projektet, och välj PostgreSQL eller en annan databas. Dokploy startar den med namnet, användaren och lösenordet du anger. Den går inte att nå från internet, och dina appar når den via dess App Name på Dokploys nätverk.

7. Säkerhetskopiera

Dokploy säkerhetskopierar databaser och volymer bara till S3-kompatibel lagring, inte till själva servern. Lägg till en bucket under Settings och S3 Destinations, och schemalägg sedan säkerhetskopior från databasens sida, och för filer som dina appar lagrar under Volume Backups på appen. Vi har inte testat en säkerhetskopia, eftersom det kräver en S3-bucket.

Dina appar byggs om från Git, så det du behöver spara är databasernas säkerhetskopior och filer som dina appar lagrar.

8. Uppdateringar

Dokploy uppdaterar inte sig själv. Med Check for updates under Settings och Web Server letar du efter en ny version. Debians egna paket täcks av de automatiska säkerhetsuppdateringarna från säkerhetsguiden.

Vi hittade ingen telemetri i Dokploy. Den frågar Docker Hub efter nya versioner när du letar efter uppdateringar, och kontaktar sin licensserver bara när du anger en betald licensnyckel.

Felsökning

Någon annan registrerade sig först. Installationssidan gick att nå innan steg 2 var gjort. Installera om servern och gör steg 2 innan du öppnar sidan.

En app saknar certifikat. Dess A- och AAAA-poster pekar inte på servern än. Med Validate DNS på fliken Domains kontrollerar du dem. Traefik begär certifikatet så snart de gör det.

Ett bygge går långsamt eller avbryts. Byggen tar minne och processorkraft på själva servern. Dokploy rekommenderar 4 GB eller mer för byggen, och vår server med 8 GB byggde exemplet på ungefär 2 minuter.

Kör det på din egen server

VC-S Micro

90 kr/mån

vCPU
2
Minne
8 GB
Lagring
250 GB
Trafik
10 TB
Standard
HDD · RAID 10
  • Full root-åtkomst
  • Nativt /64 IPv6
  • RAID-skyddad lagring
  • Malmö, Sverige
  • Månadsvis, ingen bindningstid
  • 7 dagars öppet köp
Alla guider