Gitea je bezplatný a open-source softwarový balíček pro vlastní hostování serveru Git. Nabízí také funkce pro spolupráci, jako je sledování chyb, wiki a kontrola kódu. Gitea je komunitou řízené a odlehčené kódové řešení napsané v Go.
Vývojáři musí při práci pravidelně slučovat své změny kódu do centrálního úložiště. Může se stát, že potřebujete mít pro svůj tým privátní centrální úložiště, které budete hostovat a spravovat sami. Pro tento účel můžete použít Gitea. Je to podobné jako GitHub, Bitbucket a tak dále.
V tomto tutoriálu se naučíme, jak instalovat Gitea pomocí dockeru na Ubuntu 20.04 .
Předpoklady
- Uzel nainstalovaný s Ubuntu 20.04
- Uživatel s oprávněním sudo
Krok 1:Nainstalujte Docker na Ubuntu
Gitea poskytuje nejnovější stabilní verzi svých obrazů Docker z centra Docker. Může být instalován ze zdrojového, binárního a také jako balíčku. Zde nasazujeme jako obrázek Docker.
Chcete-li nainstalovat docker, budete muset nainstalovat některé předpoklady:
$ sudo apt install apt-transport-https ca-certificates curl software-properties-common
Nyní přidejte klíč GP úložiště docker:
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Nyní přidejte Docker do zdrojů APT. Automaticky aktualizuje mezipaměť.
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
Nyní nainstalujte docker pomocí následujícího příkazu:
$ sudo apt install docker-ce
Přidejte uživatele do skupiny docker, aby mohl používat příkaz docker bez oprávnění sudo:
$ sudo usermod -aG docker username
Krok 2:Spusťte dokovací stanici Nginx
Chcete-li povolit HTTPS, můžete použít ukončovací proxy TLS, jako je Nginx, Apache2 nebo Caddy. V našem případě spustíme nezávislý kontejner jako náš reverzní proxy Nginx.
$ docker run -d --name nginx -p 80:80 -p 443:443 -v /etc/nginx/htpasswd:/etc/nginx/htpasswd -v /etc/nginx/vhost.d:/etc/nginx/vhost.d:ro -v /etc/nginx/certs:/etc/nginx/certs -v /var/run/docker.sock:/tmp/docker.sock:ro etopian/nginx-proxy
Pomůže nám to přesměrovat veškerý výchozí HTTP provoz na HTTPS, když integrujete své certifikáty. Měli byste si všimnout namapovaného svazku pro integraci vašich certifikátů, což je /etc/nginx/certs
Nyní otevřete port 80 a 443 na firewallu:
$ sudo ufw allow 80,443/tcp
Také se ujistěte, že jste před povolením UFW otevřeli ssh, pokud ještě ne
$ sudo ufw allow 'OpenSSH'
Nyní povolte UFW, pokud ještě ne
$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
Krok 3:Spusťte MySQL docker
Gitea potřebuje databázi k uložení svých dat. Gitea podporuje MySQL/MariaDB, PostgreSQL, SQLite a MSSQL. Zde spustíme kontejner MySQL, abychom uchovali všechna data.
$ docker run -d --name mysql-gitea -e MYSQL_ROOT_PASSWORD=o$su876HG@zvsRt3BT -v /opt/docker-volume/mysql-gitea:/var/lib/mysql mysql:5.7
Můžeme zkontrolovat, zda náš kontejner běží
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6d41fec8b0e4 mysql:5.7 "docker-entrypoint.s…" 2 hours ago Up 2 hours 3306/tcp, 33060/tcp mysql-gitea
ec9d83a3944e etopian/nginx-proxy "forego start -r" 3 days ago Up 24 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp nginx
Gitea ve výchozím nastavení naslouchá připojení na portu 3000 a reverzní proxy na portech HTTP a HTTPS. Pokud máte firewall, ujistěte se, že jsou porty otevřené pro přístup k webovému rozhraní Gitea.
Pojďme se podívat na některé detaily našeho kontejneru MySQL, jako je IP adresa, protože ji budeme potřebovat později
$ docker inspect mysql-gitea
[
{
"Id": "6d41fec8b0e4b6ca465444d5cfea11913decddfd7586f4796702463cf08897fe",
"Created": "2021-10-21T23:48:20.709365573Z",
...
...
"Networks": {
"bridge": {
"IPAMConfig": null,
"Links": null,
"Aliases": null,
"NetworkID": "3f0b32613606db9e0761af15b7fa5d7f7c3b86f4d3b4668d574c579b9468915f",
"EndpointID": "f029fc1797c70d090da19d30cb31ca34c1b6baf4537a807397e931f87262f867",
"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.3",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:ac:11:00:03",
"DriverOpts": null
}
...
...
Nyní se připojíme ke kontejneru MySQL
$ docker container exec -it mysql-gitea bash
Poté přejděte k příkazovému řádku MySQL
# mysql -u root -po$su876HG@zvsRt3BT
Nyní vytvořte databázi a uživatele pro Gitea
mysql> CREATE USER 'gitea-user'@'%' IDENTIFIED BY '34@zv$TKji@s097BB';
mysql> CREATE DATABASE giteadb;
mysql> GRANT ALL PRIVILEGES ON giteadb.* TO 'gitea-user'@'%';
mysql> FLUSH PRIVILEGES;
mysql> exit;
Nyní opusťte také kontejner
# exit;
Krok 4:Nakonfigurujte certifikát SSL
Chcete-li přistupovat ke svému Gitea prostřednictvím zabezpečeného názvu domény, budete muset zkopírovat certifikát SSL do složky Nginx. Můžete použít bezplatný certifikát Let's Encrypt nebo certifikát od certifikační autority.
Zkopírujte certifikát
$ cp gitea.websitefortesting.com.crt /etc/nginx/certs/
Zkopírujte klíč
$ cp gitea.websitefortesting.com.key /etc/nginx/certs/
Krok 5:Spusťte Gitea docker
Abychom mohli spustit Gitea, musíme uvést některé informace o kontejneru MySQL, který byl spuštěn dříve, například:
- Typ databáze, což je mysql
- adresa ip kontejneru mysql
- název databáze
- uživatelské jméno databáze
- heslo uživatele databáze
- port používaný gitea
$ docker run -d --name gitea-selfhosted -v /opt/docker-volume/gitea-selfhosted:/data -p 3000:3000 -e VIRTUAL_HOST=gitea.websitefortesting.com -e VIRTUAL_PORT=3000 -e USER_UID=1001 -e USER_GID=1001 -e DB_TYPE=mysql -e DB_HOST=172.17.0.3:3306 -e DB_NAME=giteadb -e DB_USER=gitea-user -e DB_PASSWD=34@zv$TKji@s097BB gitea/gitea:1.8
Můžeme zkontrolovat, zda běží
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
321b870a0735 gitea/gitea:1.8 "/usr/bin/entrypoint…" 11 seconds ago Up 10 seconds 22/tcp, 0.0.0.0:3000->3000/tcp, :::3000->3000/tcp gitea-selfhosted
6d41fec8b0e4 mysql:5.7 "docker-entrypoint.s…" 2 hours ago Up 3 minutes 3306/tcp, 33060/tcp mysql-gitea
ec9d83a3944e etopian/nginx-proxy "forego start -r" 3 days ago Up 29 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp nginx
Nyní můžete zkusit získat přístup k Gitea pomocí adresy URL https://giteadomain.com
Nyní přejděte na „přihlásit se“, abyste mohli pokračovat v procesu instalace. Některé informace, jako je název webu, si můžete přizpůsobit.
Nezapomeňte uvést název domény tam, kde je to nutné. Uveďte také informace o účtu správce
Po instalaci budete přihlášeni
Můžete vytvořit nové úložiště
Máte první úložiště
Závěr
Nyní znáte všechny kroky k instalaci Gitea pomocí Docker na Ubuntu 20.04 – vaše soukromé centrální úložiště pro váš kód. Budete jej moci spravovat podle svých potřeb.