Bots & Apps: Code, Umgebungsvariablen und Start
So kommt Ihr Discord-, Telegram- oder Twitch-Bot oder Ihre kleine App auf den Server: aus einem Git-Repository oder per Upload, mit Token in den Umgebungsvariablen und einem Startbefehl, den das Portal meist selbst erkennt.
Ihr Bot-Server hat zwei eigene Tabs: App für Laufzeit, Code und Start, und Umgebungsvariablen für Tokens und andere Einstellungen. Jede Änderung gilt ab dem nächsten Start; nach dem Speichern steht direkt daneben Jetzt neu starten.
Den Code auf den Server bringen
Unter App wählen Sie bei Code, woher er kommt:
- Git-Repository
- Tragen Sie die https-Adresse ein, etwa https://github.com/name/bot, und wenn nötig den Branch (leer: der Standard-Branch des Repositorys). Beim nächsten Start wird der Code geholt. Beim ersten Abruf ersetzt das Repository Dateien gleichen Namens; alle anderen Dateien bleiben.
- Hochladen
- Laden Sie Ihre Dateien im Tab Dateien hoch oder per SFTP (Tab Zugang). Ein Archiv wie .zip oder .tar.gz entpacken Sie im Datei-Manager.
Mit Bei jedem Start aktualisieren holt der Server vor jedem Start den neuesten Stand. Dateien des Repositorys, die Sie auf dem Server geändert haben, werden dabei nie überschrieben: Hat das Repository davon auch eine neue Fassung, startet der bisherige Stand, und die Konsole sagt es. Ist der Schalter aus, holen Sie den neuen Stand in der Übersicht mit Aktualisieren und neu starten.
Ein privates Repository
Legen Sie bei Ihrem Git-Anbieter einen Token mit Lesezugriff an, bei GitHub etwa einen Fine-grained Token, der nur dieses Repository mit „Contents: Read“ lesen darf.
Drücken Sie unter App bei Zugangstoken auf Token setzen, fügen Sie ihn ein und speichern Sie.
Starten Sie den Server neu.
Der Token wird verschlüsselt gespeichert, nur an den Server des Repositorys geschickt und nie wieder angezeigt; Sie können ihn ersetzen oder entfernen. Er steht weder in der Adresse noch in den Git-Einstellungen oder in der Umgebung des Servers: Bei einem Start aus dem Kundenbereich liegt er verschlüsselt bereit, wird nur zum Holen des Codes verwendet und ist gelöscht, bevor Abhängigkeiten installiert werden oder Ihr Programm startet. Startet der Server nach einem Absturz von selbst neu, holt er den Code eines privaten Repositorys dabei nicht neu. Wer Dateien bearbeiten darf, könnte den Start trotzdem verändern; nehmen Sie deshalb einen Token, der nur dieses eine Repository lesen darf. Zeigt die Adresse später auf einen anderen Anbieter, wird der Token entfernt.
Umgebungsvariablen
Tokens und Einstellungen gehören nicht in den Code, sondern in den Tab Umgebungsvariablen. Ihr Programm bekommt sie beim Start als Umgebung, etwa process.env.DISCORD_TOKEN in Node.js oder os.environ["DISCORD_TOKEN"] in Python. dotenv-Bibliotheken funktionieren damit weiter, auch ohne .env-Datei.
- Variable hinzufügen legt eine Zeile an; Namen schreiben Sie in Großbuchstaben.
- .env einfügen übernimmt den Inhalt Ihrer .env-Datei in die Liste. Namen wie TOKEN, SECRET oder PASSWORD werden dabei als geheim markiert.
- Ein geheimer Wert wird nie wieder angezeigt, auch Ihnen nicht, und nie ins Protokoll geschrieben; Sie können ihn nur ersetzen.
- Speichern übernimmt die ganze Liste. In der Aktivität stehen nur die Namen, nie die Werte.
- Wer mit Ihnen den Server teilt und Dateien bearbeiten oder den Start ändern darf, kann eigenen Code starten, der die Werte liest. Geben Sie diese Rechte nur Personen, denen Sie Ihre Tokens anvertrauen.
Zusätzlich als .env-Datei schreiben ist nur für Programme, die ausschließlich eine Datei lesen. Die Datei enthält dann alle Werte im Klartext, ist für jeden mit Dateirechten lesbar und liegt in jedem Backup.
Abhängigkeiten
Ist Abhängigkeiten beim Start installieren an, installiert der Server vor dem Start, was Ihr Code braucht, und nur dann, wenn sich die Liste oder die Version geändert hat:
- Node.js
npm cimit package-lock.json, sonstnpm install; mit pnpm-lock.yaml pnpm, mit yarn.lock Yarn.- Bun
bun install.- Python
pip install -r requirements.txtin eine eigene Umgebung (.venv) im Server-Ordner.- Go
go build, das Programm landet in .gf-app/app.- Java
- nichts: eine .jar-Datei bringt ihre Abhängigkeiten mit.
Der Startbefehl
Unter Startbefehl steht Automatisch voreingestellt. Der Server startet dann:
- Node.js:
npm start, wenn die package.json ein Skript start hat, sonst die Datei aus main, sonst index.js, main.js, bot.js oder app.js. - Bun:
bun run startoder die Datei aus main, sonst index.ts oder index.js. - Python: main.py, bot.py, app.py oder run.py.
- Java: app.jar oder die einzige .jar-Datei im Hauptordner.
- Go: das mit
go buildgebaute Programm.
Darunter stehen die Startdateien, die im Code gefunden wurden; ein Klick wählt eine. Mit Eigene Startzeile tragen Sie eine ganze Zeile ein, etwa node dist/bot.js --prod. Welche Zeile zuletzt lief, steht in der Übersicht unter Gestartet mit.
Port für Webhooks
Jeder Bot-Server hat einen Port. Ihr Programm findet ihn in der Umgebungsvariable PORT und muss an 0.0.0.0 lauschen; die öffentliche Adresse steht unter App bei Port. Ein Bot, der nur selbst Verbindungen aufbaut, etwa zu Discord oder zu Telegram mit Polling, braucht ihn nicht. Weitere Ports gibt es je nach Tarif unter Netzwerk.
Verwandte Artikel
- Bot startet nicht oder stürzt abWas die Übersicht und die Konsole über einen Bot sagen, der nicht startet, sich beendet oder abstürzt, und die häufigsten Gründe: ein fehlender Token, die falsche Startdatei, Abhängigkeiten und zu wenig Arbeitsspeicher.
- Laufzeit und Version eines Bot-Servers wechselnEine neuere Version derselben Laufzeit wählen Sie mit einem Klick unter App. Für eine andere Laufzeit, etwa von Node.js zu Python, gibt es Laufzeit wechseln: zum selben Preis, mit der Wahl, was aus Ihren Dateien wird.
- Dateien und SFTPDateien im Browser bearbeiten, hochladen und entpacken, oder mit FileZilla, WinSCP und Cyberduck per SFTP direkt auf den Server.
Hilfe gebraucht?
Wenn diese Anleitung Ihre Frage nicht beantwortet, schreiben Sie uns. Antwort in der Regel binnen 24 Stunden.