ansible-role-gitea/README.md

91 lines
2.5 KiB
Markdown

# Ansible Gitea Setup
Gitea Setup als Ansible-Rolle. 🎉
## TODO
- [Alle Umgebungsvariablen](https://docs.gitea.io/en-us/config-cheat-sheet/) unterstützen.
- Alle Datenbanken unterstützen **oder** eine bestimmet Datenbank unterstützen
- von mysql zu mariadb migrieren?
## Manuelle Schritte
Das alles muss man selber machen. ⬇️
### Vorbereitung
- Einen Reverse-Proxy einrichten
#### Benötigte Variablen
Damit die Rolle funktioniert muss eine Reihe an Variablen für alle Hosts bereitgestellt werden.
| Variable | Beschreibung | Werte |
|----------|--------------|-------|
| `gitea['hostname']` | Gitea Hostname | (String) |
| `gitea['domain']` | Gitea Domain | (String) |
| `gitea['app_name']` | Titel für die Startseite | (String) |
| `gitea['database']['db_type']` | Datenbanktyp **(nur "mysql" unterstützt)** | (String) |
| `gitea['database']['docker_image_tag']` | Docker-Image Tag |
Im Inventory sieht das dann in etwa so aus:
```yaml
gitea:
app_name: Beispiel Gitea Server
hostname: gitea
domain: int.example.com
```
#### Optionale Variablen
Gitea hat sehr viele Optionen, die per Umgabungsvariablen gesetzt werden. Einige davon werden von dieser Rolle unterstützt. Welche Variablen genau unterstützt werden, kann man in [diesem Template](templates/environment.env.j2) sehen.
> **Eine Besonderheit:** Booleans der Gitea Konfiguration müssen als String angegeben werden, da sich Ansibles Boolean-Format von der Gitea Config unterscheidet.
Hier eine Beispielkonfiguration:
```yaml
system:
hostname: example-gitea
domain: int.example.com
gitea:
version: 1.17.3
app_name: Beispiel Gitea
service:
disable_registration: "false"
require_signin_view: "true"
register_email_confirm: "false"
default_keep_email_private: "false"
default_allow_create_organization: "true"
default_enable_timetracking: "true"
repository:
enable_push_create_user: "true"
enable_push_create_org: "true"
default_push_create_private: "false"
attachment:
enabled: "true"
max_files: 5
max_size: 10
ssh:
minimum_key_sizes:
dsa: -1 # Disable DSA
rsa: -1 # Disable RSA
```
Für die Definition des Datenbankpassworts werden zusätzlich noch die Variablen `db_secret` und `db_root_secret` aus dem Vault benötigt. Hier ein Beispiel-Vault, um die Struktur klar zu machen:
```yaml
vault:
example-gitea:
ansible_become_pass: bgnafeuginae
gitea:
db_secret: riasneudfgisn
db_root_secret: uiqfageksfhgfhgsk
```
### Nachbereitung
- Initiales Setup von Gitea via Web Gui durchführen.