Sari la conținut
servervps.roPanou client

Ghid · 30 de minute · Ubuntu 18.04–24.04 · Debian 10–12 · Fedora 40 · CentOS 8–9

Platformă proprie de deploy, cu Dokploy

Dokploy îți dă interfața și automatismele cu care ești obișnuit de la un serviciu de tip platformă: legi un repo, se construiește, se pornește, primește certificat. Diferența e că rulează pe serverul tău, deci factura e fixă și datele rămân la tine, dar mentenanța mașinii rămâne tot a ta.

Ai nevoie de

  • Un VPS cu minimum 2 GB de memorie și 30 GB de disc, conform cerințelor Dokploy
  • Porturile 80, 443 și 3000 libere; instalarea eșuează dacă vreunul e ocupat
  • Un domeniu, cu posibilitatea de a adăuga subdomenii
  1. 01

    Verifică porturile înainte de instalare

    Instalarea se oprește dacă 80, 443 sau 3000 sunt deja folosite. Dacă ai un nginx sau un Apache pornit de la o instalare anterioară, oprește-l acum.

    ss -tlnp | grep -E ':(80|443|3000)\b' || echo "porturile sunt libere"
    
    # dacă e ceva pe 80 dintr-o instalare veche
    systemctl disable --now nginx apache2 2>/dev/null || true
  2. 02

    Instalează

    Scriptul instalează Docker dacă lipsește, inițializează Docker Swarm și pornește Traefik pentru rutare și certificate.

    Swarm-ul contează pentru înțelegerea de mai târziu: aplicațiile rulează ca servicii Swarm, nu ca simple containere, deci comenzile de depanare sunt docker service, nu doar docker ps.

    curl -sSL https://dokploy.com/install.sh | sh

    AtențieCitește scriptul înainte să-l rulezi, dacă e prima dată. Un pipe de la curl direct în shell execută cod descărcat de pe internet cu drepturi de root.

  3. 03

    Creează primul cont imediat

    Interfața pornește pe portul 3000 și primul cont creat devine administrator. Până îl creezi tu, îl poate crea oricine găsește serverul.

    Fă asta în primele minute, nu mâine.

    # deschide http://IP_SERVER:3000 și creează contul de administrator
    # apoi verifică că serviciile Dokploy sunt pornite
    docker service ls

    AtențieUn Dokploy proaspăt instalat, cu portul 3000 deschis și fără cont creat, e o platformă de deploy oferită gratuit primului venit. Creează contul înainte de orice altceva.

  4. 04

    Pune panoul pe domeniu și închide portul

    Din setările serverului îi dai panoului un domeniu propriu. Traefik obține certificatul, iar accesul se face prin HTTPS.

    Abia după ce confirmi că panoul răspunde pe domeniu, închizi portul 3000 în firewall. În ordinea asta, altfel rămâi pe dinafară.

    # în Dokploy: Settings → Server → Domain, pune panel.domeniul-tau.ro
    # confirmă că https://panel.domeniul-tau.ro răspunde, ABIA APOI:
    ufw deny 3000/tcp
    ufw allow 80,443/tcp
  5. 05

    Leagă un repo și fă primul deploy

    Dokploy construiește din Dockerfile, din Nixpacks sau dintr-un docker-compose din repo. Dacă ai deja Dockerfile, alege-l explicit: e cea mai previzibilă cale.

    Fiecare aplicație primește un subdomeniu. Traefik rutează după el și cere certificatul automat.

    Applications → Create
      Source        : GitHub / GitLab / repo public prin URL
      Build type    : Dockerfile (dacă ai unul) sau Nixpacks
      Domain        : app.domeniul-tau.ro
      Env variables : cele de producție
    
    Deploy. Logurile de build apar în interfață.
  6. 06

    Creează baza de date din platformă

    Dokploy administrează Postgres, MySQL, MariaDB, MongoDB și Redis ca servicii separate, cu backup configurabil. E preferabil să pui baza de date aici, nu în docker-compose-ul aplicației: o ai separat la actualizări și la backup.

    Adresa de conectare pe care ți-o dă platforma se pune ca variabilă de mediu în aplicație.

    Databases → Create → PostgreSQL
      Nume, utilizator, parolă generată
      Backups → destinație S3, program cron
    
    În aplicație:
      DATABASE_URL = adresa internă dată de Dokploy
  7. 07

    Configurează backup-ul înainte să ai date

    Dokploy trimite backup-urile de bază de date către o destinație compatibilă S3. Configureaz-o acum, cât timp baza e goală: verifici că funcționează fără să ai ceva de pierdut.

    Backup-ul de bază de date nu acoperă volumele aplicațiilor. Pentru ele, tot restic pe mașină, ca în ghidul de backup.

    # după prima rulare programată, verifică că obiectul chiar a ajuns
    # și fă o restaurare de probă într-o bază de test, nu în producție

    AtențieUn backup configurat și netestat e o presupunere. Restaurează o dată, într-o bază separată, înainte să te bazezi pe el.

  8. 08

    Învață comenzile de depanare care chiar se folosesc

    Fiindcă aplicațiile rulează ca servicii Swarm, docker ps îți arată containerele, dar starea reală și motivul pentru care un serviciu nu pornește sunt în docker service ps.

    Cea mai frecventă cauză a unui deploy care nu urcă e memoria: build-ul și aplicația veche rulează simultan.

    docker service ls
    docker service ps NUME_SERVICIU --no-trunc   # motivul eșecului, netrunchiat
    docker service logs NUME_SERVICIU --tail 100
    
    free -h          # build-urile consumă memorie peste ce rulează deja
    df -h            # imaginile vechi umplu discul
    docker system df

Întrebări frecvente

+Ce VPS îmi trebuie pentru Dokploy?

Minimul declarat e 2 GB de memorie și 30 GB de disc, dar acela acoperă platforma în sine. Peste el vin aplicațiile tale și build-urile, care sunt de obicei partea grea. Pentru o platformă cu câteva aplicații și o bază de date, 8 GB e un punct de pornire rezonabil.

+Ce înlocuiește dintr-un serviciu ca Vercel sau Heroku?

Deploy-ul din Git, certificatele automate, variabilele de mediu, bazele de date administrate și rutarea pe subdomenii. Ce nu înlocuiește: actualizările sistemului, monitorizarea mașinii și scalarea pe mai multe servere fără muncă în plus.

+Build-ul pică fără mesaj clar. De unde încep?

Aproape întotdeauna memorie sau disc. Un build Node pe un server de 2 GB, cu aplicația veche încă pornită, se termină prin OOM. Verifică free -h în timpul build-ului și docker system df pentru spațiul ocupat de imagini vechi.

+Pot muta aplicațiile pe alt server mai târziu?

Da, fiindcă tot ce definești sunt repo-uri, Dockerfile-uri și variabile de mediu. Instalezi Dokploy pe serverul nou, reconfigurezi aplicațiile și restaurezi bazele din backup. Nu ești legat de platformă, ceea ce e o parte din motivul pentru care merită.