Articole
    Home » CI self-hosted: Instalați și rulați Woodpecker CI pe VPS-ul dvs
CI self-hosted: Instalați și rulați Woodpecker CI pe VPS-ul dvs

CI self-hosted: Instalați și rulați Woodpecker CI pe VPS-ul dvs

Acest articol te va ghida pas cu pas prin instalarea și rularea Woodpecker CI pe propriul tău VPS! Dacă vrei să-ți iei build-urile și pipeline-urile de CI de pe mâna serviciilor cloud scumpe, să ai control total și să nu depinzi de capriciile unor platforme închise, citești exact ce trebuie. Vei afla cum funcționează Woodpecker, de ce ar trebui să-l folosești (sau nu!), cum îl instalezi rapid pe un VPS, plus tips & tricks, exemple de utilizare și un pic de umor tehnic. Let’s go!

Cuprins

Despre Woodpecker CI: De ce să-ți faci CI self-hosted?

Dacă ai ajuns aici, probabil ai încercat deja Jenkins, GitHub Actions, GitLab CI, Travis sau CircleCI. Toate-s faine, dar nu-s chiar ale tale. Woodpecker CI e un sistem de CI/CD open-source, inspirat din Drone CI, super-rapid, minimalist, cu suport nativ pentru Docker, și care se instalează pe orice VPS sau server dedicat. Tu controlezi tot: pipeline-urile, resursele, logs, datele. Și fără facturi ascunse sau limitări bizare la build minutes.

De ce contează? Pentru că:

  • Nu vrei să-ți lași codul și cheile API pe mâna unui SaaS obscur.
  • Ai nevoie de integrare CI/CD pentru proiecte private sau enterprise.
  • Vrei să optimizezi costurile (un VPS decent costă cât două pizza pe lună).
  • Îți place să controlezi mediul tău de build și să debugezi orice la nivel de shell.
  • Poți să scalezi oricât vrei, când vrei, pe ce vrei (bare metal, cloud, Raspberry Pi etc).

Situație reală: De ce să fugi de CI cloud?

Imaginează-ți: vineri seara, deadline la client, build-ul pe GitHub Actions moare cu „out of minutes”. Sau, și mai rău, pipeline-ul se blochează pentru că au schimbat ceva la runner-ii shared. Support? Vezi să nu – „please upgrade to Enterprise plan”. Ai nevoie să rulezi build-uri Docker cu privileged mode? Cloud-ul nu te lasă. Vrei să-ți pui un secret sau să execuți ceva custom? „Nu se poate, security reasons”.

Sună cunoscut? Dacă ai pățit măcar o dată, știi cât de frustrant e să nu ai control. Aici intră în scenă Woodpecker CI: rulezi totul local pe VPS-ul tău, configurezi ce și cum vrei, și nimeni nu te limitează.

Cum funcționează Woodpecker CI? Algoritmi, structură, workflow

Woodpecker CI e construit pe o arhitectură simplă dar robustă:

  • Serverul Woodpecker – primește webhook-uri de la repo-urile tale (GitHub, Gitea, GitLab, Bitbucket etc.), gestionează pipeline-urile și ține evidența joburilor.
  • Agentul (Runner-ul) Woodpecker – execută efectiv joburile, de obicei în containere Docker. Poți adăuga câți agenți vrei, oriunde ai nevoie de putere de calcul.
  • Pipeline-urile – sunt definite în fișierul .woodpecker.yml din repo, la fel ca la GitHub Actions sau GitLab CI, dar cu sintaxă simplă.
  • Secret management, plugin-uri oficiale și custom, logare detaliată și integrare ușoară cu notificări (Slack, Telegram, Discord, email etc.).

Workflow-ul tipic:

  1. Faci push pe branch-ul tău preferat.
  2. Repo trimite un webhook către serverul Woodpecker.
  3. Serverul pornește pipeline-ul definit în .woodpecker.yml.
  4. Agenții iau joburile la execuție (în Docker sau direct pe host, dacă vrei aventură).
  5. Rezultatele apar în interfața web sau le primești pe Slack/Telegram.

Cazuri de utilizare și beneficii: Cine are nevoie de CI self-hosted?

  • Freelanceri/geeks care vor să-și automatizeze build/test/deploy pentru proiecte personale.
  • Echipe mici/medii care nu vor să plătească planuri overpriced la SaaS pentru câteva pipeline-uri custom.
  • Startup-uri care scalează rapid și nu vor să fie blocate de limitele impuse de cloud.
  • Devs enterprise care au nevoie de CI/CD on-premises pentru compliance/security.
  • Oricine vrea să experimenteze cu scripting, automatizări și hack-uri CI/CD fără restricții.

