Toolbox fuer Einfache Administration Modularer Server
TEAMS ist ein Einrichtungsskript fuer einen Team-Server auf Debian. Per SSH einloggen, eine Zeile ausfuehren, den Rest regelt TEAMS.
Jedes Modul ist ein eigenes Shell-Skript – lesbar, pruefbar, nachvollziehbar. Keine Magie, kein Overengineering. Admins sollen jede Zeile verstehen koennen.
Verwandtes Projekt: SARBS – Suckless Auto-Rice Bootstrapping Scripts
Konzept⌗
- Ein Skript pro Dienst – modularer Aufbau, chronologisch abarbeitbar
- POSIX-Shell – kein Bash-ismus, laeuft ueberall
- Menschlich lesbar – kommentiert, keine cleveren Einzeiler
- Debian-fokussiert – apt, systemd, keine Abstraktionsschichten
- Idempotent – mehrfach ausfuehrbar ohne Seiteneffekte
- Config im Repo – Konfiguration wird manuell gepflegt, nicht generiert
Dienste⌗
| Modul | Dienst | Status |
|---|---|---|
00-base.sh |
System-Grundkonfiguration, Updates, Pakete | geplant |
01-firewall.sh |
UFW Firewall-Regeln | geplant |
02-ssh.sh |
SSH-Haertung, Key-Only, Fail2ban | geplant |
03-nginx.sh |
Nginx Reverse Proxy + Let’s Encrypt | geplant |
04-wireguard.sh |
WireGuard VPN | geplant |
05-forgejo.sh |
Forgejo Git-Plattform | geplant |
06-nextcloud.sh |
Nextcloud (Dateien, Kalender, Kontakte) | geplant |
07-matrix.sh |
Matrix/Synapse + Element Chat | geplant |
08-mail.sh |
Postfix + Dovecot Mailserver | geplant |
Schnellstart⌗
Ein Befehl auf einem frischen Debian-Server:
curl -sL https://sarbs.xyz/teams.sh | sh
Was passiert:
- Erkennt automatisch
curl | shund startet sich interaktiv neu - Git und curl werden installiert
- TEAMS-Repository wird nach
/root/teamservergeklont - Alle in
config.shaktivierten Module werden ausgefuehrt
Konfiguration⌗
Die config.sh liegt im Repo und wird dort gepflegt:
DOMAIN="example.org"
SSH_PORT=2222
ENABLE_BASE=true
ENABLE_FIREWALL=true
ENABLE_SSH=true
ENABLE_NGINX=true
ENABLE_FORGEJO=false
Module mit true werden ausgefuehrt, mit false uebersprungen.
Erneut ausfuehren⌗
cd /root/teamserver
./teams.sh # Alle aktivierten Module
./teams.sh --module 05-forgejo # Einzelnes Modul
./teams.sh --list # Module auflisten
./teams.sh --check # Systemcheck (Dry-Run)
Voraussetzungen⌗
- Debian 12 (Bookworm) oder neuer
- Root-Zugang per SSH
- Eigene Domain mit DNS-Zugriff
Philosophie⌗
Dieses Projekt folgt der Suckless-Philosophie:
- Einfachheit – Shell-Skripte statt Ansible/Terraform/Docker
- Transparenz – Jede Zeile macht genau eine Sache
- Modularitaet – Nimm was du brauchst, lass den Rest weg
- Dokumentation im Code – Kommentare erklaeren das Warum, nicht das Was
Verzeichnisstruktur⌗
teamserver/
├── teams.sh # Hauptskript - Bootstrap + Modul-Ausfuehrung
├── config.sh # Zentrale Konfiguration (im Repo gepflegt)
├── lib/ # Hilfsfunktionen (Logging, Checks, Farben)
│ └── common.sh
├── modules/ # Ein Skript pro Dienst
│ ├── 00-base.sh
│ ├── 01-firewall.sh
│ └── ...
├── conf/ # Konfigurations-Vorlagen fuer Dienste
│ ├── nginx/
│ ├── wireguard/
│ └── ...
├── Makefile # check, install, list, test
├── LICENSE # MIT
└── README.md