-
Notifications
You must be signed in to change notification settings - Fork 14
/
Copy pathdocker-compose.yml
113 lines (104 loc) · 2.9 KB
/
docker-compose.yml
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
107
108
109
110
111
112
version: "3"
services:
networksandbox:
image: k8s.gcr.io/pause
eos1100d:
privileged: true
image: nixery.dev/shell/ffmpeg/gphoto2
command:
- sh
- -c
- |
gphoto2 --stdout --capture-movie \
| ffmpeg -i - -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 /dev/video9
v4l2loopback:
privileged: true
image: alpine
command: modprobe v4l2loopback video_nr=8,9 card_label=OBS,EOS1100D
volumes:
- /lib/modules:/lib/modules
alsaloopback:
privileged: true
image: alpine
command: modprobe snd-aloop index=9 id=Loopback pcm_substreams=1
volumes:
- /lib/modules:/lib/modules
obs:
privileged: true
network_mode: "service:networksandbox"
ipc: host
build:
context: obs-studio
dockerfile: Dockerfile.${OBS_IMAGE_DISTRO-ubuntu}
environment:
- DISPLAY
- HOME
- USER
- XAUTHORITY
volumes:
- /tmp/.X11-unix/:/tmp/.X11-unix/
- $HOME/.config/obs-studio:$HOME/.config/obs-studio
- $HOME/.fonts/:$HOME/.fonts/
- $XAUTHORITY:$XAUTHORITY:ro
- /etc/passwd:/etc/passwd:ro
- /etc/shadow:/etc/shadow:ro
- /etc/group:/etc/group:ro
- /run/user/$UID/pulse/:/var/run/pulse/
- ./data/:/data/
- /usr/lib/x86_64-linux-gnu/:/local-libraries/:ro
# Directory containing e.g. images, videos, etc. used in OBS scenes
#- $HOME/Documents/streaming-assets:$HOME/Documents/streaming-assets
command:
- sh
- -c
- |
chown ${UID:?please 'export UID'} $HOME/.config/obs-studio
chown ${UID:?please 'export UID'} $HOME
xset -dpms
xset s off
if [ -d /local-libraries ]; then
cp -a /local-libraries/libnv* /usr/lib/x86_64-linux-gnu/
cp -a /local-libraries/nvidia/current/* /usr/lib/x86_64-linux-gnu/
fi
mkdir -p $HOME/.config/obs-studio/plugins
[ -d $HOME/.config/obs-studio/plugins/obs-linuxbrowser ] ||
ln -sf /src/obs-linuxbrowser $HOME/.config/obs-studio/plugins/obs-linuxbrowser
exec su $USER sh -c "exec obs"
streamdeck:
privileged: true
network_mode: "service:networksandbox"
build: streamdeck
environment:
- DISPLAY
- HOME
- USER
- PATH=/scripts:/usr/local/bin:/usr/bin:/bin
volumes:
- /tmp/.X11-unix/:/tmp/.X11-unix/
- $HOME/.config/streamdeck_ui:$HOME
- /etc/passwd:/etc/passwd:ro
- /etc/shadow:/etc/shadow:ro
- /etc/group:/etc/group:ro
- ./bin/:/scripts/:ro
- ./data/:/data/
- /home/jp/recordings/:/recordings/:ro
working_dir: /data
command:
- sh
- -c
- |
chown ${UID:?please 'export UID'} $HOME
exec su -G input -G video $USER sh -c "exec streamdeck"
countdown:
image: python:3
volumes:
- /etc/passwd:/etc/passwd:ro
- /etc/shadow:/etc/shadow:ro
- ./bin:/usr/local/bin
- ./data/:/data/
working_dir: /data
command:
- sh
- -c
- |
exec su $USER sh -c "exec countdown _"