Skip to content

Commit 9f1ffe7

Browse files
committed
feat: add docker-compose support and enhance README
- Introduced a new docker-compose.yml file for easier deployment and management of the idle-outpost-claimer service. - Updated README.md with detailed instructions for deploying using Docker Compose and Portainer, including environment variable setup and automatic updates via GitHub Actions.
1 parent 5dfab1c commit 9f1ffe7

File tree

2 files changed

+69
-1
lines changed

2 files changed

+69
-1
lines changed

README.md

Lines changed: 52 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,4 +69,55 @@ docker run --name idle-outpost-claimer -d \
6969
ghcr.io/cancel-cloud/idleoutpostclaimer:latest
7070
```
7171

72-
Die Log-Datei (`cron.log`) befindet sich nun in deinem `~/idle-outpost-logs` Ordner und wird kontinuierlich aktualisiert.
72+
Die Log-Datei (`cron.log`) befindet sich nun in deinem `~/idle-outpost-logs` Ordner und wird kontinuierlich aktualisiert.
73+
74+
## 🐳 Deployment mit Docker Compose & Portainer
75+
76+
Für eine robustere Verwaltung, insbesondere auf einem Server, empfiehlt sich die Verwendung von `docker-compose.yml` und Portainer.
77+
78+
### Portainer-Stack-Deployment (Empfohlen)
79+
80+
Mit dieser Methode kannst du den Claimer direkt aus meinem Git-Repository in Portainer benutzen.
81+
82+
1. **Gehe zu Stacks** in Portainer und klicke auf **+ Add stack**.
83+
2. **Vergib einen Namen**, z.B. `idle-outpost-claimer`.
84+
3. **Wähle "Git Repository"** als Build-Methode.
85+
- **Repository URL**: Gib die URL zu deinem GitHub-Repository an.
86+
- **Compose path**: `docker-compose.yml`
87+
4. **Aktiviere "Automatic updates"**:
88+
- Schalte die Option **"Webhook"** an. Portainer generiert nun eine Webhook-URL. Kopiere diese – du brauchst sie für den nächsten Schritt.
89+
5. **Setze die Umgebungsvariable**:
90+
- Scrolle zum Abschnitt **"Environment variables"**.
91+
- Klicke auf **+ Add environment variable**.
92+
- **Name**: `USER_GAME_ID`, **Value**: `DEINE_USER_GAME_ID_HIER`.
93+
6. **Klicke auf "Deploy the stack"**. Portainer lädt das Image und startet den Container.
94+
95+
### Automatische Updates via GitHub Actions
96+
97+
Damit Portainer automatisch die neueste Version deines Images zieht, wenn du Änderungen pushst, kannst du den Webhook in einer GitHub Action aufrufen.
98+
99+
1. **GitHub Secret erstellen**:
100+
- Gehe in deinem GitHub-Repo zu **Settings > Secrets and variables > Actions**.
101+
- Erstelle ein neues Secret mit dem Namen `PORTAINER_WEBHOOK_URL` und füge die kopierte URL aus Portainer ein.
102+
2. **GitHub Action anlegen**:
103+
- Erstelle eine Datei unter `.github/workflows/deploy.yml` in deinem Repository. Diese Action baut bei jedem Push auf den `main`-Branch ein neues Docker-Image, pusht es auf die GitHub Container Registry und ruft anschließend den Portainer-Webhook auf, um den Stack zu aktualisieren.
104+
105+
*Hinweis: Ein passendes Workflow-Beispiel, das du als Vorlage nutzen kannst, müsstest du noch erstellen. Der entscheidende letzte Schritt in der Action wäre dieser:*
106+
```yaml
107+
- name: Trigger Portainer Webhook
108+
run: curl -X POST ${{ secrets.PORTAINER_WEBHOOK_URL }}
109+
```
110+
111+
### Manuelles Deployment mit Docker Compose
112+
113+
Falls du Portainer nicht nutzt, kannst du den Stack auch manuell starten.
114+
115+
1. Erstelle eine Datei namens `.env` im selben Verzeichnis wie die `docker-compose.yml`.
116+
2. Füge den folgenden Inhalt in die `.env`-Datei ein und ersetze den Platzhalter:
117+
```
118+
USER_GAME_ID=DEINE_USER_GAME_ID_HIER
119+
```
120+
3. Starte den Stack im Hintergrund:
121+
```bash
122+
docker-compose up -d
123+
```

docker-compose.yml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
version: '3.8'
2+
3+
services:
4+
idle-outpost-claimer:
5+
image: ghcr.io/cancel-cloud/idleoutpostclaimer:latest
6+
container_name: idle-outpost-claimer
7+
restart: unless-stopped
8+
environment:
9+
# Dieser Wert muss in der Portainer UI oder in einer .env-Datei gesetzt werden
10+
- USER_GAME_ID=${USER_GAME_ID}
11+
volumes:
12+
# Persistiert die Log-Dateien in einem benannten Volume
13+
- idle-outpost-logs:/var/log
14+
15+
volumes:
16+
idle-outpost-logs:
17+
driver: local

0 commit comments

Comments
 (0)