chiefgyk3dx/stream-daemon

By chiefgyk3dx

Updated 8 days ago

Automates Twitch, Kick, and YouTube stream notifications to Mastodon, Bluesky, Discord, and Matrix.

Image
Networking
Machine learning & AI
Monitoring & observability
0

2.0K

chiefgyk3dx/stream-daemon repository overview

Stream Daemon

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.

🚀 Quick Start

docker pull chiefgyk3dx/stream-daemon:latest
docker run -d \
  --name stream-daemon \
  --restart unless-stopped \
  --env-file .env \
  chiefgyk3dx/stream-daemon:latest

✨ Features

  • 7 Platform Support - Twitch, YouTube, Kick, TikTok + Mastodon, Bluesky, Discord, Matrix
  • AI-Powered Messages - Optional Google Gemini integration for dynamic notifications
  • Secrets Management - Doppler, AWS Secrets Manager, HashiCorp Vault support
  • Multi-Architecture - Supports linux/amd64 and linux/arm64
  • Production Ready - Health checks, auto-restart, comprehensive logging

📋 Environment Variables

Streaming Platforms (Enable at least one)

Twitch:

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
Social Platforms (Enable at least one)

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
AI/LLM Integration (Optional)

Google Gemini:

LLM_ENABLE=True
LLM_PROVIDER=gemini
LLM_GEMINI_API_KEY=your_api_key
LLM_GEMINI_MODEL=gemini-2.0-flash-lite
Settings
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
Secrets Management (Optional)

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

🐳 Docker Compose

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

📖 Full Documentation

🔐 Secrets Management

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

🆘 Support

📝 License

MPL 2.0 License - See https://github.com/ChiefGyk3D/Stream-Daemon/blob/main/LICENSE.md


Made with ❤️ by ChiefGyk3D

Tag summary

Content type

Image

Digest

sha256:93ddfb22b

Size

193.6 MB

Last updated

8 days ago

docker pull chiefgyk3dx/stream-daemon