services.yml 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380
  1. ---
  2. jlab:
  3. host: stachelbeere
  4. docker:
  5. build: jlab
  6. image: jlab
  7. ports: 80:8888
  8. volumes:
  9. - /opt/jlab/notebooks:/root/notebooks
  10. domoticz:
  11. host: himbeere
  12. fqdn: domo.cere.duckdns.org
  13. docker:
  14. build: domoticz
  15. image: domoticz
  16. #~ image: domoticz/domoticz:stable
  17. volumes:
  18. # - /etc/localtime:/etc/localtime
  19. # - /mnt/ssdext/data/domoticz/domoticz.db:/root/domoticz/domoticz.db
  20. - /mnt/ssdext/data/domoticz:/opt/domoticz/userdata
  21. ports: 8080:80
  22. devices: /dev/ttyUSB0
  23. extra_hosts:
  24. # reaching graphite-ingest locally
  25. # if we use FQDN - nginx (ngp) has a high load
  26. # maybe HTTPS decryption is slow on raspi 3 (himbeere)
  27. host.docker.internal: host-gateway
  28. env:
  29. TZ: Europe/Amsterdam
  30. WWW_PORT: 80
  31. commands:
  32. backup_db: /bin/bash -c "cp -p /opt/domoticz/userdata/domoticz.db /opt/domoticz/userdata/domoticz.db.`date +%Y.%m.%d.%H.%M.%S`"
  33. cleanup_meter_values: python3 /fix_meter_values.py
  34. grafana:
  35. host: himbeere
  36. fqdn: grafana.cere.duckdns.org
  37. docker:
  38. image: grafana/grafana-oss
  39. env:
  40. VIRTUAL_PORT: 3000
  41. volumes:
  42. # see https://grafana.com/docs/grafana/v9.0/setup-grafana/configure-docker/#default-paths
  43. - /mnt/ssdext/data/grafana/data:/var/lib/grafana
  44. - /mnt/ssdext/data/grafana/log:/var/log/grafana
  45. - /mnt/ssdext/data/grafana/plugins:/var/lib/grafana/plugins
  46. graphite: # https://hub.docker.com/r/graphiteapp/graphite-statsd/
  47. host: himbeere
  48. fqdn: graphite.cere.duckdns.org
  49. docker:
  50. build: graphite
  51. #~ image: graphiteapp/graphite-statsd
  52. volumes:
  53. - /mnt/ssdext/data/graphite/storage:/opt/graphite/storage
  54. - /mnt/ssdext/data/graphite/log:/var/log
  55. - /mnt/ssdext/data/graphite/redis:/var/lib/redis
  56. #~ - /mnt/ssdext/data/graphite/logs:/var/log/supervisor
  57. ports:
  58. - 0.0.0.0:8125:8125/udp
  59. #~ env:
  60. #~ GRAPHITE_STATSD_HOST: 0.0.0.0
  61. commands:
  62. # dump incoming udp traffic
  63. dump_8125: tcpdump -i eth0 udp port 8125 -vv -X
  64. # dump outgoing traffic - see bucky.conf/statsd_flush_time
  65. #~ dump_2003: tcpdump -i eth0 tcp port 2003 -vv -X
  66. # tail bucky logs
  67. #~ tail_bucky: supervisorctl tail bucky
  68. graphite-ingest: # ingest data into graphite via http
  69. fqdn: ingest.cere.duckdns.org
  70. docker:
  71. build: graphite-ingest
  72. #~ links: graphite:graphite
  73. init: true
  74. ports:
  75. # accessed from domoticz
  76. - 0.0.0.0:25080:80
  77. env:
  78. STATSD_HOST: host.docker.internal
  79. extra_hosts:
  80. host.docker.internal: host-gateway
  81. commands:
  82. test_8125: /bin/bash -c 'echo "deploys.test.myservice:1|c" | nc -w 1 -u host.docker.internal 8125'
  83. netdata:
  84. host: himbeere
  85. #~ fqdn: netdata.cere.duckdns.org
  86. docker:
  87. hostname: himbeere
  88. build: netdata
  89. # image: reneluria/netdata
  90. cap_add: SYS_PTRACE
  91. volumes:
  92. - /proc:/host/proc:ro
  93. - /sys:/host/sys:ro
  94. - /var/run/docker.sock:/var/run/docker.sock
  95. ports: 0.0.0.0:19999:19999
  96. # https://github.com/mkueper/rpi-svn
  97. svn:
  98. host: himbeere
  99. docker:
  100. build: svn
  101. volumes:
  102. - /mnt/ssdext/data/svn:/var/svn
  103. ports: 3690:3690
  104. stop_signal: SIGKILL
  105. ngp: # nginx proxy with lets encrypt
  106. host: himbeere
  107. docker:
  108. - name: nginx-proxy
  109. build: ngp
  110. ports: 192.168.178.43:1080:80, 192.168.178.43:1443:443
  111. volumes:
  112. - /usr/share/nginx/html
  113. - /mnt/ssdext/data/nginx/htpasswd:/etc/nginx/htpasswd \
  114. - /var/run/docker.sock:/tmp/docker.sock:ro
  115. - /mnt/ssdext/data/nginx/certs:/etc/nginx/certs:ro
  116. # see https://github.com/jwilder/nginx-proxy#per-virtual_host
  117. - /mnt/ssdext/data/nginx/vhost.d:/etc/nginx/vhost.d:ro
  118. labels:
  119. com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy: "true"
  120. commands:
  121. nginx_conf:
  122. method: exec
  123. cmd: cat /etc/nginx/conf.d/default.conf
  124. docs: show dockergen-generated config
  125. - name: ngp_le
  126. build: ngp_le
  127. volumes_from: nginx-proxy
  128. volumes:
  129. - /mnt/ssdext/data/nginx/certs:/etc/nginx/certs:rw
  130. - /var/run/docker.sock:/var/run/docker.sock:ro
  131. - /mnt/ssdext/data/nginx/vhost.d:/etc/nginx/vhost.d:rw
  132. piusv:
  133. host: himbeere
  134. docker:
  135. build: piusv
  136. devices: /dev/i2c-1
  137. # S.USV Daemon started..
  138. # Kann nicht auf export schreiben!
  139. # : Read-only file system
  140. privileged: true
  141. volumes: /mnt/ssdext/data/piusv/log:/var/log/
  142. commands:
  143. # Zwei I²C-Adressen sind im Einsatz – 0x0F für die S.USV und 0x68 für die Real Time Clock,
  144. # die sich auf der S.USV befindet
  145. i2cdetect: i2cdetect -y 1
  146. # Der S.USV Daemon erstellt ein Protokoll in der Datei: /var/log/susvd.log
  147. usv_logs: tail -f -n 100 /var/log/susvd.log
  148. rsync:
  149. host: himbeere
  150. docker:
  151. build: rsync
  152. volumes:
  153. - /etc/localtime:/etc/localtime
  154. - /mnt/ssdext/data:/opt/from
  155. - /mnt/hddext/backup:/opt/to
  156. restart_policy:
  157. always: 3
  158. gogs: # git server with wiki
  159. host: himbeere
  160. fqdn: git.cere.duckdns.org
  161. docker:
  162. image: gogs/gogs-rpi
  163. volumes: /mnt/ssdext/data/gogs:/data
  164. ports: 3022:22
  165. env:
  166. VIRTUAL_PORT: 3000
  167. healthcheck:
  168. test: curl -I --silent http://localhost:3000 | grep "404 Not Found"
  169. interval: 10 # seconds
  170. alexa: # https://alexa.amazon.de
  171. fqdn: alexa.cere.duckdns.org
  172. host: himbeere
  173. docker:
  174. build: alexa
  175. env:
  176. DOMO_ALEXA_PW: ibm92buVQ12nhipkP4fg
  177. matrix-zmq:
  178. host: waldbeere
  179. docker:
  180. init: true
  181. build: matrix-zmq
  182. # matrix driver needs access to /dev/mem
  183. privileged: true
  184. ports: 1337:1337
  185. # --led-slowdown-gpio=2 --led-pwm-lsb-nanoseconds=50
  186. command: '--led-pixel-mapper=Rotate:180 --led-pwm-dither-bits=2 --led-pwm-lsb-nanoseconds=100 --led-gpio-mapping=adafruit-hat-pwm --led-show-refresh --led-brightness=80 --led-cols=192 --led-rows=32 --zmq-endpoint=tcp://*:1337'
  187. matrix-ft:
  188. host: blaubeere
  189. docker:
  190. init: true
  191. build: flaschentaschen
  192. # matrix driver needs access to /dev/mem
  193. privileged: true
  194. ports: 1337:1337/udp
  195. # --led-pwm-dither-bits=1
  196. command: '/server --layer-timeout 3600 --led-pixel-mapper=Rotate:180 --led-rows=64 --led-cols=192 --led-brightness=60 --led-slowdown-gpio=3 --led-show-refresh --led-pwm-lsb-nanoseconds=150'
  197. commands:
  198. d_life: /root/ft-demos/life -g 192x64 -d 50
  199. d_matrix: /root/ft-demos/matrix -g 192x64
  200. d_quilt: /root/ft-demos/quilt -g 192x64
  201. d_fractal: /root/ft-demos/fractal -g 192x64
  202. d_hack: /root/ft-demos/hack -g 192x64
  203. d_midi: /root/ft-demos/midi -g 192x64
  204. d_maze: /root/ft-demos/maze -g 192x64
  205. d_plasma: /root/ft-demos/plasma -g 192x64
  206. d_lines: /root/ft-demos/lines -g 192x64 -a one
  207. d_boxes: /root/ft-demos/blur -g 192x64 boxes
  208. d_bolt: /root/ft-demos/blur -g 192x64 bolt
  209. d_sierpinski: /root/ft-demos/sierpinski -g 192x64
  210. matrix-ft-brom:
  211. host: brombeere
  212. docker:
  213. init: true
  214. build: flaschentaschen
  215. # matrix driver needs access to /dev/mem
  216. privileged: true
  217. ports: 1337:1337/udp
  218. # --led-pwm-dither-bits=1
  219. command: '/server --layer-timeout 36000 --led-rgb-sequence=BRG --led-rows=64 --led-cols=128 --led-parallel=2 --led-brightness=60 --led-slowdown-gpio=1 --led-show-refresh --led-pwm-lsb-nanoseconds=180'
  220. commands:
  221. d_life: /root/ft-demos/life -g 128x128 -d 50
  222. d_matrix: /root/ft-demos/matrix -g 128x128
  223. d_quilt: /root/ft-demos/quilt -g 128x128
  224. d_fractal: /root/ft-demos/fractal -g 128x128
  225. d_hack: /root/ft-demos/hack -g 128x128
  226. d_midi: /root/ft-demos/midi -g 128x128
  227. d_maze: /root/ft-demos/maze -g 128x128
  228. d_plasma: /root/ft-demos/plasma -g 128x128
  229. d_lines: /root/ft-demos/lines -g 128x128 -a one
  230. d_boxes: /root/ft-demos/blur -g 128x128 boxes
  231. d_bolt: /root/ft-demos/blur -g 128x128 bolt
  232. d_sierpinski: /root/ft-demos/sierpinski -g 128x128
  233. matrix-brom:
  234. host: blaubeere
  235. docker:
  236. init: true
  237. build: matrix/light
  238. import: pixel
  239. # matrix driver needs access to /dev/mem
  240. privileged: true
  241. # ports: 10000:10000/udp, 10001:10001/udp
  242. volumes:
  243. - /opt/pixel:/pixel
  244. env:
  245. LED_ROWS: 64
  246. LED_COLS: 64
  247. commands:
  248. # some rotating square
  249. demo00: examples-api-use/demo --led-rows=64 --led-cols=64 --led-show-refresh -D 0
  250. matrix: # interface with RGB LED-Matrix
  251. host: waldbeere
  252. docker:
  253. init: true
  254. build: matrix/fat
  255. # matrix driver needs access to /dev/mem
  256. privileged: true
  257. ports: 17888:8888, 10000:10000/udp, 10001:10001/udp
  258. volumes:
  259. - /opt/jupyter/notebooks:/root/notebooks
  260. - /opt/jupyter/config:/root/.local
  261. - /opt/jupyter/config_root:/root/.jupyter
  262. - /opt/jupyter/config_ipy_root:/root/.ipython
  263. - /opt/pixel:/pixel
  264. commands:
  265. # some rotating square
  266. demo00: examples-api-use/demo -c 6 -R 180 --led-show-refresh -D0
  267. # forward scrolling an image
  268. demo01: examples-api-use/demo -c 6 -R 180 --led-show-refresh -D1 examples-api-use/runtext.ppm
  269. # test image
  270. demo03: examples-api-use/demo -c 6 -R 180 -D3
  271. # Abelian sandpile model (-m <time-step-ms>)
  272. demo06: examples-api-use/demo -c 6 -R 180 -D6
  273. # Conway's game of life (-m <time-step-ms>)
  274. demo07: /bin/bash -c "while true; do examples-api-use/demo -c 6 -R 180 -b 100 -D7 -t 15; done"
  275. # Langton's ant (-m <time-step-ms>)
  276. demo08: examples-api-use/demo -c 6 -R 180 -m 1 --led-show-refresh -D8
  277. # Volume bars
  278. demo09: examples-api-use/demo -c 6 -R 180 -D9
  279. # Evolution of color
  280. demo10: examples-api-use/demo -c 6 -R 180 -D10
  281. # Brightness pulse generator
  282. demo11: examples-api-use/demo -c 6 -R 180 --led-pwm-bits=11 -D11
  283. # python sample: rotatatin block
  284. pydemo1: bindings/python/samples/rotating-block-generator.py -c 6 -R 180 --led-show-refresh
  285. # python sample: like demo01
  286. pydemo2: bindings/python/samples/image-scroller.py -c 6 -R 180 --led-show-refresh -i examples-api-use/runtext.ppm
  287. # python sample: rotatatin block
  288. pydemo3: bindings/python/samples/simple-square.py -c 6 -R 180 --led-show-refresh
  289. # tail logs of pixelreceiver (udp server)
  290. pixel_logs: tail -f /pixel/receive.log
  291. # kill pixel receiver
  292. pixel_kill: pkill -f "python -u /pixelreceiver.py"
  293. matrix2: # zerow: interface with RGB LED-Matrix
  294. host: blaubeere
  295. docker:
  296. init: true
  297. build: matrix/light
  298. import: pixel
  299. # matrix driver needs access to /dev/mem
  300. privileged: true
  301. # ports: 10000:10000/udp, 10001:10001/udp
  302. volumes:
  303. - /opt/pixel:/pixel
  304. env:
  305. LED_ROWS: 64
  306. LED_COLS: 192
  307. commands:
  308. # some rotating square
  309. demo00: examples-api-use/demo --led-rows=64 --led-cols=192 --led-pixel-mapper=U-mapper;Rotate:180 --led-show-refresh -D 0
  310. # forward scrolling an image
  311. demo01: examples-api-use/demo --led-rows=64 --led-cols=192 --led-pixel-mapper=U-mapper;Rotate:180 --led-show-refresh -D 1 examples-api-use/runtext.ppm
  312. # test image
  313. demo03: examples-api-use/demo --led-rows=64 --led-cols=192 -D 3
  314. # Abelian sandpile model (-m <time-step-ms>)
  315. demo06: examples-api-use/demo -c 6 --led-rows=64 -D 6
  316. # Conway's game of life (-m <time-step-ms>)
  317. demo07: /bin/bash -c "while true; do examples-api-use/demo --led-rows=64 --led-cols=192 --led-show-refresh -D 7 -m 20; done"
  318. # Langton's ant (-m <time-step-ms>)
  319. demo08: examples-api-use/demo -c 6 --led-rows=64 -m 1 --led-show-refresh -D 8
  320. # Volume bars
  321. demo09: examples-api-use/demo -c 6 --led-rows=64 -D 9
  322. # Evolution of color
  323. demo10: examples-api-use/demo -c 6 --led-rows=64 -D 10
  324. # Brightness pulse generator
  325. demo11: examples-api-use/demo --led-rows=64 --led-cols=192 --led-pwm-bits=11 -D 11
  326. # python sample: rotatatin block
  327. pydemo1: bindings/python/samples/rotating-block-generator.py -c 6 --led-rows=64 --led-show-refresh
  328. # python sample: like demo01
  329. pydemo2: bindings/python/samples/image-scroller.py -c 6 --led-rows=64 --led-show-refresh -i examples-api-use/runtext.ppm
  330. # python sample: rotatatin block
  331. pydemo3: bindings/python/samples/simple-square.py -c 6 --led-rows=64 --led-show-refresh
  332. # tail logs of pixelreceiver (udp server)
  333. pixel_logs: tail -f /pixel/receive.log
  334. # kill pixel receiver
  335. pixel_kill: pkill -f "python -u /pixelreceiver.py"
  336. vaping:
  337. host: waldbeere
  338. docker:
  339. build: vaping
  340. ports: 6080:7021
  341. log_config: {type: none}
  342. streamripper:
  343. host: stachelbeere
  344. docker:
  345. build: streamripper
  346. volumes:
  347. - /opt/streamripper:/home/streamripper
  348. command: 'https://somafm.com/defcon256.pls -s -m 30 --xs2 -o never -T'