225 lines
8.7 KiB
Markdown
225 lines
8.7 KiB
Markdown
# 🚀 Freqtrade Proxmox Deployment Guide
|
|
|
|
Dieser Leitfaden ist eine getestete Anleitung, um einen Freqtrade Krypto-Bot in einem Proxmox LXC Container stabil, sicher und komfortabel aufzusetzen.
|
|
|
|
> [!WARNING]
|
|
> ⚠️ **Haftungsausschluss (Disclaimer)**
|
|
> Dieses Projekt dient ausschließlich zu **Lern- und Testzwecken**.
|
|
> * **Keine Finanzberatung:** Trading-Bots wie Freqtrade erfolgen auf eigenes Risiko. Ich übernehme keine Haftung für Verluste.
|
|
> * **Eigenverantwortung:** Handle nur mit Geld, das du physisch und psychisch verlieren kannst!
|
|
|
|
---
|
|
|
|
## 📋 Voraussetzungen
|
|
* Ein laufender Proxmox-Server
|
|
* Eine aktive Internetverbindung für den Host
|
|
* Ein Benutzerkonto bei [Binance (Affiliate)](https://www.binance.com/register?ref=175484526), wenn du mit `echtem Geld` arbeiten willst.
|
|
|
|
---
|
|
|
|
## 🏗️ Phase 1: Proxmox Host Vorbereitung (Docker LXC)
|
|
|
|
Für ein sauberes Setup nutzen wir ein Community-Skript, das uns einen perfekten Docker-Container als Basis erstellt.
|
|
|
|
**1. Skript ausführen**
|
|
Öffne die Proxmox-Shell (deines Nodes) und führe diesen Befehl aus:
|
|
```bash
|
|
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/docker.sh)"
|
|
```
|
|
|
|
**2. Installations-Wizard beantworten**
|
|
* **Type:** Wähle **Default Install**.
|
|
* **Storage:** Wähle den Laufwerks-Pool für den LXC (meistens `local` oder `local-lvm`).
|
|
* **Portainer (Optional):** Mit Enter überspringen (N), außer du möchtest eine zusätzliche Web-UI zur reinen Docker-Verwaltung.
|
|
* **Expose Docker TCP socket (insecure)?** Hier zwingend **n** (No) wählen und mit Enter bestätigen!
|
|
|
|
**3. IP notieren & absichern**
|
|
* Am Ende der Installation erscheint die Zeile `✔️ Network Connected: [DEINE_IP]`. **Notiere dir diese IP!**
|
|
* Gehe in Proxmox links auf deinen neuen Docker LXC und wechsle in die **>_ Konsole**.
|
|
* Da es hier um Finanzen geht, setzen wir sofort ein sicheres Root-Passwort:
|
|
```bash
|
|
passwd root
|
|
```
|
|
*(Passwort eingeben -> Enter -> Wiederholen -> Enter. Die Eingabe ist unsichtbar!)*
|
|
|
|
---
|
|
## 📁 Phase 2: Filebrowser installieren (Optional, aber empfohlen)
|
|
|
|
Damit du Configs und Strategien bequem über den Browser bearbeiten kannst, installieren wir einen Web-Dateimanager.
|
|
|
|
**1. Ordnerstruktur anlegen**
|
|
```bash
|
|
mkdir -p /opt/docker-projekte/filebrowser/config
|
|
mkdir -p /opt/docker-projekte/filebrowser/database
|
|
mkdir -p /opt/docker-projekte/freqtrade/
|
|
```
|
|
|
|
**2. Docker Compose für Filebrowser erstellen**
|
|
```bash
|
|
cd /opt/docker-projekte/filebrowser
|
|
nano docker-compose.yml
|
|
```
|
|
Füge diesen Block exakt so ein:
|
|
```yaml
|
|
services:
|
|
filebrowser:
|
|
image: filebrowser/filebrowser:latest
|
|
container_name: filebrowser
|
|
user: "0:0"
|
|
ports:
|
|
- "8081:8080"
|
|
volumes:
|
|
- /opt/docker-projekte:/srv
|
|
- /opt/docker-projekte/filebrowser/database:/database
|
|
- /opt/docker-projekte/filebrowser/config:/config
|
|
command: [
|
|
"--address", "0.0.0.0",
|
|
"--port", "8080",
|
|
"--database", "/database/filebrowser.db",
|
|
"--root", "/srv",
|
|
"--noauth=false"
|
|
]
|
|
restart: unless-stopped
|
|
```
|
|
*(Speichern mit `Strg+O` -> `Enter`, Schließen mit `Strg+X`)*
|
|
|
|
**3. Starten und Initial-Passwort auslesen**
|
|
```bash
|
|
docker compose up -d
|
|
docker logs filebrowser
|
|
```
|
|
Suche im Log nach: `User 'admin' initialized with randomly generated password: ...`
|
|
|
|
**4. Login**
|
|
* Öffne im Browser: `http://DEINE-IP-VOM-LXC:8081`
|
|
* Logge dich mit `admin` und dem zufälligen Passwort ein.
|
|
* **Wichtig:** Ändere das Passwort sofort in den Einstellungen (Zahnrad) auf ein sicheres Passwort (min. 12 Zeichen)!
|
|
|
|
---
|
|
* **Passwort ändern:** Klicke oben links auf deinen Benutzernamen **admin**, dann siehst du rechts die Felder um dein Passwort zu ändern (min. 12 Zeichen). Speichern nicht vergessen!
|
|
|
|
---
|
|
|
|
## 📈 Phase 3: Freqtrade Installation
|
|
*Weiter geht es direkt auf der **Konsole des LXC**.*
|
|
|
|
*Das Herzstück.*
|
|
|
|
> [!NOTE]
|
|
> Wenn du den Filebrowser aus [Phase 2](#-phase-2-filebrowser-installieren-optional-aber-empfohlen) nicht nutzen möchtest führe bitte folgendes aus
|
|
> ```bash
|
|
> mkdir -p /opt/docker-projekte/freqtrade/
|
|
> ````
|
|
|
|
**1. Basis herunterladen und anpassen**
|
|
Wir biegen die lokale IP sofort so um, dass die Web-UI von außen erreichbar ist.
|
|
```bash
|
|
cd /opt/docker-projekte/freqtrade/
|
|
curl https://raw.githubusercontent.com/freqtrade/freqtrade/stable/docker-compose.yml -o docker-compose.yml
|
|
sed -i 's/127.0.0.1/0.0.0.0/g' docker-compose.yml
|
|
```
|
|
|
|
**2. Verzeichnisse & Config erstellen**
|
|
```bash
|
|
docker compose run --rm freqtrade create-userdir --userdir user_data
|
|
docker compose run --rm freqtrade new-config --config user_data/config.json
|
|
```
|
|
|
|
**3. Der Setup-Wizard**
|
|
Beantworte die Fragen des Assistenten wie folgt (du kannst diese Werte später über den Filebrowser in der `config.json` anpassen):
|
|
> [!NOTE]
|
|
> Wenn du die Config eh nur direkt bearbeitest, kannst du auch alles mit enter bestätigen für das Grundgerüst.
|
|
|
|
* **Enable Dry-run (simulated trades)?** `Y` *(Immer erst ohne echtes Geld testen!)*
|
|
* **Insert your stake currency:** `USDC` *(USDC ist für Europa)*
|
|
* **Insert your stake amount:** `unlimited`
|
|
* **Insert max_open_trades:** `3` *(Guter Startwert)*
|
|
* **Timeframe Strategy:** Pfeiltaste runter zu `Override in configuration` -> Enter
|
|
* **Insert your desired timeframe:** `5m` *(Je nach Strategie)*
|
|
* **Display Currency for reporting:** `EUR`
|
|
* **Select exchange:** `binance` *(Oder deine gewünschte Börse)*
|
|
* **Trade Perpetual Swaps (Futures)?** `n` *(Zum Start zwingend Spot-Handel wählen!)*
|
|
* **Enable Telegram?** `y` *(Falls du Benachrichtigungen willst)*
|
|
* *Token:* Vom BotFather (`/newbot` auf Telegram, der Name muss auf Bot enden)
|
|
* *Chat ID:* Vom @userinfobot (Dort `/start` drücken)
|
|
* **Enable the Rest API (FreqUI)?** `y` *(Zwingend für die Web-Oberfläche!)*
|
|
* **Listen Address:** `0.0.0.0`
|
|
* **api-server username:** `freqtrader` *(Oder eigener Login-Name)*
|
|
* **api-server password:** `DeinSicheresPasswort`
|
|
|
|
Die Grund Konfiguration ist fertig
|
|
|
|
|
|
**4. Binance API-Key hinterlegen (WICHTIG)**
|
|
>[!WARNING]
|
|
>⚠️ ACHTUNG: Hardcore-Modus aktiviert
|
|
>
|
|
>Ab hier verlässt du die Testumgebung. Wir reden nicht mehr über Theorie, sondern über echtes Geld auf deinem Binance-Konto.
|
|
>
|
|
>Ein Tippfehler im Skript oder eine falsch konfigurierte Strategie kann dein Wallet schneller leeren, als du „Margin Call“ sagen kannst.
|
|
>
|
|
>Checkliste vor dem nächsten Schritt:
|
|
>
|
|
> Läuft der Bot wirklich stabil im Dry-Run?
|
|
>
|
|
> Sind deine API-Berechtigungen auf das Minimum begrenzt (kein Auszahlungsrecht!)?
|
|
>
|
|
> Bist du bereit, die Summe X im schlimmsten Fall zu verlieren?
|
|
>
|
|
>Überlege genau, was du tust. Ein Klick hier ist endgültig.
|
|
|
|
Bevor der Bot live handeln kann, musst du deine API-Keys in der `user_data/config.json` (über den Filebrowser) eintragen:
|
|
```json
|
|
"exchange": {
|
|
"name": "binance",
|
|
"key": "DEIN_API_KEY",
|
|
"secret": "DEIN_SECRET_KEY",
|
|
```
|
|
|
|
Und den Dry run (Demo) deaktivieren ebenfalls in der `user_data/config.json`.
|
|
```
|
|
"dry_run": false,
|
|
```
|
|
|
|
**API erstellen auf Binance:**
|
|
1. Gehe zu [Binance API Management](https://www.binance.com/de/my/settings/api-management).
|
|
2. "API erstellen" -> "Vom System generiert" -> Name vergeben.
|
|
3. **IP-Beschränkung:** Wähle "Zugriff auf vertrauenswürdige IPs beschränken" und gib deine öffentliche Internet-IP ein (findest du via [wieistmeineip.de](https://www.wieistmeineip.de/)).
|
|
4. **Sicherheit:** Aktiviere **NUR** "Lesezugriff" und "Spot- und Margin-Handel". Alles andere bleibt aus!
|
|
|
|
**4. Starten**
|
|
```bash
|
|
docker compose up -d
|
|
```
|
|
|
|
jetzt ist die WebUI von deinem BOT erreichbar über
|
|
```bash
|
|
http://DEINE-IP-VOM-LXC:8080/
|
|
```
|
|
|
|
Jetzt gehst du oben rechts auf Login
|
|
Dort gibst du ein wie der Bot heißen soll
|
|
API Url sollte http://DEINE-IP-VOM-LXC:8080 sollte schon drin stehen
|
|
jetzt noch die login Daten für deinen Bot die du in der Bot config erstellt hast
|
|
|
|
## 🎮 Phase 4: FreqUI Bedienung & Updates
|
|
|
|
**Web-Interface:** `http://DEINE-IP-VOM-LXC:8080/`
|
|
|
|
**Änderungen im laufenden Betrieb:**
|
|
* **Nur Config-Änderungen:** Du musst nicht auf die Konsole. Gehe in der WebUI oben auf **Trade**, klicke auf das **Kreis-mit-Pfeil Symbol (Reload Config)**. Der Bot lädt die Einstellungen sofort neu.
|
|
* **Strategie- oder System-Änderungen:** Wenn du Dateien komplett getauscht oder bearbeitet hast, nutze die LXC-Konsole:
|
|
```bash
|
|
cd /opt/docker-projekte/freqtrade
|
|
docker compose down && docker compose up -d
|
|
```
|
|
|
|
---
|
|
|
|
## Referenzen
|
|
Hier findest du die genutzten Quellen und Ressourcen.
|
|
|
|
[^1]: **Infrastruktur & Tools:** [Proxmox](https://www.proxmox.com/de/), [Community-Scripts](https://community-scripts.org/), [FileBrowser](https://filebrowser.org), [Portainer](https://docs.portainer.io)
|
|
**Trading & Exchange:** [Freqtrade](https://www.freqtrade.io/en/stable/), [Binance](https://www.binance.com/de)
|
|
**KI-Unterstützung:** [Gemini](https://gemini.google.com), [ChatGPT](https://chatgpt.com), [ClaudeAI](https://claude.ai)
|