Gitea na veřejné subdoméně

Volné pokračování Gitea v Dockeru s daty na Synology. Tentokrát nastavíme aby nám naše self-hostovaná Gitea jela na naší veřejné doméně.

Předpoklady

  • Máme nainstalovanou Giteu podle předchozího návodu.
  • Máme koupenou vlastní doménu. (pro tutoriál to bude example.com)
  • Používáme Nginx jako reverzní proxy.
  • Máme přistup do routeru nebo možnost přesměrovávat porty.
  • Už jste Giteu jednou spustili a nastavili admin účet.

Nastavení reverzní proxy

Vytvoříme soubor gitea.example.com.

nano /etc/nginx/sites-available/gitea.example.com
server {
    listen 80;
    server_name gitea.example.com;

    location / {
        return 301 https://$host$request_uri;
    }
}

server {
    listen 443 ssl;
    server_name gitea.example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

    location / {
        proxy_pass http://:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Při zadání gitea.example.com budou všechny požadavky přesměrovávány na server, kde sedí Gitea a naslouchá na portu 3000. Také se automaticky provede přesměrování z HTTP na HTTPS.

Certifikáty jsou pomocí Let's Encrypt a Certbot, ale to je na jiný návod. 🙂

Poté je potřeba dostat symlink do /etc/nginx/sites-enabled.

sudo ln -s /etc/nginx/sites-available/gitea.example.com /etc/nginx/sites-enabled/

Pak je dobré zkontrolovat, jestli Nginx naši novou konfiguraci vezme za svou.

sudo nginx -t

Jestli je vše OK, tak bude potřeba Nginx restartovat.

sudo systemctl restart nginx

Od teď bude gitea.example.com směrovat na naši Giteu.

Nastavení Gitea

Předpoklad je, že Gitea běží v kontejneru. Musíme upravit nastavení. Do Docker kontejneru se můžete dostat pomocí příkazové řádky docker exec -it <container_name_or_id> /bin/bash. Pokud máte rozchozený Portainer, stačí v něm kliknout na ikonku shellu a připojíte se do kontejneru jako root.

Po připojení do kontejneru bude pravděpodobně jako uživatel root. Gitea (v závislosti na typu image) má data uložena v /data. Ale jako uživatel git. Proto než začnete něco měnit, tak je dobré se přepnout za uživatele git. To provedete pomocí su git.

Bude potřeba udělat pár úprav v souboru app.ini, ten se nachází v /data/gitea/conf. (v Gitea kontejneru je dostupný editor VI)

DOMIAN = gitea.example.com
SSH_DOMAIN = gitea.example.com
ROOT_URL = https://gitea.example.com

Tím nastavíme Giteu na naši doménu.

Je předpoklad, že je to soukromý git server, takže nechceme aby se tam mohli lidé samovolně registrovat. Takže je potřeba vypnout registrace.

DISABLE_REGISTRATIONS = true

Poté je potřeba kontejner restartovat.

Přesměrování portů

Gitea cotainer (pokud jste to nezměnili) propaguje porty 3000 (web) a 222 (ssh). Proto je potřeba zajistit aby byl port 222 zvenku dostupný a přesměrovával na server kde Gitea sedí. Jestli máte domácí router který sedí na veřejné IP adrese tak provedete přesměrování portů na něm.

Závěr

Existují ještě další nastavení, ale po těchto pár krocích by už měla Gitea fungovat na vaší doméně.

Loading