Paketmanager und Binärdateien
Verwende diese Seite für Nicht-Container-Installationen und manuelle Binär-Downloads.
Laufzeitwerkzeuge
Container-Images enthalten diese Werkzeuge bereits. Nicht-Container-Installationen müssen sie auf dem Host bereitstellen.
| Host-Rolle | Erforderliche Werkzeuge |
|---|---|
| Controller | CA-Zertifikate, git. |
| Agent | git, Docker CLI, Docker Buildx-Plugin, Docker Compose-Plugin, Zugriff auf den Docker-Daemon. |
Linux-Pakete und -Archive installieren Composia-Binärdateien und optionale systemd-Unit-Dateien. Sie installieren Docker, Docker Compose oder Git nicht für dich.
Debian und Ubuntu
Füge das Forgejo-APT-Repository hinzu:
sudo install -d -m 0755 /etc/apt/keyrings
sudo curl https://forgejo.alexma.top/api/packages/alexma233/debian/repository.key \
-o /etc/apt/keyrings/composia.asc
echo "deb [signed-by=/etc/apt/keyrings/composia.asc] https://forgejo.alexma.top/api/packages/alexma233/debian stable main" \
| sudo tee /etc/apt/sources.list.d/composia.list
sudo apt update
sudo apt install composiaDu kannst auch das .deb-Paket von der Releases-Seite herunterladen und mit deinem Paketmanager installieren.
Überprüfen:
composia --versionSystemdienste
Linux-Pakete installieren inaktive systemd-Units für Controller und Agent. Die Units werden nicht automatisch aktiviert oder gestartet.
Die paketierten Units verwenden die Standard-Konfigurationspfade:
| Dienst | Konfigurationspfad |
|---|---|
composia-controller.service | /etc/composia/controller/config.yaml |
composia-agent.service | /etc/composia/agent/config.yaml |
The packaged units use the default config paths, run as root as shipped, and do not create config files, data directories, or Git repositories for you. Bootstrap them before enabling services:
sudo install -d -m 0755 /etc/composia/controller /etc/composia/agent
sudo install -d -m 0750 \
/var/lib/composia/controller/repo \
/var/lib/composia/controller/state \
/var/lib/composia/controller/logs \
/var/lib/composia/agent/repo \
/var/lib/composia/agent/state
sudo chown -R root:root /etc/composia /var/lib/composia
sudo git -C /var/lib/composia/controller/repo init
sudo git -C /var/lib/composia/agent/repo initUse matching paths in the two config files:
controller:
repo_dir: "/var/lib/composia/controller/repo"
state_dir: "/var/lib/composia/controller/state"
log_dir: "/var/lib/composia/controller/logs"agent:
repo_dir: "/var/lib/composia/agent/repo"
state_dir: "/var/lib/composia/agent/state"Verify ownership, write access, and Git initialization:
stat -c '%U:%G %a %n' \
/var/lib/composia/controller/repo \
/var/lib/composia/controller/state \
/var/lib/composia/controller/logs \
/var/lib/composia/agent/repo \
/var/lib/composia/agent/state
sudo test -w /var/lib/composia/controller/repo
sudo test -w /var/lib/composia/agent/repo
sudo git -C /var/lib/composia/controller/repo rev-parse --is-inside-work-tree
sudo git -C /var/lib/composia/agent/repo rev-parse --is-inside-work-treeIf you add a systemd drop-in with User=, chown these paths to that service user instead.
Nachdem du die Konfigurationsdateien erstellt hast, aktiviere die Dienste explizit:
sudo systemctl enable --now composia-controller.service
sudo systemctl enable --now composia-agent.serviceLinux-Archive enthalten dieselben Unit-Dateien unter packaging/systemd/. Wenn du Archiv-Binärdateien unter /usr/local/bin installierst, passe die ExecStart-Pfade vor dem Aktivieren an.