Files

222 lines
6.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Voici un guide pas à pas pour installer Gitea sur Debian 13 avec PostgreSQL comme base de données, et configurer un reverse-proxy (par ex. Traefik ou Nginx) pour servir Gitea.
---
## 1. Pré-requis
* Un serveur Debian 13 à jour.
```bash
sudo apt update && sudo apt upgrade -y
```
* Installer Git, et éventuellement dautres dépendances.
```bash
sudo apt install -y git ca-certificates
```
* Un nom de domaine `git.abonnel.fr` pointant vers votre serveur (DNS A ou AAAA).
* Assurez-vous que le port 80 et/ou 443 sont ouverts sur le serveur (pour le proxy).
* Installer PostgreSQL.
---
## 2. Installer PostgreSQL et créer base & utilisateur
1. Installer PostgreSQL (Debian 13 inclut postgresql dans ses dépôts).
```bash
sudo apt install -y postgresql postgresql-contrib
```
2. Passer à lutilisateur postgres et créer la base + utilisateur pour Gitea :
```bash
sudo -i -u postgres
psql
CREATE DATABASE gitea WITH ENCODING 'UTF8' TEMPLATE template0;
CREATE USER gitea WITH PASSWORD 'votre_mot_de_passe_sécurisé';
GRANT ALL PRIVILEGES ON DATABASE gitea TO gitea;
\q
exit
```
Ces commandes sont conformes à la documentation Gitea pour PostgreSQL. ([Gitea Documentation][1])
3. Vérifier que PostgreSQL fonctionne :
```bash
sudo systemctl status postgresql
```
4. (Optionnel) Modifier le fichier `pg_hba.conf` si vous voulez autoriser certaines connexions supplémentaires (ex: accès réseau).
---
## 3. Installer Gitea
1. Créer un utilisateur système qui va exécuter Gitea :
```bash
sudo adduser --system --shell /bin/bash --gecos 'Git Version Control' --group --disabled-password --home /home/git git
```
([Gitea Documentation][2])
2. Créer les dossiers de travail :
```bash
sudo mkdir -p /var/lib/gitea/{custom,data,log}
sudo chown -R git:git /var/lib/gitea/
sudo chmod -R 750 /var/lib/gitea/
sudo mkdir /etc/gitea
sudo chown root:git /etc/gitea
sudo chmod 770 /etc/gitea
```
([Gitea Documentation][3])
3. Télécharger le binaire Gitea :
```bash
wget -O gitea https://dl.gitea.com/gitea/1.24.7/gitea-1.24.7-linux-amd64
chmod +x gitea
sudo mv gitea /usr/local/bin/gitea
```
(Vérifiez la version la plus récente sur le site officiel) ([Gitea Documentation][2])
4. Créer un fichier de service systemd pour Gitea. Exemple minimal (`/etc/systemd/system/gitea.service`) :
```ini
[Unit]
Description=Gitea (Git with a cup of tea)
After=network.target postgresql.service
[Service]
User=git
Group=git
WorkingDirectory=/var/lib/gitea/
ExecStart=/usr/local/bin/gitea web --config /etc/gitea/app.ini
Restart=always
Environment=USER=git HOME=/var/lib/gitea GITEA_WORK_DIR=/var/lib/gitea
[Install]
WantedBy=multi-user.target
```
Ensuite :
```bash
sudo systemctl daemon-reload
sudo systemctl enable --now gitea
sudo systemctl status gitea
```
([Gitea Documentation][4])
---
## 4. Configuration via linterface web
* Ouvrez [http://votre-serveur:3000](http://votre-serveur:3000) (ou le port que Gitea utilise) dans un navigateur.
* Dans lassistant dinstallation, choisissez *PostgreSQL* comme type de base de données. Entrez :
* Host : `localhost:5432` (ou lIP/port selon)
* Database : `gitea`
* Username : `gitea`
* Password : celui que vous avez défini
* Dans le champ "Base URL", indiquez `https://git.abonnel.fr/` (ou http selon votre setup).
* Complétez le reste (admin account, etc.).
([James R. S. Kemp Git][5])
---
## 5. Configurer reverse-proxy pour `git.abonnel.fr`
Si vous utilisez Nginx ou Traefik (ou un autre proxy) vous devez rediriger le domaine vers Gitea.
### Exemple avec Nginx :
```nginx
server {
listen 80;
server_name git.abonnel.fr;
# redirection vers HTTPS (si certbot/Lets Encrypt)
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name git.abonnel.fr;
ssl_certificate /etc/letsencrypt/live/git.abonnel.fr/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/git.abonnel.fr/privkey.pem;
location / {
proxy_pass http://127.0.0.1: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;
}
}
```
Cet exemple est inspiré des tutos dinstallation Gitea + Nginx. ([James R. S. Kemp Git][5])
Si vous utilisez un autre proxy (ex: Traefik ou « zoraxyproxy »), adaptez la configuration pour quil fasse passer `git.abonnel.fr` vers `localhost:3000` et gère SSL.
### Activer HTTPS
* Installez `certbot` ou utilisez votre gestionnaire de certificats.
```bash
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d git.abonnel.fr
```
* Vérifiez que le certificat est actif et que `https://git.abonnel.fr` fonctionne.
---
## 6. Configuration finale dans app.ini
Après installation, vous pouvez ajuster `/etc/gitea/app.ini` (ou via linterface). Exemples de réglages utiles :
* Dans `[server]` :
```
ROOT_URL = https://git.abonnel.fr/
HTTP_PORT = 3000
SSH_PORT = 22 # ou le port SSH que vous utilisez pour Git
START_SSH_SERVER = false # si vous nutilisez pas le serveur SSH interne
DOMAIN = git.abonnel.fr
```
* Dans `[database]` :
```
DB_TYPE = postgres
HOST = 127.0.0.1:5432
NAME = gitea
USER = gitea
PASSWD = votre_mot_de_passe
SSL_MODE = disable # ou require selon votre config
```
* Redémarrez Gitea après modification :
```bash
sudo systemctl restart gitea
```
---
## 7. Sécuriser & entretien
* Assurez-vous que seuls les ports nécessaires sont exposés (ex: 80/443 via proxy, 3000 en local si non exposé).
* Faites des sauvegardes régulières : base PostgreSQL + dossier `/var/lib/gitea/data` (ou vos dépôts).
* Vérifiez les logs de Gitea (souvent dans `/var/lib/gitea/log/`).
* Gardez Gitea et PostgreSQL à jour.
* Si vous utilisez SSH pour les repos Git, configurez correctement les clés SSH utilisateur et vérifiez que lutilisateur `git` a bien les permissions.
---
[1]: https://docs.gitea.com/enterprise/installation/linux?utm_source=chatgpt.com "Install on Linux | Gitea Enterprise Documentations"
[2]: https://docs.gitea.com/installation/install-from-binary?utm_source=chatgpt.com "Installation from binary | Gitea Documentation"
[3]: https://docs.gitea.com/1.18/installation/install-from-binary?utm_source=chatgpt.com "Installation from binary | Gitea Documentation"
[4]: https://docs.gitea.com/1.20/category/installation?utm_source=chatgpt.com "Installation | Gitea Documentation"
[5]: https://git.jamesrskemp.com/hosting/gitea.html?utm_source=chatgpt.com "Gitea - Git Commands by James Skemp"