OpenTofu Code for Forgejo StackIT Infrastructur
Find a file
2026-10-14 10:46:05 +02:00
.gitignore Initiale STACKIT Forgejo Infrastruktur 2026-10-14 10:46:05 +02:00
.terraform.lock.hcl Initiale STACKIT Forgejo Infrastruktur 2026-10-14 10:46:05 +02:00
data.tf Initiale STACKIT Forgejo Infrastruktur 2026-10-14 10:46:05 +02:00
dns.tf Initiale STACKIT Forgejo Infrastruktur 2026-10-14 10:46:05 +02:00
git-server.tf Initiale STACKIT Forgejo Infrastruktur 2026-10-14 10:46:05 +02:00
image.tf Initiale STACKIT Forgejo Infrastruktur 2026-10-14 10:46:05 +02:00
keypair.tf Initiale STACKIT Forgejo Infrastruktur 2026-10-14 10:46:05 +02:00
network-interface.tf Initiale STACKIT Forgejo Infrastruktur 2026-10-14 10:46:05 +02:00
network.tf Initiale STACKIT Forgejo Infrastruktur 2026-10-14 10:46:05 +02:00
outputs.tf Initiale STACKIT Forgejo Infrastruktur 2026-10-14 10:46:05 +02:00
provider.tf Initiale STACKIT Forgejo Infrastruktur 2026-10-14 10:46:05 +02:00
public-ip.tf Initiale STACKIT Forgejo Infrastruktur 2026-10-14 10:46:05 +02:00
README.md Initiale STACKIT Forgejo Infrastruktur 2026-10-14 10:46:05 +02:00
security.tf Initiale STACKIT Forgejo Infrastruktur 2026-10-14 10:46:05 +02:00
variables.tf Initiale STACKIT Forgejo Infrastruktur 2026-10-14 10:46:05 +02:00
versions.tf Initiale STACKIT Forgejo Infrastruktur 2026-10-14 10:46:05 +02:00

Forgejo-Infrastruktur auf STACKIT

Dieses Repository stellt eine minimale Forgejo-Umgebung in der STACKIT-Cloud mit Terraform/OpenTofu bereit.

Es erstellt:

  • ein projektbezogenes Netzwerk
  • einen Server mit Ubuntu 24.04
  • eine öffentliche IP und einen DNS-Eintrag
  • eine Sicherheitsgruppe mit SSH-, HTTP- und HTTPS-Zugriff
  • ein eigenes SSH-Schlüsselpaar für die Administration

Die Bereitstellung ist für eine einzelne Forgejo-Instanz hinter einem öffentlichen Hostnamen gedacht.

Architektur

Die Terraform-Konfiguration erstellt die folgenden Ressourcen:

  • stackit_network.forgejo — privates Netzwerk im CIDR 10.10.0.0/24
  • stackit_network_interface.git_server — angehängte Netzwerkschnittstelle für den Server
  • stackit_public_ip.git_server — öffentliche IPv4 für die VM
  • stackit_server.git_server — Ubuntu-24.04-VM für Forgejo
  • stackit_security_group.git_server — Regeln für SSH-, HTTP- und HTTPS-Zugriff
  • stackit_dns_zone.forgejo und stackit_dns_record_set.forgejo — öffentlicher DNS-Eintrag für den Dienst
  • stackit_key_pair.admin — SSH-Schlüssel aus ~/.ssh/id_ed25519.pub

Der Server heißt git-01, und der DNS-Zielname ist:

  • forgejo-trace-team.stackit.run

Voraussetzungen

Bevor du dieses Projekt ausführst, stelle sicher, dass du Folgendes hast:

  • Terraform oder OpenTofu installiert, Version >= 1.13.0
  • ein aktives STACKIT-Konto
  • eine STACKIT-Projekt-ID
  • einen gültigen öffentlichen SSH-Schlüssel unter ~/.ssh/id_ed25519.pub
  • Zugriff auf die STACKIT-API

Benötigte Variablen

Die Konfiguration erwartet diese Variablen in terraform.tfvars:

  • project_id — STACKIT-Projekt-ID
  • admin_cidr — deine öffentliche IP im CIDR-Format, zum Beispiel 203.0.113.42/32
  • ubuntu_image_id — die Image-ID für Ubuntu 24.04 in deinem STACKIT-Projekt

Ein Beispiel für terraform.tfvars sieht so aus:

project_id      = "<deine-project-id>"
admin_cidr      = "203.0.113.42/32"
ubuntu_image_id = "<ubuntu-24.04-image-id>"

Initialisierung

Initialisiere das Arbeitsverzeichnis:

terraform init

Wenn du OpenTofu verwendest, geht das so:

tofu init

Planung und Deployment

Führe einen Plan aus, um die Infrastruktur zu prüfen:

terraform plan

Wende die Konfiguration an:

terraform apply

Outputs

Die Terraform-Konfiguration liefert folgende Ausgaben:

  • project_name
  • project_id
  • ubuntu_image_id

Du kannst sie mit folgendem Befehl anzeigen:

terraform output

Zugriff

Der SSH-Zugriff ist auf das in admin_cidr definierte CIDR-Netz auf Port 22 beschränkt. Der Forgejo-Server öffnet zusätzlich:

  • 80/tcp für HTTP-Redirect / Zertifikatsausstellung
  • 443/tcp für HTTPS
  • 222/tcp für Git-SSH-Zugriff

Nützliche Befehle

Aktuellen Status prüfen:

terraform state list

Bereitstellung löschen:

terraform destroy

Hinweise

  • Der Provider ist auf die STACKIT-Region eu01 konfiguriert.
  • Der Server verwendet die Standard-Availability Zone eu01-1, sofern du sie nicht überschreibst.
  • Dieses Repo ist für eine einfache, einzelne Forgejo-Instanz gedacht und kein vollständiger HA-Production-Setup.

Lizenz

Dieses Projekt dient der automatisierten Bereitstellung von Infrastruktur. Passe die Lizenz nach deinen Anforderungen und deinem Umfeld an.