- Add QUICKSTART.md and SETUP_REPOSITORY.md for Semaphore stack - Add playbooks directory for Semaphore deployment - Update Semaphore docker-compose.yml, env.example, and README - Add Traefik local configuration files - Disable semaphore.yml in Traefik dynamic config - Update docker-compose.local.yml and build-image workflow
5.0 KiB
?? Quick Start: Semaphore mit Repository verbinden
Kurze Schritt-f?r-Schritt-Anleitung, um Semaphore mit deinem Git-Repository zu verbinden.
Schritt 1: Semaphore starten
cd deployment/stacks/semaphore
cp env.example .env
WICHTIG: Generiere einen Encryption Key:
head -c32 /dev/urandom | base64
Kopiere den Key und setze ihn in .env:
SEMAPHORE_ACCESS_KEY_ENCRYPTION=<dein-generierter-key>
docker compose up -d
Schritt 2: Semaphore ?ffnen
?ffne im Browser: http://localhost:9300
Login:
- Username:
admin - Password:
admin
Schritt 3: Projekt erstellen
- Klicke auf "New Project" oder "Create Project"
- Name: "michaelschiemer"
- Klicke auf "Create"
Schritt 4: Inventory erstellen (Hosts definieren)
4.1 Inventory anlegen
- Gehe zu Inventories ? New Inventory
- Name: "Production Hosts"
- Klicke auf "Create"
4.2 Host hinzuf?gen
- Klicke auf dein Inventory ? "Add Host"
- F?lle aus:
Name: production
Address: 94.16.110.151
SSH Username: deploy
SSH Port: 22
- Klicke auf "Save"
4.3 SSH-Key hinzuf?gen
- Gehe zu Keys (in der Seitenleiste)
- Klicke auf "New Key"
- Name: "Deployment Key"
- F?ge deinen SSH Private Key ein (aus
~/.ssh/production):cat ~/.ssh/production - Klicke auf "Save"
- Gehe zur?ck zu deinem Inventory und w?hle den Key bei deinem Host aus
Schritt 5: Template erstellen (Playbook verwenden)
5.1 Template f?r CI Tests
- Gehe zu Templates ? New Template
- Name: "Run CI Tests"
- Inventory: W?hle "Production Hosts"
- Playbook Path:
/tmp/semaphore/playbooks/ci-tests.yml - Variables (klicke auf "Variables"):
repo_url: https://git.michaelschiemer.de/michael/michaelschiemer.git repo_branch: main - Klicke auf "Save"
5.2 Template f?r Docker Build
- Templates ? New Template
- Name: "Build Docker Image"
- Inventory: "Production Hosts"
- Playbook Path:
/tmp/semaphore/playbooks/docker-build.yml - Variables:
repo_url: https://git.michaelschiemer.de/michael/michaelschiemer.git repo_branch: main registry_url: registry.michaelschiemer.de registry_user: admin registry_password: <dein-registry-passwort> image_name: framework image_tag: latest - Save
5.3 Template f?r Staging Deployment
- Templates ? New Template
- Name: "Deploy to Staging"
- Inventory: "Production Hosts"
- Playbook Path:
/tmp/semaphore/playbooks/deploy-staging.yml - Variables:
registry_url: registry.michaelschiemer.de registry_user: admin registry_password: <dein-registry-passwort> image_name: framework image_tag: latest - Save
5.4 Template f?r Production Deployment
- Templates ? New Template
- Name: "Deploy to Production"
- Inventory: "Production Hosts"
- Playbook Path:
/tmp/semaphore/playbooks/deploy-production.yml - Variables:
registry_url: registry.michaelschiemer.de registry_user: admin registry_password: <dein-registry-passwort> image_name: framework image_tag: latest - Save
Schritt 6: Task ausf?hren
- Gehe zu Templates
- Klicke auf ein Template (z.B. "Run CI Tests")
- Klicke auf "Run"
- Beobachte die Ausf?hrung in Echtzeit
? Fertig!
Semaphore ist jetzt mit deinem Repository verbunden! Du kannst:
- ? CI/CD-Tasks manuell starten
- ? Playbooks aus dem Repository verwenden
- ? Deployments auf deine Server ausf?hren
?? Verf?gbare Playbooks
Die folgenden Playbooks sind bereits im Repository und k?nnen in Semaphore verwendet werden:
/tmp/semaphore/playbooks/ci-tests.yml- PHP Tests & Quality Checks/tmp/semaphore/playbooks/docker-build.yml- Docker Image Build & Push/tmp/semaphore/playbooks/deploy-staging.yml- Staging Deployment/tmp/semaphore/playbooks/deploy-production.yml- Production Deployment
?? Vorhandene Ansible-Playbooks
Die vorhandenen Ansible-Playbooks aus deployment/ansible/playbooks/ sind auch verf?gbar unter:
/tmp/semaphore/repo-playbooks/
Zum Beispiel:
/tmp/semaphore/repo-playbooks/deploy-update.yml/tmp/semaphore/repo-playbooks/rollback.yml
?? Tipps
Docker Socket f?r Build-Tasks
Falls Docker-Build-Tasks ausgef?hrt werden sollen, f?ge den Docker Socket hinzu:
In docker-compose.yml bei Semaphore-Service:
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
Dann Semaphore neu starten:
docker compose restart semaphore
Git-Integration
Die Playbooks k?nnen direkt auf das Git-Repository zugreifen (HTTPS). F?r private Repositories oder SSH-Zugriff:
- Erstelle einen SSH-Key f?r Git in Semaphore (Keys ? New Key)
- F?ge den Public Key zu deinem Git-Repository hinzu
- Verwende SSH-URL in Playbook-Variablen:
repo_url: git@git.michaelschiemer.de:michael/michaelschiemer.git
Hilfe: Weitere Details in SETUP_REPOSITORY.md und README.md