services.yml 14 KB

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