Beneficii:

  • Costuri previzibile (plătești doar VPS-ul sau serverul dedicat – restul e open-source).
  • Control total asupra mediului de execuție și a resurselor.
  • Extensibilitate: adaugi pluginuri, runners, integrare cu orice instrument vrei.
  • Confidențialitate: codul și datele tale nu părăsesc infrastructura proprie.

Instalare rapidă Woodpecker CI pe VPS – Ghid pas cu pas

Ce îți trebuie?

  • Un VPS (minim 1 CPU, 1GB RAM, Ubuntu 22.04+ sau Debian 11+ recomandat)
  • Acces root sau sudo
  • Un cont pe GitHub, Gitea, GitLab, Bitbucket sau orice sursă de repo suportată
  • Docker instalat pe server
  • Un domeniu sau subdomeniu pentru interfața web (opțional, dar util)

1. Instalare Docker (dacă nu ai deja)


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

2. Pregătește-ți variabilele de mediu

Ai nevoie de un secret random (pentru autentificare între server și runner). Generează-l:


openssl rand -hex 32

Notează-l, îl vei folosi la pasul următor.

3. Creează un fișier docker-compose.yml

Exemplu pentru integrare cu GitHub (poți adapta pentru Gitea sau altceva):


version: "3"
services:
woodpecker-server:
image: woodpeckerci/woodpecker-server:latest
restart: always
ports:
- 8000:8000
- 9000:9000 # RPC
environment:
- WOODPECKER_OPEN=true
- WOODPECKER_HOST=https://ci.taudomeniu.ro
- WOODPECKER_GITHUB=true
- WOODPECKER_GITHUB_CLIENT=client_id_de_pe_github
- WOODPECKER_GITHUB_SECRET=secret_de_pe_github
- WOODPECKER_AGENT_SECRET=secretul_tau_random
volumes:
- woodpecker-data:/var/lib/woodpecker
woodpecker-agent:
image: woodpeckerci/woodpecker-agent:latest
restart: always
depends_on:
- woodpecker-server
environment:
- WOODPECKER_SERVER=woodpecker-server:9000
- WOODPECKER_AGENT_SECRET=secretul_tau_random
- WOODPECKER_BACKEND=docker
volumes:
- /var/run/docker.sock:/var/run/docker.sock
volumes:
woodpecker-data:

