Gogs je bezplatná a open source služba Git napsaná v jazyce Go. Gogs je bezbolestná samoobslužná služba git, která vám umožňuje vytvářet a provozovat vlastní server Git na minimálním hardwarovém serveru. Webové uživatelské rozhraní Gogs je velmi podobné GitHubu a nabízí podporu pro databáze MySQL, PostgreSQL a SQLite.
V tomto tutoriálu vám krok za krokem ukážeme, jak nainstalovat a nakonfigurovat vlastní službu Git pomocí Gogs na Ubuntu 16.04. Tento tutoriál pokryje podrobnosti včetně toho, jak nainstalovat Go na systém Ubuntu, nainstalovat PostgreSQL a nainstalovat a nakonfigurovat webový server Nginx jako reverzní proxy pro aplikaci Go.
Předpoklady
- Ubuntu 16.04
- Oprávnění uživatele root
Co uděláme
- Aktualizovat a upgradovat systém
- Nainstalujte a nakonfigurujte PostgreSQL
- Nainstalujte Go a Git
- Nainstalujte Gogs
- Konfigurace Gogs
- Spouštění Gogs jako služby
- Nainstalujte a nakonfigurujte Nginx jako reverzní proxy
- Testování
Krok 1 – Aktualizace a upgrade systému
Než budete pokračovat, aktualizujte všechna úložiště Ubuntu a upgradujte všechny balíčky.
Spusťte níže uvedené příkazy apt.
aktualizace sudo apt
aktualizace sudo apt
Krok 2 – Instalace a konfigurace PostgreSQL
Gogs nabízí podporu pro databázové systémy MySQL, PostgreSQL, SQLite3, MSSQL a TiDB.
V této příručce budeme používat PostgreSQL jako databázi pro naše instalace Gogs.
Nainstalujte PostgreSQL pomocí příkazu apt níže.
sudo apt install -y postgresql postgresql-client libpq-dev
Po dokončení instalace spusťte službu PostgreSQL a povolte její spuštění při každém startu systému.
systemctl spustit postgresql
systemctl povolit postgresql
Databáze PostgreSQL byla nainstalována na systém Ubuntu.
Dále musíme vytvořit novou databázi a uživatele pro Gogs.
Přihlaste se jako uživatel 'postgres' a spusťte příkaz 'psql', abyste získali prostředí PostgreSQL.
su - postgres
psql
Vytvořte nového uživatele s názvem 'git' a udělte mu oprávnění pro 'CREATEDB'.
CREATE USER git CREATEDB;
\password git
Vytvořte databázi s názvem 'gogs_production' a nastavte uživatele 'git' jako vlastníka databáze.
CREATE DATABASE gogs_production OWNER git;
Byla vytvořena nová PostgreSQL databáze 'gogs_production' a uživatel 'git' pro instalaci Gogs.
Krok 3 – Instalace Go and Git
Nainstalujte Git z úložiště pomocí příkazu apt níže.
sudo apt install git
Nyní přidejte nového uživatele 'git' do systému.
sudo adduser --disabled-login --gecos 'Gogs' git
Přihlaste se jako uživatel 'git' a vytvořte nový 'místní' adresář.
su - git
mkdir -p /home/git/local
Přejděte do adresáře 'local' a stáhněte si 'Go' (nejnovější verzi) pomocí příkazu wget, jak je uvedeno níže.
cd ~/local
wget https://dl.google.com/go/go1.9.2.linux-amd64.tar.gz
Rozbalte komprimovaný soubor go a poté jej odeberte.
tar -xf go1.9.2.linux-amd64.tar.gz
rm -f go1.9.2.linux-amd64.tar.gz
Binární soubor 'Go' byl stažen do adresáře '~/local/go'. Nyní musíme nastavit prostředí – potřebujeme definovat adresáře 'GOROOT' a 'GOPATH, abychom mohli spustit příkaz 'go' v systému pod uživatelem 'git'.
Spusťte všechny následující příkazy.
cd ~/
echo 'export GOROOT=$HOME/local/go'>> $HOME/.bashrc
echo 'export GOPATH=$HOME/go'>> $HOME/.bashrc
echo 'export PATH=$PATH:$GOROOT/bin:$GOPATH/bin'>> $HOME/.bashrc
A znovu načtěte Bash spuštěním příkazu 'source ~/.bashrc', jak je ukázáno níže.
zdroj ~/.bashrc
Ujistěte se, že používáte Bash jako výchozí shell.
Nyní spusťte příkaz 'go' pro kontrolu verze.
přejít verzi
A ujistěte se, že získáte výsledek, jak je znázorněno na následujícím snímku obrazovky.
Go je nyní nainstalován v systému pod uživatelem 'git'.
Krok 4 – Instalace služby Gogs Go Git
Přihlaste se jako uživatel 'git' a stáhněte si 'Gogs' z GitHubu pomocí příkazu 'go'.
su - git
go get -u github.com/gogits/gogs
Příkaz stáhne veškerý zdrojový kód Gogs v adresáři 'GOPATH/src'.
Přejděte do adresáře '$GOPATH/src/github.com/gogits/gogs' a sestavte gogy pomocí příkazů níže.
cd $GOPATH/src/github.com/gogits/gogs
začněte stavět
A ujistěte se, že se neobjeví žádná chyba.
Nyní spusťte Gogs Go Git Service pomocí příkazu níže.
./gogs web
Příkaz spustí Gogs na výchozím portu 3000.
Otevřete webový prohlížeč a zadejte IP adresu svého serveru s portem 3000, moje je http://192.168.33.10:3000/
A měli byste získat výsledek, jak je uvedeno níže.
Gogs je nainstalován v systému Ubuntu. Nyní se vraťte do svého terminálu a stisknutím 'Ctrl + c' ukončete.
Krok 5 – Konfigurace služby Gogs Go Git
V tomto kroku vytvoříme vlastní konfiguraci pro Gogs.
Přejděte do instalačního adresáře Gogs a vytvořte nový adresář 'custom/conf'.
cd $GOPATH/src/github.com/gogits/gogs
mkdir -p custom/conf/
Zkopírujte výchozí konfiguraci do vlastního adresáře a upravte ji pomocí vim.
cp conf/app.ini custom/conf/app.ini
vim custom/conf/app.ini
Na stránce '[server] ', změňte server 'HOST_ADDR' na '127.0.0.1'.
[server]
PROTOKOL =http
DOMÉNA =localhost
ROOT_URL =%(PROTOCOL)s://%(DOMAIN)s:%(HTTP_PORT)s/
HTTP_ADDR =127.0.0.1
HTTP_PORT =3000
V '[databázi] ', změňte vše pomocí vlastních informací o databázi.
[databáze]
DB_TYPE =postgres
HOST =127.0.0.1:5432
NÁZEV =gogs_production
USER =git
HESLO =[e-mail chráněno]#Uložte a ukončete.
Nyní ověřte konfiguraci spuštěním příkazu, jak je uvedeno níže.
./gogs webA ujistěte se, že výsledek je následující.
Gogs nyní běží s naší vlastní konfigurací pod 'localhost' s portem 3000.
Krok 6 – Provozování Gogs jako služby
V tomto kroku nakonfigurujeme Gogs jako službu v systému Ubuntu. Vytvoříme nový konfigurační soubor služby 'gogs.service' v adresáři '/etc/systemd/system'.
Přejděte do adresáře '/etc/systemd/system' a pomocí editoru vim vytvořte nový soubor služby 'gogs.service'.
cd /etc/systemd/system
vim gogs.serviceZde vložte následující konfiguraci služby gogs.
[Jednotka]
Popis=Gogs
After=syslog.target
After=network.target
After=mariadb.service mysqld.service postgresql.service memcached.service redis .service
[Service]
# Upravte tyto dvě hodnoty a odkomentujte je, pokud máte
# repozitáře se spoustou souborů a dostanete chybu HTTP 500, protože
# z toho
###
#LimitMEMLOCK=nekonečno
#LimitNOFILE=65535
Type=simple
User=git
Group=git
WorkingDirectory=/home/git/go/src/github.com/gogits/gogs
ExecStart=/home/git/go/src/github.com/gogits/gogs/gogs web
Restart=always
Environment=USER=git HOME=/home/git
[Install]
WantedBy=multi-user.targetUložte a ukončete.
Nyní znovu načtěte služby systemd.
systemctl daemon-reloadSpusťte službu gogs a povolte její spuštění při každém spuštění systému pomocí příkazu systemctl.
systemctl start gogs
systemctl povolit gogs
Gogs nyní běží jako služba na systému Ubuntu.
Zkontrolujte to pomocí příkazů níže.
netstat -plntu
systemctl status gogsA měli byste získat výsledek, jak je uvedeno níže.
Krok 7 – Konfigurace Nginx jako reverzního proxy pro Gogs
V tomto kroku nakonfigurujeme Nginx jako reverzní proxy pro Gogs. Budeme používat balíčky Nginx z jeho vlastního úložiště.
Přidejte úložiště Nginx pomocí příkazu add-apt.
sudo add-apt-repository -y ppa:nginx/stableNyní aktualizujte všechna úložiště Ubuntu a nainstalujte Nginx pomocí příkazu apt níže.
aktualizace sudo apt
instalace sudo apt nginx -yDále přejděte do adresáře '/etc/nginx/sites-available' a vytvořte nový soubor virtuálního hostitele 'gogs'.
cd /etc/nginx/sites-available
vim gogsZde vložte následující konfiguraci.
server {
listen 80;
název_serveru git.hakase-labs.co;
umístění / {
proxy_pass http://localhost:3000;
}
}Uložte a ukončete.
Poznámka:
Změňte řádek 'server_name' za svůj vlastní název domény.
Nyní aktivujte nového virtuálního hostitele a otestujte konfiguraci nginx.
ln -s /etc/nginx/sites-available/gogs /etc/nginx/sites-enabled/
nginx -tUjistěte se, že nedošlo k žádné chybě, a poté restartujte službu Nginx.
systemctl restart nginx
Krok 8 – Testování
Otevřete webový prohlížeč a zadejte adresu URL svého gogs, moje je http://git.hakase-labs.co
Nyní získáte instalační stránku. V horní části stránky zadejte všechny informace o databázi PostgreSQL.
Nyní přejděte dolů a klikněte na rozbalovací nabídku 'Nastavení účtu správce'.
Zadejte svého administrátora, heslo a e-mail.
Poté klikněte na tlačítko 'Instalovat Gogs'.
A budete přesměrováni na uživatelský panel Gogs, jak je znázorněno níže.
Níže je Gogs 'Admin Dashboard'.
Gogs je nyní nainstalován s databází PostgreSQL a webovým serverem Nginx na serveru Ubuntu 16.04
Jak nainstalovat BookStack na Ubuntu 16.04 LTS Jak nainstalovat Caddy Web Server s PHP-FPM na Ubuntu 16.04Ubuntu