docker-compose.yaml 5.6 KB

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