-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
106 lines (102 loc) · 3.83 KB
/
docker-compose.yml
File metadata and controls
106 lines (102 loc) · 3.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# Development Docker Compose - Builds images locally
services:
minecraft-spectator-bot:
build:
context: ./bot
dockerfile: Dockerfile
container_name: minecraft-spectator-bot
environment:
- MINECRAFT_USERNAME=${MINECRAFT_USERNAME}
- SERVER_HOST=${SERVER_HOST:-mc.example.com}
- SERVER_PORT=${SERVER_PORT:-25565}
- AZURE_CLIENT_ID=${AZURE_CLIENT_ID}
- CAMERA_MODE=${CAMERA_MODE:-third-person}
- CAMERA_UPDATE_INTERVAL_MS=${CAMERA_UPDATE_INTERVAL_MS:-2000}
- CAMERA_DISTANCE=${CAMERA_DISTANCE:-8}
- CAMERA_HEIGHT=${CAMERA_HEIGHT:-4}
- CAMERA_FIXED_ANGLE=${CAMERA_FIXED_ANGLE:-0}
- CHECK_INTERVAL_MS=${CHECK_INTERVAL_MS:-5000}
- SWITCH_INTERVAL_MS=${SWITCH_INTERVAL_MS:-30000}
- SPECTATOR_PORT=${SPECTATOR_PORT:-3000}
- VIEWER_VIEW_DISTANCE=${VIEWER_VIEW_DISTANCE:-6}
- AUTH_CACHE_DIR=/app/config/.auth
- MSAL_AUTHORITY=${MSAL_AUTHORITY:-https://login.microsoftonline.com/consumers}
volumes:
- minecraft-bot-auth:/app/config/.auth
- ./bot/logs:/app/logs
- ./bot/spectator-bot.js:/app/spectator-bot.js:ro
- ./bot/package.json:/app/package.json:ro
- shared-config:/app/config/shared
restart: unless-stopped
networks:
- minecraft-streaming
streaming-service:
build:
context: ./streaming
dockerfile: Dockerfile
container_name: minecraft-streaming-service
# Uncomment for Intel iGPU hardware encoding
# devices:
# - /dev/dri:/dev/dri
environment:
- YOUTUBE_STREAM_KEY=${YOUTUBE_STREAM_KEY}
- TWITCH_STREAM_KEY=${TWITCH_STREAM_KEY}
- STREAM_PLATFORM=${STREAM_PLATFORM:-youtube}
- YOUTUBE_INGEST_METHOD=${YOUTUBE_INGEST_METHOD:-rtmp}
- YOUTUBE_INGEST_URL=${YOUTUBE_INGEST_URL:-rtmp://a.rtmp.youtube.com/live2}
- YOUTUBE_HLS_URL=${YOUTUBE_HLS_URL:-}
- YOUTUBE_HLS_HTTP_METHOD=${YOUTUBE_HLS_HTTP_METHOD:-PUT}
- YOUTUBE_OUTPUT_WIDTH=${YOUTUBE_OUTPUT_WIDTH:-1280}
- YOUTUBE_OUTPUT_HEIGHT=${YOUTUBE_OUTPUT_HEIGHT:-720}
- YOUTUBE_VIDEO_BITRATE=${YOUTUBE_VIDEO_BITRATE:-2500k}
- YOUTUBE_MAXRATE=${YOUTUBE_MAXRATE:-2500k}
- YOUTUBE_BUFSIZE=${YOUTUBE_BUFSIZE:-5000k}
- YOUTUBE_FRAMERATE=${YOUTUBE_FRAMERATE:-30}
- DISPLAY_WIDTH=${DISPLAY_WIDTH:-1280}
- DISPLAY_HEIGHT=${DISPLAY_HEIGHT:-720}
- USE_HARDWARE_ENCODING=${USE_HARDWARE_ENCODING:-true}
- VAAPI_DEVICE=${VAAPI_DEVICE:-/dev/dri/renderD128}
- ENCODER_PRESET=${ENCODER_PRESET:-faster}
- ENABLE_OVERLAY=${ENABLE_OVERLAY:-true}
- OVERLAY_FONT_SIZE=${OVERLAY_FONT_SIZE:-24}
- OVERLAY_POSITION=${OVERLAY_POSITION:-top-left}
- ENABLE_MUSIC=${ENABLE_MUSIC:-true}
- MUSIC_DIR=${MUSIC_DIR:-/app/music}
- MUSIC_VOLUME=${MUSIC_VOLUME:-0.3}
- SPECTATOR_URL=http://minecraft-spectator-bot:3000
- MUMBLE_SERVER=minecraft-mumble-server
- MUMBLE_PORT=64738
volumes:
- ./streaming/config:/app/config
- ./streaming/logs:/app/logs
- ./streaming/music:/app/music
- ./streaming/capture-viewer.js:/app/capture-viewer.js:ro
- ./streaming/streaming-service.py:/app/streaming-service.py:ro
- shared-config:/app/shared
depends_on:
- minecraft-spectator-bot
- mumble-server
restart: unless-stopped
networks:
- minecraft-streaming
mumble-server:
image: mumblevoip/mumble-server:latest
container_name: minecraft-mumble-server
ports:
- "${MUMBLE_PORT:-64738}:64738/tcp"
- "${MUMBLE_PORT:-64738}:64738/udp"
environment:
- MUMBLE_SUPERUSER_PASSWORD=${MUMBLE_SUPERUSER_PASSWORD:-changeme}
volumes:
- ./mumble/config:/data
restart: unless-stopped
networks:
- minecraft-streaming
volumes:
minecraft-bot-auth:
driver: local
shared-config:
driver: local
networks:
minecraft-streaming:
driver: bridge