Überwacht ein Forum und crosspostet in einen Channel.
- Dependencies installieren:
npm install. - Beim secret management einloggen:
npx infisical loginmit https://secrets.dachstein.cloud/ als instance URL. - Lokale infisical config erstellen:
npx infisical init. - Mit
npm run devden Bot gegen die Dev Umgebung starten. Nutzenpm start(mit Produktionsdaten) für live deployments.
Umgebungsvariablen (aus Infisical):
DISCORD_BOT_TOKEN- Bot TokenDISCORD_GUILD_ID- Discord Server ID, auf der der Bot arbeiten sollDISCORD_PROGRESS_CHANNEL_ID- Channel, der die Crossposts erhalten sollDISCORD_PROGRESS_FORUM_ID- Forum, das überwacht werden sollMONGO_URI- MongoDB connection string für Persistenz der Crosspost MappingsMONGO_REMOVE_AFTER_DAYS- Anzahl Tage nach denen Crosspost-Records gelöscht werden (negativ: alle löschen,0: deaktiviert)
- Wartet auf neue Forum Posts und crossposted diese dann mit einem Header in den konfigurierten Channel
- Synchronisiert Bearbeitungen an Inhalt und Titel
- Selbiges auch für Antworten in Forum Threads
- Löscht den Crosspost, wenn das Original gelöscht wird
- Speichert eine Crosspost-Map in der Datenbank
- Zusätzliche Action Queue verhindert desynchronisation
- Jeder Thread erhält eine zufällige Farbe, die alle dazugehörigen Nachrichten bekommen
Das beigefügte Dockerfile baut ein Image mit Infisical-CLI und startet den Bot via infisical run -- node index.js.
Build:
docker build -t btede-bot .Run (Infisical-Login/Config bereitstellen, z.B. via gemountetem ~/.infisical oder env-Variablen):
docker run --env-file .env -v $HOME/.infisical:/root/.infisical -it btede-bot