services.yml 13 KB

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