Important: Înlocuiește valorile WOODPECKER_GITHUB_CLIENT și WOODPECKER_GITHUB_SECRET cu cele obținute din setarea unei OAuth App pe GitHub (cu redirect URI https://ci.taudomeniu.ro/login).

4. Pornește serviciile


docker-compose up -d

5. Accesează interfața web

Deschide browserul la https://ci.taudomeniu.ro:8000 (sau IP-ul serverului dacă nu ai domeniu). Loghează-te cu contul de GitHub.

6. Configurează un pipeline de test

Creează fișierul .woodpecker.yml în repo:


pipeline:
build:
image: node:18
commands:
- npm install
- npm test

Fă push și urmărește build-ul în interfața Woodpecker!

Mini Glosar: Termeni CI explicați pe scurt, fără BS

  • CI (Continuous Integration) – sistem care automatizează build/test/deploy când faci push la cod.
  • Pipeline – lista de pași executați la fiecare commit (build, test, deploy, etc).
  • Runner/Agent – proces care execută efectiv joburile pipeline-ului.
  • Secret – parolă/token/cheie păstrată secret, folosită în pipeline fără să apară în logs.
  • Plugin – script sau utilitar care extinde funcționalitatea CI-ului (ex: upload, notificări, etc).
  • Webhook – notificare automată trimisă de un serviciu (ex: GitHub) către altul (CI server) când se întâmplă ceva în repo (push, PR, etc).

Exemple, cazuri și comparație (Comic Table)

Woodpecker CI vs. Alți Giganți (Jenkins, GitHub Actions, GitLab CI, Drone):

  • 👴 Jenkins: „Am văzut tot, am pluginuri pentru orice, dar arăt ca un Windows 98. Pregătește-te să citești documentație veche și să scrii scripturi groase.”
  • 🤖 GitHub Actions: „Sunt cool, rapid, dar dacă vrei minute extra sau runners custom, scoate cardul. Și nu mă poți self-hosta.”
  • 🦊 GitLab CI: „Mă găsești și pe cloud, și self-hosted, dar am nevoie de resurse serioase și uneori mă simt cam greoi pentru proiecte mici.”
  • 🐦 Woodpecker CI: „Sunt minimalist, rapid, Docker-native, super-simplu de instalat și nu-ți iau datele. Am și interfață web drăguță și poți să mă scalezi cât vrei.”
  • 🛸 Drone CI: „Fratele meu mai mare, dar nu mai e 100% open-source. Woodpecker a preluat ștafeta cu vibe-ul old school.”

Pe scurt: Dacă vrei ceva super personalizabil, dar nu vrei Jenkins, și nu vrei să plătești la minut ca la taxi, Woodpecker e pentru tine.

Erori frecvente, mituri, alternative și arbore decizional

  • Mit: „E greu să-ți faci CI self-hosted.”
    Adevăr: Cu Docker și Woodpecker, ai totul gata în 10-15 minute.
  • Mit: „Doar enterprise-ul are nevoie de CI self-hosted.”
    Adevăr: Oricine vrea control, costuri mici și privacy poate beneficia.
  • Mit: „Nu e sigur să rulezi build-uri pe VPS.”
    Adevăr: Dacă folosești containere și limitezi accesul, e chiar mai sigur decât să dai codul tău la un SaaS necunoscut.
  • Eroare comună: Să nu configurezi corect secretul între server și agent – rezultă în „agent offline”.
  • Eroare comună: Să uiți să expui porturile corecte sau să configurezi DNS-ul.

Arbore decizional: E potrivit Woodpecker CI pentru tine?

Ești developer sau admin cu acces la un VPS? 
      ⬇️
Vrei control, costuri mici și privacy?
      ⬇️
Ai nevoie de pipeline-uri simple, rapide, Docker-native?
      ⬇️
👉 Alege Woodpecker CI!
      ⬆️
Vrei ecosisteme complexe, pluginuri infinite, UI enterprise?
      ⬇️
👉 Încearcă Jenkins sau GitLab CI.
      ⬆️
Nu ai timp de self-hosting, vrei click & run?
      ⬇️
👉 Folosește GitHub Actions sau SaaS.

Alte alternative: Drone CI, Semantic Release, Concourse CI. Dar Woodpecker e cel mai fresh și friendly pentru self-hosting rapid.

Statistici, fapte interesante și utilizări neconvenționale

  • Woodpecker CI e folosit activ de peste 2000+ proiecte open-source (conform GitHub).
  • Poți rula pipeline-uri pe orice device: server, VPS, Raspberry Pi, laptop vechi, orice are Docker.
  • Poți folosi Woodpecker ca orchestrator pentru backup-uri automate sau deploy la IoT!
  • Consumă resurse minime: serverul Woodpecker folosește sub 100MB RAM idle, agentul și mai puțin.
  • Poți conecta mai mulți agenți din zone geografice diferite (ex: build în Europa, test în US, deploy în Asia).

Scripturi și oportunități de automatizare cu Woodpecker CI

Exemplu de pipeline pentru build, test și deploy Docker:


pipeline:
build:
image: docker:latest
commands:
- docker build -t app:${CI_COMMIT_SHORT_SHA} .
- docker tag app:${CI_COMMIT_SHORT_SHA} registry.taudomeniu.ro/app:latest
push:
image: plugins/docker
settings:
repo: registry.taudomeniu.ro/app
tags: latest
username: ${REGISTRY_USER}
password: ${REGISTRY_PASS}

Truc: Poți folosi pluginuri pentru notificări Telegram, Slack sau chiar SMS la fiecare build reușit/eșuat!

Scurtă poveste (ficționalizată) de admin

Era o dată un admin care s-a săturat să aștepte după build-urile lente din cloud. Într-o seară de vineri, și-a luat un VPS nou, a instalat Woodpecker CI, și în mai puțin de o oră build-urile mergeau de 3x mai rapid. În loc să-și petreacă weekendul debugând runners în cloud, și-a băut liniștit cafeaua, știind că totul rulează pe serverul lui, sub controlul lui.

Concluzie și recomandări

  • Dacă vrei control, viteză, costuri mici și flexibilitate la CI/CD, Woodpecker CI pe VPS e alegerea geek-ului modern.
  • Instalarea e super-rapidă cu Docker și docker-compose, pipeline-urile sunt ușor de scris, iar integrarea cu ecosistemul Docker e nativă.
  • Poți începe cu un VPS de bază și să scalezi mereu spre un server dedicat dacă ai nevoie de mai multă putere.
  • Woodpecker CI nu e pentru toată lumea: dacă preferi click & run, rămâi la GitHub Actions. Dar dacă vrei să-ți construiești propriul ecosistem de DevOps, e unul din cele mai cool tool-uri de pe piață.
  • Automatizează, experimentează, customizează – Woodpecker CI e terenul tău de joacă pentru CI self-hosted!

Ready to self-host? Ia-ți un VPS și încearcă Woodpecker CI azi. Happy hacking!

Linkuri utile:

Leave a reply

Your email address will not be published. Required fields are marked