services.yml 12 KB

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