services.yml 12 KB

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