Gitea je self-hostovaná varianta Bitbucketu nebo GitHubu. V následujícím krátkém návodu se podíváme jak nainstalovat Giteu pomocí Dockeru a ukládat data na Synology NAS.
Prerekvizity
- Nainstalovaný a nastavený Docker
- Nainstalovaný a nastavený Synology NAS
Myšlenka
Pro spuštění Gitea serveru použijeme docker compose. Gitea bude používat PostgreSQL databázi. Pro ukládání dat jak pro Giteu, tak i pro Postgres, použijeme docker volumes. Docker volumes
nebudou lokální, ale přes protokol NFS budou směřovat na Synology NAS.
Pro potřeby tutoriálu bude mít server IP adresu 192.168.10.1
a Synology NAS 192.168.10.2
.
Nastavení Synology
Ovládací panel
> Souborové služby
> NFS
povolte službu NFS
.
Ovládací panel
> Sdílená složka
> Vytvoření sdílené složky
. Název docker-volumes
. Nepřiřazujeme oprávnění pro uživatele nebo skupiny.
Klikneme na složku docker-volumes
a zvolíme upravit. Poté Oprávnění NFS
. Klikneme na tlačítko Vytvořit
. Do pole Název hostitele nebo IP adresa
vložíme IP adresu našeho serveru, tedy 192.168.10.1
. Tím umožníme našemu serveru přístup k této složce. Dále nastavíme:
- Oprávnění:
Čtení/Zápis
- Squash:
Žádné mapování
- Zabezpečení:
sys
- Povolit asynchronní
- Povolit připojení z portů bez oprávnění (porty vyšší než 1024)
- Umožňuje uživatelům přístup k připojeným podsložkám
A uložíme.
Poté otevřeme File Station
a v naší složce docker-volumes
vytvoříme následující podsložky:
gitea-data
gitea-postgres
To je na Synology vše.
docker-compose.yaml
Konfigurační soubor vytvoří síť gitea
kde na sebe uvidí kontejnery gitea
a gitea-db
. Vytvoří dva volumes
a pomocí protokolu NFS je nasměruje na námi sdílenou složku v Synology NAS.
Docker-compose soubor můžeme spustit pomocí docker-compose up -d
. Pokud máte na serveru nainstalovaný a spuštěný Portainer, tak jde docker-compose konfigurace
spustit jako stack.
Webové rozhraní poté bude přístupné na http://192.168.10.1:3000
.
networks:
gitea:
volumes:
gitea-data:
driver: local
driver_opts:
type: nfs
o: addr=192.168.1.251,rw
device: ":/volume1/docker-volumes/gitea-data"
gitea-postgres:
driver: local
driver_opts:
type: nfs
o: addr=192.168.1.251,rw
device: ":/volume1/docker-volumes/gitea-postgres"
services:
server:
image: gitea/gitea:latest
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
- GITEA__database__DB_TYPE=postgres
- GITEA__database__HOST=gitea-db:5432
- GITEA__database__NAME=gitea
- GITEA__database__USER=gitea
- GITEA__database__PASSWD=supersecretpassword
restart: always
networks:
- gitea
volumes:
- gitea-data:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "222:22"
depends_on:
- gitea-db
gitea-db:
image: postgres:16
container_name: gitea-db
restart: always
environment:
- POSTGRES_USER=gitea
- POSTGRES_PASSWORD=supersecretpassword
- POSTGRES_DB=gitea
networks:
- gitea
volumes:
- gitea-postgres:/var/lib/postgresql/data