Leuke sticker bot voor de feuten
- NodeJS >= 17
- Docker
- Docker-Compose
De bot heeft een aantal environment variables nodig om te kunnen draaien, deze zijn:
key | value |
---|---|
TELEGRAM_TOKEN | Een Telegram API bot token |
DATABASE_URL | De postgresql connection string (in te stellen in docker-compose.yml) |
ADMIN | Telegram ID voor de gebruiker met admin rechten (vind je id met de /tid command) |
GEOCODER_KEY | API sleutel van LocationIQ, voor de geocoder |
PHOTO_PATH | Pad naar de map waar de fotos opgeslagen moet worden (bijv. ./photos) |
Om de bot lokaal te draaien start je eerst de database op met
docker-compose up
Daarna kan je de bot opstarten met
npm run dev
Om in de database te kijken kan je prisma studio gebruiken
npx prisma studio
Deze bot 24/7 draaien is een fluitje van een cent, aangezien alles al in docker draait.
Het enige waar je voor moet zorgen is een postgresql database, entry.sh
zorgt ervoor dat de database in orde is. Als eerst bouw je de docker container:
docker build --tag invictus-bot -f Dockerfile-prod .
Daarna kan je deze draaien met
docker run -it invictus-bot -e TELEGRAM_TOKEN "telegram token" -e DATABASE_URL "database url" -e ADMIN "admin id" -e GEOCODER_KEY "geocoder api sleutel" -e PHOTO_PATH "/pad/naar/foto/map" invictus-bot
Bestanden gemaakt in docker containers worden opgeslagen op specifieke plekken, dit kan afgevangen worden in een volume als je dat wilt.
Container | Path |
---|---|
Postgresql | /var/lib/postgresql/data |
Bot | /app/photos |