Konfiguration¶
Dieser Leitfaden behandelt alle Möglichkeiten, wie Sie d-back an Ihre Bedürfnisse anpassen können, von Befehlszeilenoptionen bis hin zu programmatischen Einstellungen und Umgebungsvariablen.
Einführung¶
d-back bietet flexible Konfigurationsoptionen zur Anpassung an verschiedene Bereitstellungsszenarien. Egal, ob Sie es während der Entwicklung über die Befehlszeile ausführen oder in eine größere Python-Anwendung integrieren, Sie haben volle Kontrolle über Serververhalten, Netzwerkeinstellungen und statische Dateiauslieferung.
Befehlszeilenoptionen¶
Beim Ausführen von d-back über die Befehlszeile können Sie sein Verhalten mit verschiedenen Optionen anpassen:
Verfügbare Optionen¶
| Option | Standard | Beschreibung | Beispiel |
|---|---|---|---|
--port |
3000 |
Port, auf dem der WebSocket-Server ausgeführt werden soll | d_back --port 8080 |
--host |
localhost |
Host, an den der Server gebunden werden soll | d_back --host 0.0.0.0 |
--static-dir |
Integriert | Verzeichnis, von dem statische Dateien ausgeliefert werden | d_back --static-dir ./my-frontend-build |
--version |
- | Versionsinformationen anzeigen | d_back --version |
Verwendungsbeispiele¶
Standardstart (localhost:3000):
Benutzerdefinierter Host und Port:
Dies macht den Server von anderen Maschinen in Ihrem Netzwerk aus zugänglich.
Benutzerdefiniertes statisches Verzeichnis:
Liefern Sie Ihre eigenen Frontend-Dateien anstelle der integrierten d-zone-Oberfläche aus.
Hilfe erhalten:
Alle verfügbaren Befehlszeilenoptionen anzeigen.
Version prüfen:
Als Modul ausführen
Sie können d-back auch als Python-Modul mit denselben Optionen ausführen:
Programmatische Konfiguration¶
Für mehr Kontrolle und Integration in Ihre Python-Anwendungen können Sie d-back programmatisch konfigurieren:
import asyncio
from d_back.server import WebSocketServer
async def main():
# Create server instance with custom settings
server = WebSocketServer(port=3000, host="localhost")
# Configure callbacks (optional)
server.on_get_user_data(my_user_data_callback)
server.on_get_server_data(my_server_data_callback)
# Start the server
print("Starting d-back server...")
await server.start()
asyncio.run(main())
Konstruktorparameter¶
Die WebSocketServer-Klasse akzeptiert die folgenden Parameter:
port(int, optional): Die Portnummer, auf der gelauscht werden soll. Standard ist3000.host(str, optional): Der Hostname oder die IP-Adresse, an die gebunden werden soll. Standard ist"localhost".
Wann programmatische Konfiguration verwenden¶
Verwenden Sie programmatische Konfiguration, wenn Sie:
- d-back in eine größere Python-Anwendung integrieren müssen
- Einstellungen basierend auf Laufzeitbedingungen dynamisch konfigurieren möchten
- Auf Server-Instanzmethoden und -Attribute zugreifen müssen
- Benutzerdefinierte Start-/Stopp-Logik implementieren möchten
Umgebungsvariablen¶
Obwohl d-back standardmäßig keine Umgebungsvariablen verwendet, können Sie es leicht erweitern, um umgebungsbasierte Konfiguration zu unterstützen:
import os
from d_back.server import WebSocketServer
# Example: Use environment variables
port = int(os.getenv('D_BACK_PORT', 3000))
host = os.getenv('D_BACK_HOST', 'localhost')
server = WebSocketServer(port=port, host=host)
Statische Dateiauslieferung¶
d-back enthält einen integrierten HTTP-Server für die Auslieferung statischer Dateien, was die Bereitstellung Ihres d-zone-Frontends oder anderer Web-Assets vereinfacht.
Standardverhalten¶
Standardmäßig liefert d-back statische Dateien aus seinem integrierten dist/-Verzeichnis aus, das das d-zone-Frontend enthält.
Benutzerdefiniertes statisches Verzeichnis¶
Um Ihre eigenen statischen Dateien auszuliefern:
Befehlszeile:
Programmatisch:
from pathlib import Path
server = WebSocketServer(port=3000, host="localhost")
server.static_dir = Path("./my-frontend-build")
Mock-Server-Konfiguration¶
d-back kommt mit vorkonfigurierten Mock-Discord-Servern für Entwicklung und Tests. Diese Server bieten realistische Benutzerdaten ohne Discord-API-Anmeldeinformationen zu benötigen.
Verfügbare Mock-Server¶
| Servername | Server-ID | Beschreibung | Benutzeranzahl |
|---|---|---|---|
| d-world-Server | 232769614004748288 |
Haupt-Entwicklungsserver mit vielfältiger Benutzeraktivität | 4 Benutzer |
| docs-Server | 482241773318701056 |
Dokumentationsserver mit moderater Aktivität | 1 Benutzer |
| oauth2-Server | 123456789012345678 |
Geschützter Server zum Testen von OAuth2-Flows | 1 Benutzer |
| my repos-Server | 987654321098765432 |
Repository-Showcase-Server | 21 Benutzer |
Server-Lebenszyklus¶
Server starten¶
Methode 1: start()
Methode 2: run_forever()
Server stoppen¶
Ordnungsgemäßes Herunterfahren:
Schließt alle aktiven Verbindungen und stoppt den Server sauber.Best Practices¶
Netzwerkkonfiguration¶
Entwicklung vs Produktion
- Entwicklung: Verwenden Sie
localhost, um den Zugriff nur auf Ihren Rechner zu beschränken - Produktion: Verwenden Sie
0.0.0.0, um Verbindungen von jeder Netzwerkschnittstelle zu akzeptieren
Konfigurationsverwaltung¶
- Verwenden Sie Umgebungsvariablen für bereitstellungsspezifische Einstellungen
- Verwenden Sie programmatische Konfiguration für komplexe oder dynamische Setups
- Dokumentieren Sie Ihre Konfiguration in README oder Bereitstellungsleitfäden
- Halten Sie Geheimnisse sicher: Niemals API-Schlüssel oder Tokens fest codieren
Was kommt als Nächstes?¶
Jetzt, da Sie verstehen, wie Sie d-back konfigurieren, lernen Sie, wie Sie sein Verhalten anpassen:
- Callbacks & Anpassung: Standardverhalten mit benutzerdefinierten Callbacks überschreiben
- Benutzerdefinierte Datenanbieter: Mock-Daten durch echte Quellen ersetzen
- API-Referenz: Detaillierte API-Dokumentation