docker-compose.yaml 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246
  1. version: '2'
  2. services:
  3. nginx-proxy:
  4. image: jwilder/nginx-proxy
  5. ports:
  6. - "80:80"
  7. - "443:443"
  8. volumes:
  9. - ${CONTAINERS_DIR}/certs:/etc/nginx/certs:ro
  10. - /etc/nginx/vhost.d
  11. - /var/run/docker.sock:/tmp/docker.sock:ro
  12. - /usr/share/nginx/html
  13. - ./max_body_size.conf:/etc/nginx/conf.d/max_body_size.conf:ro
  14. - ./htpasswd:/etc/nginx/htpasswd
  15. labels:
  16. com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy: ""
  17. environment:
  18. - DEFAULT_HOST=jossh.us
  19. restart: always
  20. letsencrypt-nginx-proxy-companion:
  21. image: jrcs/letsencrypt-nginx-proxy-companion
  22. volumes:
  23. - ${CONTAINERS_DIR}/certs:/etc/nginx/certs:rw
  24. - /var/run/docker.sock:/var/run/docker.sock:ro
  25. volumes_from:
  26. - nginx-proxy
  27. restart: always
  28. postgres:
  29. image: postgres
  30. restart: always
  31. volumes:
  32. - ${CONTAINERS_DIR}/postgres/data:/var/lib/postgresql/data
  33. - ${CONTAINERS_DIR}/postgres/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d
  34. environment:
  35. - POSTGRES_USER=${POSTGRES_USER}
  36. - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
  37. mariadb:
  38. image: mariadb
  39. restart: always
  40. volumes:
  41. - ${CONTAINERS_DIR}/mariadb:/var/lib/mysql
  42. environment:
  43. # If mariadb is used for more than wordpress in the future, it'll need its own /docker-entrypoint-initdb.d entry. But for now, envrionment variables are fine.
  44. - MYSQL_DATABASE=wordpress
  45. - MYSQL_USER=${MARIADB_USER}
  46. - MYSQL_PASSWORD=${MARIADB_PASSWORD}
  47. - MYSQL_ROOT_PASSWORD=${MARIADB_PASSWORD}
  48. wordpress:
  49. image: wordpress
  50. links:
  51. - mariadb:mysql
  52. restart: always
  53. volumes:
  54. - ${CONTAINERS_DIR}/wordpress:/var/www/html
  55. environment:
  56. - WORDPRESS_DB_USER=${MARIADB_USER}
  57. - WORDPRESS_DB_PASSWORD=${MARIADB_PASSWORD}
  58. - VIRTUAL_HOST=josh1147582.jumpingcrab.com,jossh.us
  59. - LETSENCRYPT_HOST=josh1147582.jumpingcrab.com,jossh.us
  60. - VIRTUAL_PORT=3000
  61. - LETSENCRYPT_EMAIL=${LETSENCRYPT_EMAIL}
  62. nextcloud:
  63. image: nextcloud
  64. expose:
  65. - "80"
  66. links:
  67. - postgres
  68. volumes:
  69. - ${CONTAINERS_DIR}/nextcloud:/var/www/html
  70. environment:
  71. - VIRTUAL_HOST=nextcloud.josh1147582.jumpingcrab.com,nextcloud.jossh.us
  72. - VIRTUAL_PORT=80
  73. - LETSENCRYPT_HOST=nextcloud.josh1147582.jumpingcrab.com,nextcloud.jossh.us
  74. - LETSENCRYPT_EMAIL=${LETSENCRYPT_EMAIL}
  75. restart: always
  76. gogs:
  77. image: gogs/gogs
  78. expose:
  79. - "3000"
  80. volumes:
  81. - ${CONTAINERS_DIR}/gogs:/data
  82. #links:
  83. # - postgres
  84. environment:
  85. - VIRTUAL_HOST=gogs.josh1147582.jumpingcrab.com,gogs.jossh.us
  86. - LETSENCRYPT_HOST=gogs.josh1147582.jumpingcrab.com,gogs.jossh.us
  87. - VIRTUAL_PORT=3000
  88. - LETSENCRYPT_EMAIL=${LETSENCRYPT_EMAIL}
  89. restart: always
  90. # Matrix doesn't play well with reverse proxying. See:
  91. # https://github.com/matrix-org/synapse#reverse-proxying-the-federation-port
  92. # https://github.com/vector-im/riot-web/issues/3329
  93. # So this container isn't proxied, but uses the postgres container.
  94. matrix:
  95. image: avhost/docker-matrix
  96. expose:
  97. - "8008"
  98. - "8448"
  99. - "3478"
  100. ports:
  101. - "8008:8008"
  102. - "8448:8448"
  103. - "3478:3478"
  104. links:
  105. - postgres
  106. volumes:
  107. - ${CONTAINERS_DIR}/matrix:/data
  108. - ${CONTAINERS_DIR}/certs:/keys
  109. #environment:
  110. # - SYNAPSE_CACHE_FACTOR=0.75
  111. restart: always
  112. keeweb:
  113. image: antelle/keeweb
  114. expose:
  115. - "443"
  116. environment:
  117. - VIRTUAL_HOST=keeweb.jossh.us
  118. - LETSENCRYPT_HOST=keeweb.jossh.us
  119. - VIRTUAL_PROTO=https
  120. - VIRTUAL_PORT=443
  121. - LETSENCRYPT_EMAIL=${LETSENCRYPT_EMAIL}
  122. #libresonic:
  123. # image: linuxserver/libresonic
  124. # expose:
  125. # - "4040"
  126. # volumes:
  127. # - ${CONTAINERS_DIR}/libresonic:/config
  128. # - ${MEDIA_DIR}/Music:/music
  129. # environment:
  130. # - VIRTUAL_HOST=libresonic.josh1147582.jumpingcrab.com,libresonic.jossh.us
  131. # - LETSENCRYPT_HOST=libresonic.josh1147582.jumpingcrab.com,libresonic.jossh.us
  132. # - VIRTUAL_PORT=4040
  133. # - LETSENCRYPT_EMAIL=${LETSENCRYPT_EMAIL}
  134. # - TZ=America/New_York
  135. # restart: always
  136. quassel:
  137. image: linuxserver/quassel-core
  138. expose:
  139. - "4242"
  140. ports:
  141. - "4242:4242"
  142. volumes:
  143. - ${CONTAINERS_DIR}/quassel:/config
  144. - /etc/localtime:/etc/localtime:ro
  145. environment:
  146. - PGID=1000
  147. - PUID=1000
  148. restart: always
  149. netdata:
  150. image: firehol/netdata
  151. privileged: true
  152. #cap_add:
  153. # - SYS_PTRACE
  154. expose:
  155. - "19999"
  156. volumes:
  157. - /proc:/host/proc:ro
  158. - /sys:/host/sys:ro
  159. environment:
  160. - VIRTUAL_HOST=netdata.jossh.us
  161. - LETSENCRYPT_HOST=netdata.jossh.us
  162. - VIRTUAL_PORT=19999
  163. - LETSENCRYPT_EMAIL=${LETSENCRYPT_EMAIL}
  164. restart: always
  165. quassel-webserver:
  166. image: bodsch/docker-quassel-web
  167. expose:
  168. - "64080"
  169. ports:
  170. - "8080:64080"
  171. links:
  172. - quassel
  173. environment:
  174. - QUASSEL_HOST=quassel
  175. - QUASSEL_PORT=4242
  176. - FORCE_DEFAULT=true
  177. - WEBSERVER_MODE=http
  178. - VIRTUAL_HOST=quassel.jossh.us
  179. - LETSENCRYPT_HOST=quassel.jossh.us
  180. - VIRTUAL_PORT=64080
  181. - LETSENCRYPT_EMAIL=${LETSENCRYPT_EMAIL}
  182. restart: always
  183. selfoss:
  184. image: jenserat/selfoss
  185. expose:
  186. - "80"
  187. links:
  188. - postgres
  189. volumes:
  190. - ${CONTAINERS_DIR}/selfoss:/var/www/html/data
  191. environment:
  192. - VIRTUAL_HOST=selfoss.jossh.us
  193. - LETSENCRYPT_HOST=selfoss.jossh.us
  194. - VIRTUAL_PORT=80
  195. - LETSENCRYPT_EMAIL=${LETSENCRYPT_EMAIL}
  196. restart: always
  197. # Currently unused container configs:
  198. #znc:
  199. # image: znc
  200. # expose:
  201. # - "6697"
  202. # ports:
  203. # - "6697:6697"
  204. # volumes:
  205. # - ${CONTAINERS_DIR}/znc:/home/znc/.znc
  206. # environment:
  207. # - VIRTUAL_HOST=znc.jossh.us
  208. # - LETSENCRYPT_HOST=znc.jossh.us
  209. # - VIRTUAL_PORT=6697
  210. # - VIRTUAL_PROTO=https
  211. # - LETSENCRYPT_EMAIL=${LETSENCRYPT_EMAIL}
  212. # restart: always
  213. # gitlab:
  214. # image: gitlab/gitlab-ce
  215. # expose:
  216. # - "80"
  217. # - "22"
  218. # # Gitlab destroys databases when seeding them, and requires an admin user for seeding. So let's not link it to the running postgres instance.
  219. # environment:
  220. # - VIRTUAL_HOST=gitlab.jossh.us
  221. # - VIRTUAL_PORT=80
  222. # - LETSENCRYPT_HOST=gitlab.jossh.us
  223. # - LETSENCRYPT_EMAIL=${LETSENCRYPT_EMAIL}
  224. # volumes:
  225. # - ${CONTAINERS_DIR}/gitlab/config:/etc/gitlab
  226. # - ${CONTAINERS_DIR}/gitlab/logs:/var/log/gitlab
  227. # - ${CONTAINERS_DIR}/gitlab/data:/var/opt/gitlab
  228. # restart: always