Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

OneDev: installazione su un server Linux

OneDev: un'alternativa a BitBucket, GitHub e GitLab per il code hosting installabile su un server Linux in locale
OneDev: un'alternativa a BitBucket, GitHub e GitLab per il code hosting installabile su un server Linux in locale
Link copiato negli appunti

Gli sviluppatori si affidano non di rado a servizi di code sharing come Github. Essi offrono un ventaglio di funzionalità utili per lavorare in team e tenere d'occhio lo sviluppo di un progetto oltre, ovviamente, a consentirne la distribuzione in modo agile. Tali soluzioni però non sono sempre le migliori per tutti i settori, ecco perché  in questi anni sono nati diversi progetti di self-hosted Git server come OneDev.

OneDev è un software open source installabile su distribuzioni Linux e server connessi ad una rete locale. A livello di feature è paragonabile ai più blasonati BitBucket, GitHub e GitLab. Quindi i developer che provengono da tali piattaforme non troveranno difficoltà nell'adattarsi a OneDev che è stato progettato per aiutare i coder nella gestione del codice. Dispone infatti di una serie di feature chiave, come ad esempio le funzioni di ricerca ed analisi dei sorgenti, con cui individuare rapidamente le espressioni desiderate e correggere bug al volo. Tutto può essere svolto dalla comoda interfaccia Web accessibile da qualsiasi browser. OneDev offre inoltre la possibilità di eseguire la pubblicazione dei binary package e dei container Docker.

Dotazione hardware

OneDev può essere eseguito anche su hardware non recentissimi. Per questo progetto è sufficiente un qualsiasi PC di recupero o una board ARM come Raspberry Pi. Ovviamente consigliamo di connettere il tutto direttamente al router tramite cavo ethernet, cosi da beneficiare delle massime performance di rete.

Installazione di Docker su Linux

La nostra distribuzione di riferimento sarà Debian. OneDev viene eseguito all'interno di un container Docker, quindi è possibile sfruttarlo su qualsiasi piattaforma.

Iniziamo indicando tramite CLI al gestore di pacchetti APT di reperire tutti gli update disponibili nei repository ufficiali:

sudo apt update && sudo apt upgrade -y

Con l'opzione -y finale abbiamo indicato al sistema di rispondere in modo affermativo ad ogni domanda di APT, tuttavia è sempre meglio tenere d'occhio la shell perché spesso restituisce informazioni utili sul funzionamento di alcuni software dopo il loro aggiornamento. Terminato il processo di update passiamo all'installazione di Docker vera e propria. Partiamo andando a reperire il file eseguibile con curl:

curl -sSL https://get.docker.com | sh

e ultimato il download avviamo l'installer:

sudo sh get-docker.sh

Il processo non dovrebbe durare più di qualche minuto. Una volta terminato aggiungiamo il nostro utente al gruppo:

sudo usermod -aG docker nomedelnostroutente

Questo ci permette di interagire con Docker senza problemi di permessi. Inoltre non scordiamoci di indicare al sistema che vogliamo avviare Docker al boot e di tenerlo sempre attivo in backgroud:

sudo systemctl enable docker.service && sudo systemctl enable containerd.service

Quest'ultimo setting viene impostato tramite systemd, il gestore dei demoni di Debian. Non tutte le distribuzioni lo sfruttano, quindi nel caso si stia utilizzando un sistema di init diverso è meglio rivolgersi al manuale della distribuzione.

Configurazione del container Docker di OneDev

Arrivati a questo punto siamo pronti per generare il Docker compose file per OneDev. Andiamo quindi a creare una directory dedicata:

sudo mkdir /opt/stacks/onedev

e spostiamoci al suo interno:

cd /opt/stacks/onedev

Generiamo poi un file vuoto, tramite l'editor di testo nano, chiamato compose.yaml

sudo nano compose.yaml

e popolato con queste configurazioni:

version: '3.8'
services:
app:
image: '1dev/server:latest'
container_name: 'onedev-app'
restart: unless-stopped
environment:
- hibernate_dialect=io.onedev.server.persistence.PostgreSQLDialect
- hibernate_connection_driver_class=org.postgresql.Driver
- hibernate_connection_url=jdbc:postgresql://onedev-db:5432/onedevb
- hibernate_connection_username=onedevusr
- hibernate_connection_password=<LAVOSTRAPASSWORD>
volumes:
- ./data:/opt/onedev
- /var/run/docker.sock:/var/run/docker.sock
ports:
- '6610:6610'
depends_on:
db:
condition: service_healthy
db:
image: 'postgres:latest'
container_name: 'onedev-db'
restart: 'unless-stopped'
environment:
- PGUSER=onedevusr
- POSTGRES_USER=onedevusr
- POSTGRES_PASSWORD=<LAVOSTRAPASSWORD>
- POSTGRES_DB=onedevdb
volumes:
- ./postgresql:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U onedevusr -d onedevdb"]
interval: 5s
timeout: 5s
retries: 60

Ovviamente si devono modificare le voci "<LAVOSTRAPASSWORD>" con la password corretta. Per salvare le modifiche al file appena creato possiamo digitare CTRL+O e chiudiamo infine il tutto con CTRL+X.

Avviamo quindi l'istanza Docker di OneDev con il comando:

docker compose up -d

Accedere alla Web interface di OneDev

È arrivato il momento di accedere all'interfaccia Web di OneDev dal browser. Prima di tutto assicuriamoci di conoscere l'IP locale del server Linux. Nel caso servisse si può scoprilo cosi:

hostname -I

come output la shell risponde con un IP simile a questo:

192.168.1.12

Quindi per accedere a OneDev l'URL da digitare è:

192.168.1.12:6610

Il numero 6610 è la porta su cui è in ascolto OneDev, tale informazione è reperibile direttamente dal Docker compose file sotto la voce ports.

Setup iniziale di OneDev

Al primo avvio di OneDev viene lanciato anche un wizard iniziale. Procediamo immettendo le nostre credenziali. OneDev da la possibilità di inserire anche un dominio personalizzato, se però non ne abbiamo uno basta reinserire l'URL usato poco prima.

Dopo questo breve setup si può iniziare ad utilizzare OneDev per gestire il proprio progetto software caricando il codice al suo interno.

OneDev

Come accennato, il funzionamento di OneDev è simile a quello di altri servizi più famosi. Dalla WebGUI si può quindi procedere all'importazione di un progetto e, successivamente, realizzare ad esempio una pull request o gestire le build disponibili.

OneDev Build

Queste feature rendono OneDev una soluzione funzionale per qualsiasi sviluppatore che abbia la necessità di conservare il proprio codice all'interno di una rete LAN o, in ogni caso, svincolato dalle piattaforme Cloud.

Aggiornare il container docker di OneDev

Uno dei vantaggi di utilizzare un container per eseguire OneDev è che tale approccio rende il processo di upgrade davvero semplicissimo. Torniamo nella directory contenete il Docker compose file:

cd /opt/stacks/onedev

e ordiniamo a Docker di reperire il container più aggiornato:

docker compose pull

infine avviamo la release più recente:

docker compose up -d

Ti consigliamo anche