2025-10-16 22:54:40 +02:00
2025-10-16 22:54:40 +02:00
2025-10-16 22:54:40 +02:00
2025-10-16 22:54:40 +02:00
2025-10-16 22:54:40 +02:00
2025-10-16 22:54:40 +02:00
2025-10-16 22:54:40 +02:00
2025-10-16 22:54:40 +02:00
2025-10-16 22:54:40 +02:00
2025-10-16 22:54:40 +02:00
2025-10-16 22:54:40 +02:00

VPS Automation with Ansible - Trillium Notes & Gitea Setup

Dieses Ansible-Projekt automatisiert die Installation von Trillium Notes und Gitea auf einem VPS mit Docker, Nginx und SSL-Zertifikaten.

Voraussetzungen

  1. Poetry installiert (bereits erledigt)
  2. SSH-Zugang zum VPS mit Root-Rechten
  3. Domains müssen auf die VPS-IP zeigen (node.pm86.de, git.pm86.de)

Konfiguration

1. VPS-Verbindung konfigurieren

Editiere inventory/hosts.yml und setze:

  • ansible_host: Die IP-Adresse deines VPS
  • ansible_user: Der SSH-User (normalerweise root)
  • ansible_ssh_private_key_file: Pfad zu deinem SSH-Key

2. Domains und E-Mail konfigurieren

Editiere inventory/hosts.yml:

  • trillium_domain: Domain für Trillium Notes (z.B. node.pm86.de)
  • gitea_domain: Domain für Gitea (z.B. git.pm86.de)
  • email: Deine E-Mail für SSL-Zertifikate

Verwendung

Komplette Installation (empfohlen)

poetry run ansible-playbook site.yml

Einzelne Komponenten installieren

# Nur Docker
poetry run ansible-playbook site.yml --tags docker

# Nur Nginx
poetry run ansible-playbook site.yml --tags nginx

# Nur SSL-Zertifikate
poetry run ansible-playbook site.yml --tags certbot

# Nur Trillium Notes
poetry run ansible-playbook site.yml --tags trillium

# Nur Gitea
poetry run ansible-playbook site.yml --tags gitea

Verbindung testen

poetry run ansible vps -m ping

Was wird installiert

  1. Docker & Docker Compose: Container-Plattform
  2. Nginx: Reverse Proxy mit SSL-Terminierung
  3. Certbot: Automatische SSL-Zertifikate (Let's Encrypt)
  4. Trillium Notes: Notiz-App in Docker-Container
  5. Gitea: Git-Server in Docker-Container

Nach der Installation

  • Trillium Notes ist erreichbar unter: https://node.pm86.de
  • Gitea ist erreichbar unter: https://git.pm86.de
  • SSL-Zertifikate werden automatisch erneuert
  • Alle Services starten automatisch beim Boot
  • Logs:
    • journalctl -u trillium für Trillium
    • journalctl -u gitea für Gitea

Service-Konfiguration

Trillium Notes

  • Port: 8080 (intern), 80/443 (extern)
  • Daten: /opt/trillium/data
  • Config: Automatisch via Docker-Compose
  • Erste Einrichtung: Direkt über Web-Interface

Gitea

  • Port: 3000 (intern), 80/443 (extern)
  • Daten: /opt/gitea/data
  • Config: /opt/gitea/config
  • Git Repos: /opt/gitea/git
  • Erste Einrichtung: Über Web-Interface nach Deployment
  • Admin: Erster User wird automatisch Admin

Troubleshooting

SSH-Verbindung testen

ssh -i ~/.ssh/id_rsa root@YOUR_VPS_IP

Services überprüfen

poetry run ansible vps -m systemd -a "name=docker state=started"
poetry run ansible vps -m systemd -a "name=nginx state=started"

Container Status

# Trillium Container
poetry run ansible vps -m shell -a "docker ps | grep trillium"

# Gitea Container
poetry run ansible vps -m shell -a "docker ps | grep gitea"

Dateistruktur

.
├── ansible.cfg                 # Ansible-Konfiguration
├── inventory/hosts.yml         # VPS-Verbindungsdaten
├── group_vars/all/vars.yml     # Globale Variablen
├── site.yml                    # Haupt-Playbook
├── playbooks/                  # Einzelne Playbooks
│   ├── 01-install-docker.yml
│   ├── 02-install-nginx.yml
│   ├── 03-setup-certbot.yml
│   ├── 04-deploy-trillium.yml
│   ├── 05-deploy-gitea.yml
│   ├── 06-configure-gitea-nginx.yml
│   └── 07-setup-gitea-certbot.yml
└── templates/                  # Konfigurations-Templates
    ├── nginx-site.conf.j2      # Trillium Nginx config
    ├── docker-compose.yml.j2   # Trillium Docker Compose
    ├── start-trillium.sh.j2    # Trillium startup script
    ├── trillium.service.j2     # Trillium systemd service
    ├── gitea-nginx-site.conf.j2 # Gitea Nginx config
    ├── gitea-docker-compose.yml.j2 # Gitea Docker Compose
    ├── start-gitea.sh.j2       # Gitea startup script
    └── gitea.service.j2        # Gitea systemd service
Description
No description provided
Readme 59 KiB
Languages
Jinja 100%