stream-daemon
Automates Twitch, Kick, and YouTube stream notifications to Mastodon, Bluesky, Discord, and Matrix.
2.0K
Automate your streaming notifications across 7 social platforms
Stream Daemon monitors Twitch, YouTube, Kick, and TikTok streams, then automatically posts live notifications and end-of-stream messages to Mastodon, Bluesky, Discord, and Matrix.
docker pull chiefgyk3dx/stream-daemon:latest
docker run -d \
--name stream-daemon \
--restart unless-stopped \
--env-file .env \
chiefgyk3dx/stream-daemon:latest
linux/amd64 and linux/arm64Twitch:
TWITCH_ENABLE=True
TWITCH_USERNAME=your_username
TWITCH_CLIENT_ID=your_client_id
TWITCH_CLIENT_SECRET=your_client_secret
YouTube:
YOUTUBE_ENABLE=True
YOUTUBE_CHANNEL_ID=your_channel_id
YOUTUBE_API_KEY=your_api_key
# OR use username instead of channel ID
YOUTUBE_USERNAME=@YourHandle
Kick:
KICK_ENABLE=True
KICK_USERNAME=your_username
TikTok:
TIKTOK_ENABLE=True
TIKTOK_USERNAME=your_username
Mastodon:
MASTODON_ENABLE_POSTING=True
MASTODON_API_BASE_URL=https://mastodon.social
MASTODON_CLIENT_ID=your_client_id
MASTODON_CLIENT_SECRET=your_client_secret
MASTODON_ACCESS_TOKEN=your_access_token
Bluesky:
BLUESKY_ENABLE_POSTING=True
BLUESKY_HANDLE=yourname.bsky.social
BLUESKY_APP_PASSWORD=your_app_password
Discord:
DISCORD_ENABLE_POSTING=True
DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/YOUR_WEBHOOK
Matrix:
MATRIX_ENABLE_POSTING=True
MATRIX_HOMESERVER=https://matrix.org
MATRIX_USERNAME=@bot:matrix.org
MATRIX_PASSWORD=your_password
MATRIX_ROOM_ID=!roomid:matrix.org
Google Gemini:
LLM_ENABLE=True
LLM_PROVIDER=gemini
LLM_GEMINI_API_KEY=your_api_key
LLM_GEMINI_MODEL=gemini-2.0-flash-lite
SETTINGS_POST_INTERVAL=60 # Minutes between posts when live
SETTINGS_CHECK_INTERVAL=5 # Minutes between stream checks when offline
SETTINGS_LOG_LEVEL=INFO # DEBUG, INFO, WARNING, ERROR
Doppler:
SECRETS_SECRET_MANAGER=doppler
DOPPLER_TOKEN=dp.st.prd.xxxx
DOPPLER_CONFIG=prd
AWS Secrets Manager:
SECRETS_SECRET_MANAGER=aws
AWS_REGION=us-east-1
SECRETS_AWS_TWITCH_SECRET_NAME=prod/stream-daemon/twitch
SECRETS_AWS_MASTODON_SECRET_NAME=prod/stream-daemon/mastodon
# Credentials via IAM role or environment variables
HashiCorp Vault:
SECRETS_SECRET_MANAGER=vault
SECRETS_VAULT_URL=https://vault.example.com
SECRETS_VAULT_TOKEN=your_vault_token
SECRETS_VAULT_TWITCH_SECRET_PATH=secret/data/stream-daemon/twitch
SECRETS_VAULT_MASTODON_SECRET_PATH=secret/data/stream-daemon/mastodon
version: '3.8'
services:
stream-daemon:
image: chiefgyk3dx/stream-daemon:latest
container_name: stream-daemon
restart: unless-stopped
env_file: .env
volumes:
- ./messages.txt:/app/messages.txt
- ./end_messages.txt:/app/end_messages.txt
Use Doppler, AWS Secrets Manager, or HashiCorp Vault for production:
docker run -d \
--name stream-daemon \
-e SECRETS_SECRET_MANAGER=doppler \
-e DOPPLER_TOKEN=dp.st.prd.xxxx \
-e TWITCH_ENABLE=True \
-e TWITCH_USERNAME=your_username \
chiefgyk3dx/stream-daemon:latest
MPL 2.0 License - See https://github.com/ChiefGyk3D/Stream-Daemon/blob/main/LICENSE.md
Made with ❤️ by ChiefGyk3D
Content type
Image
Digest
sha256:93ddfb22b…
Size
193.6 MB
Last updated
8 days ago
docker pull chiefgyk3dx/stream-daemon