Gitea è un fork di Gogs, il servizio Git self-hosted facile da usare. È simile a GitHub, Bitbucket e Gitlab. Gitea è una soluzione di hosting di codice leggera scritta in Go, può essere eseguita con requisiti hardware minimi. È un'applicazione multipiattaforma, può essere eseguita ovunque Go può essere compilato come Windows, Linux, MacOS, ARM ecc.
In questo tutorial, ti mostrerò passo dopo passo come installare e configurare il servizio Git leggero utilizzando Gitea. Distribuiremo il server Gitea utilizzando Docker e utilizzeremo il database PostgreSQL e il proxy inverso Traefik. Per questa guida, utilizzeremo l'ultimo server Ubuntu 18.04.
Prerequisiti
- Ubuntu 18.04
- Privilegi di root
Cosa faremo?
- Installa Docker-CE
- Installa Docker Compose
- Distribuisci Gitea come container utilizzando Docker
- Dopo l'installazione di Gitea
- Crea il primo repository
- Testing First Commit
Passaggio 1:installazione di Docker-CE
Il primo passo che faremo per questa guida è installare l'edizione della community Docker sul server Ubuntu 18.04. Installeremo il pacchetto Docker CE dal repository Docker ufficiale.
Aggiungi il repository Docker e Docker eseguendo i comandi seguenti.
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
Il comando 'add-apt-repository' aggiornerà automaticamente il repository.
Ora installa il pacchetto Docker CE.
sudo apt policy docker-ce
sudo apt install docker-ce=18.06.1~ce~3-0~ubuntu
Al termine dell'installazione, avvia il servizio Docker e abilitalo all'avvio ogni volta all'avvio del sistema.
sudo systemctl start docker
sudo systemctl enable docker
Docker CE è attivo e funzionante sul server Ubuntu 18.04. Verifica l'installazione controllando la versione della finestra mobile.
docker version
oppure esegui la finestra mobile 'hello-world'.
docker run hello-world
Passaggio 2:installazione di Docker Compose
Docker-Compose è uno strumento a riga di comando per la definizione e la gestione di applicazioni docker multi-container. Ti consente di creare un container come servizio, ottimo per il tuo ambiente di sviluppo, test e staging.
Installa Docker Compose scaricando il file binario e rendilo eseguibile.
sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Ora controlla il comando docker-compose.
docker-compose version
Docker Compose è ora installato.
Passaggio 3 - Distribuisci Gitea come Docker Container
In questo passaggio, creeremo un nuovo script di composizione mobile che contiene tutta la configurazione dei servizi, inclusi il database PostgreSQL e il proxy inverso di Traefik. Imposteremo tutti i file di distribuzione nella directory denominata 'deployment'.
Crea rete Docker personalizzata
Prima di creare la configurazione di distribuzione, creiamo una nuova rete bridge personalizzata. Verrà utilizzato per il proxy inverso traefik del servizio esterno.
Controlla la rete della finestra mobile dell'elenco.
docker network ls
Ora crea una nuova rete bridge personalizzata denominata 'hakasenet'.
docker network create hakasenet
Controllalo di nuovo.
docker network ls
Ora otterrai la rete 'hakasenet' nell'elenco.
Imposta file e directory di distribuzione
Crea una nuova directory denominata 'deployment' e lo script 'docker-compose.yml' su di essa.
mkdir deployment; cd deployment
touch docker-compose.yml
Ora crea la nuova directory 'gitea' e il volume di dati 'postgres'.
mkdir -p gitea/ postgres/
Crea un nuovo file "acme.json" e modifica l'autorizzazione del file. verrà utilizzato per memorizzare i dati Letsencrypt.
touch acme.json
chmod 600 acme.json
Ora crea il file di configurazione globale di traefik 'traefik.toml'.
touch traefik.toml
E di seguito sono riportati i file e le directory che abbiamo per l'installazione di Gitea utilizzando Docker.
tree
Impostazione del servizio PostgreSQL
Il servizio di database PostgreSQL è il primo servizio che vogliamo configurare. Il servizio database verrà eseguito solo sulla rete Docker interna.
E useremo l'immagine Postgres 9.6, usando "gitea" come nome del database, utente e password e imposteremo il volume dei dati di Postgres.
Modifica il file 'docker-compose.yml' usando vim.
vim docker-compose.yml
Incolla le configurazioni di seguito.
version: "3" networks: hakasenet: external: true internal: external: false services: db: image: postgres:9.6 restart: always environment: - POSTGRES_USER=gitea - POSTGRES_PASSWORD=gitea - POSTGRES_DB=gitea labels: - "traefik.enable=false" networks: - internal volumes: - ./postgres:/var/lib/postgresql/data
Salva ed esci.
Impostazione proxy inverso Traefik
Ora configureremo il proxy inverso di Traefik per la nostra installazione di Gitea.
Il servizio traefik verrà eseguito su porte predefinite HTTP e HTTPS, sulla rete bridge personalizzata denominata 'hakasenet', e lo configureremo per utilizzare i certificati Letsencrypt che saranno definiti nel file 'traefik.toml'.
Modifica lo script di composizione.
vim docker-compose.yml
Incolla le configurazioni nella configurazione del servizio db.
traefik: image: traefik:latest command: --docker ports: - 80:80 - 443:443 labels: - "traefik.enable=true" - "traefik.backend=dashboard" - "traefik.frontend.rule=Host:traefik.hakase-labs.io" - "traefik.port=8080" networks: - hakasenet volumes: - /var/run/docker.sock:/var/run/docker.sock - ./traefik.toml:/traefik.toml - ./acme.json:/acme.json container_name: traefik restart: always
Salva ed esci.
Ora modifica il file di configurazione 'traefik.toml'.
vim traefik.toml
E incolla la seguente configurazione.
#Traefik Global Configuration debug = false checkNewVersion = true logLevel = "ERROR" #Define the EntryPoint for HTTP and HTTPS defaultEntryPoints = ["https","http"] #Define the HTTP port 80 and #HTTPS port 443 EntryPoint #Enable automatically redirect HTTP to HTTPS [entryPoints] [entryPoints.http] address = ":80" [entryPoints.http.redirect] entryPoint = "https" [entryPoints.https] address = ":443" [entryPoints.https.tls] #Enable Traefik Dashboard on port 8080 #with basic authentication method #hakase and password [entryPoints.dash] address=":8080" [entryPoints.dash.auth] [entryPoints.dash.auth.basic] users = [ "hakase:$apr1$hEgpZUN2$OYG3KwpzI3T1FqIg9LIbi.", ] [api] entrypoint="dash" dashboard = true #Enable retry sending a request if the network error [retry] #Define Docker Backend Configuration [docker] endpoint = "unix:///var/run/docker.sock" domain = "hakase-labs.io" watch = true exposedbydefault = false #Letsencrypt Registration #Define the Letsencrypt ACME HTTP challenge [acme] email = "[email protected]" storage = "acme.json" entryPoint = "https" OnHostRule = true [acme.httpChallenge] entryPoint = "http"
Salva ed esci.
Nota:
- Cambia l'e-mail acme letencrypt con il tuo indirizzo e-mail valido.
Configura il servizio Gitea
Modifica il file di configurazione 'docker-compose.yml'.
vim docker-compose.yml
Incolla la configurazione del servizio gitea in fondo alla riga.
server: image: gitea/gitea:latest environment: - USER_UID=1000 - USER_GID=1000 restart: always networks: - internal volumes: - ./gitea:/data ports: - "3000" - "22" labels: - "traefik.enabled=true" - "traefik.backend=gitea" - "traefik.frontend.rule=Host:git.hakase-labs.io" - "traefik.docker.network=hakasenet" - "traefik.port=3000" networks: - internal - hakasenet depends_on: - db - traefik
Salva ed esci.
Il servizio Gitea verrà eseguito sulla porta TCP '3000', utilizzando queste due reti docker 'internal' e 'hakasenet', e verrà eseguito sotto il proxy inverso traefik sul dominio 'git.hakase-labs.io'.
Docker compone la configurazione per l'implementazione di Gitea completata.
Distribuisci tutti i servizi
Ora distribuisci lo stack usando il comando 'docker-compose' di seguito.
docker-compose up -d
Il comando scaricherà tutte le immagini della finestra mobile necessarie ed eseguirà i servizi definiti nello script di composizione della finestra mobile.
E quando è completo, controlla i servizi disponibili sulla finestra mobile usando l'opzione ps come di seguito.
docker-compose ps
Ora otterrai il risultato come di seguito.
Il database PostgreSQL, Gitea e i container proxy inverso traefik sono ora attivi e funzionanti. Il servizio di database è in esecuzione sulla porta predefinita "5432", il server gitea è in esecuzione sulla porta "3000" e il proxy traefik è in esecuzione su porte HTTP e HTTPS, accessibili dalla rete esterna/da Internet.
Se vuoi controllare tutti i log dal controllo Docker, esegui il comando seguente.
docker-compose logs
Fase 4 - Post-installazione di Gitea
Apri il tuo browser web e digita l'URL di installazione di Gitea. Il mio è:
https://git.hakase-labs.io/
Ora otterrai la pagina Gitea predefinita.
Aggiungi il percorso di installazione all'URL.
https://git.hakase-labs.io/install
Ora otterrai la pagina di installazione di Gitea.
Configurazione database
Digita i dettagli del database PostgreSQL e usa 'db ' come host.
Configurazione generale di Gitea
Modifica il "Titolo del sito" con il tuo titolo, il "Dominio del server SSH" (senza https) e "Gitea Base URL" con l'URL del tuo server gitea.
Impostazioni account amministratore
Nelle impostazioni dell'amministratore, digita il nome utente, la password e l'indirizzo e-mail dell'amministratore.
Ora fai clic sul pulsante "Installa Gitea".
E verrai reindirizzato alla dashboard utente predefinita di Gitea.
Fase 5:crea il primo repository in Gitea
Nella home page dell'utente, fai clic su '+' pulsante.
Ora digita i dettagli del repository che desideri creare.
e fai clic sul pulsante "Crea repository".
Il repository è stato creato.
Fase 6 - Testare il primo commit
Torna alla shell del terminale e imposta l'utente git e l'e-mail predefiniti.
Esegui i comandi git di seguito.
git config --global user.name "hakase"
git config --global user.email "[email protected]"
Ora clona il repository.
git clone https://git.hakase-labs.io/hakase/myrepo.git
Vai alla directory del repository 'myyrepo' e modifica il file README.md.
cd myrepo/
vim README.md
apportare modifiche al file README, quindi salvare ed uscire.
Ora salva il repository.
git add .
git commit -m 'Edit the README.md file by hakase-labs'
E invialo al server.
git push origin master
Digita il tuo nome utente e password.
E il seguente dovrebbe essere il risultato.
Controlla la pagina del repository e assicurati di ottenere le modifiche come di seguito.
L'installazione di Gitea con Docker su Ubuntu 18.04 è stata completata con successo.