Advertisement
Guest User

Untitled

a guest
Apr 6th, 2019
239
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.41 KB | None | 0 0
  1. version: "3.6"
  2. services:
  3. # frontend containers
  4. php-apache:
  5. container_name: php-apache
  6. restart: always
  7. image: php:7.2-apache
  8. volumes:
  9. - ${USERDIR}/home-files:/var/www/html/:ro
  10. ports:
  11. - "5555:80"
  12. environment:
  13. - PUID=${PUID}
  14. - PGID=${PGID}
  15. - TZ=${TZ}
  16. networks:
  17. - traefik_proxy
  18. labels:
  19. - "traefik.enable=true"
  20. - "traefik.backend=php-apache"
  21. - "traefik.frontend.rule=Host:home.${DOMAINNAME}"
  22. - "traefik.port=80"
  23. - "traefik.frontend.redirect.entryPoint=https"
  24. - "traefik.docker.network=traefik_proxy"
  25. nextcloud:
  26. container_name: nextcloud
  27. restart: always
  28. image: linuxserver/nextcloud
  29. volumes:
  30. - ${USERDIR}/docker/nextcloud:/config
  31. - type: bind
  32. source: ${USERDIR}/shared_data
  33. target: /data
  34. - type: bind
  35. source: ${USERDIR}/docker/shared
  36. target: /shared
  37. ports:
  38. - "4430:443"
  39. environment:
  40. - PUID=${PUID}
  41. - PGID=${PGID}
  42. networks:
  43. - traefik_proxy
  44. labels:
  45. - "traefik.enable=true"
  46. - "traefik.backend=nextcloud"
  47. - "traefik.frontend.rule=Host:cloud.${DOMAINNAME}"
  48. - "traefik.port=443"
  49. - "traefik.protocol=https"
  50. - "traefik.docker.network=traefik_proxy"
  51. - "traefik.frontend.headers.SSLRedirect=true"
  52. - "traefik.frontend.headers.STSSeconds=315360000"
  53. - "traefik.frontend.headers.browserXSSFilter=true"
  54. - "traefik.frontend.headers.contentTypeNosniff=true"
  55. - "traefik.frontend.headers.forceSTSHeader=true"
  56. - "traefik.frontend.headers.SSLHost=${DOMAINNAME}"
  57. - "traefik.frontend.headers.STSIncludeSubdomains=true"
  58. - "traefik.frontend.headers.STSPreload=true"
  59. - "traefik.frontend.headers.frameDeny=false"
  60. airsonic:
  61. hostname: airsonic
  62. container_name: airsonic
  63. image: airsonic/airsonic
  64. restart: always
  65. volumes:
  66. - ${USERDIR}/docker/airsonic/data:/airsonic/data
  67. - type: bind
  68. source: ${USERDIR}/music
  69. target: /airsonic/music
  70. - ${USERDIR}/docker/airsonic/playlists:/airsonic/playlists
  71. - ${USERDIR}/docker/airsonic/podcasts:/airsonic/podcasts
  72. ports:
  73. - 4040:4040
  74. environment:
  75. - PUID=${PUID}
  76. - PGID=${PGID}
  77. - TZ=${TZ}
  78. - "JAVA_OPTS=-Xmx512m -Dserver.use-forward-headers=true -Dserver.context-path=/"
  79. networks:
  80. - traefik_proxy
  81. labels:
  82. - "traefik.enable=true"
  83. - "traefik.backend=airsonic"
  84. - "traefik.frontend.rule=Host:music.${DOMAINNAME}"
  85. - "traefik.port=4040"
  86. - "traefik.docker.network=traefik_proxy"
  87. - "traefik.frontend.headers.SSLRedirect=true"
  88. - "traefik.frontend.headers.STSSeconds=315360000"
  89. - "traefik.frontend.headers.browserXSSFilter=true"
  90. - "traefik.frontend.headers.contentTypeNosniff=true"
  91. - "traefik.frontend.headers.forceSTSHeader=true"
  92. - "traefik.frontend.headers.SSLHost=${DOMAINNAME}"
  93. - "traefik.frontend.headers.STSIncludeSubdomains=true"
  94. - "traefik.frontend.headers.STSPreload=true"
  95. - "traefik.frontend.headers.frameDeny=false"
  96. paperless-webserver:
  97. hostname: paperless-webserver
  98. container_name: paperless-webserver
  99. image: danielquinn/paperless
  100. command: ["runserver", "--insecure", "--noreload", "0.0.0.0:8000"]
  101. restart: always
  102. volumes:
  103. - type: bind
  104. source: ${USERDIR}/docker/paperless/data
  105. target: /usr/src/paperless/data
  106. - type: bind
  107. source: ${USERDIR}/docker/paperless/media
  108. target: /usr/src/paperless/media
  109. - /etc/localtime:/etc/localtime:ro
  110. - ${USERDIR}/docker/paperless/paperless.conf:/etc/paperless.conf:ro
  111. ports:
  112. - 8050:8000
  113. environment:
  114. - USERMAP_UID=${PUID}
  115. - USERMAP_GID=${PGID}
  116. networks:
  117. - traefik_proxy
  118. labels:
  119. - "traefik.enable=true"
  120. - "traefik.backend=paperless-consumer"
  121. - "traefik.frontend.rule=Host:paperless.${DOMAINNAME}"
  122. - "traefik.port=8000"
  123. - "traefik.docker.network=traefik_proxy"
  124. - "traefik.frontend.headers.SSLRedirect=true"
  125. - "traefik.frontend.headers.STSSeconds=315360000"
  126. - "traefik.frontend.headers.browserXSSFilter=true"
  127. - "traefik.frontend.headers.contentTypeNosniff=true"
  128. - "traefik.frontend.headers.forceSTSHeader=true"
  129. - "traefik.frontend.headers.SSLHost=${DOMAINNAME}"
  130. - "traefik.frontend.headers.STSIncludeSubdomains=true"
  131. - "traefik.frontend.headers.STSPreload=true"
  132. - "traefik.frontend.headers.frameDeny=false"
  133. paperless-consumer:
  134. hostname: paperless-consumer
  135. container_name: paperless-consumer
  136. image: danielquinn/paperless
  137. command: ["document_consumer"]
  138. depends_on:
  139. - paperless-webserver
  140. restart: always
  141. volumes:
  142. - type: bind
  143. source: ${USERDIR}/docker/paperless/data
  144. target: /usr/src/paperless/data
  145. - type: bind
  146. source: ${USERDIR}/docker/paperless/media
  147. target: /usr/src/paperless/media
  148. - /etc/localtime:/etc/localtime:ro
  149. - ${USERDIR}/docker/paperless/storage:/consume
  150. - ${USERDIR}/docker/paperless/paperless.conf:/etc/paperless.conf:ro
  151. environment:
  152. - USERMAP_UID=${PUID}
  153. - USERMAP_GID=${PGID}
  154. gitea:
  155. hostname: gitea
  156. container_name: gitea
  157. image: gitea/gitea:1.7.1
  158. volumes:
  159. - type: bind
  160. source: ${USERDIR}/docker/gitea/data
  161. target: /data
  162. ports:
  163. - "3000:3000" #http port
  164. - "8345:22" # ssh port
  165. depends_on:
  166. - mariadb
  167. restart: always
  168. networks:
  169. - traefik_proxy
  170. labels:
  171. - "traefik.enable=true"
  172. - "traefik.backend=gitea"
  173. - "traefik.frontend.rule=Host:git.${DOMAINNAME}"
  174. - "traefik.port=3000"
  175. - "traefik.docker.network=traefik_proxy"
  176. - "traefik.frontend.headers.SSLRedirect=true"
  177. - "traefik.frontend.headers.STSSeconds=315360000"
  178. - "traefik.frontend.headers.browserXSSFilter=true"
  179. - "traefik.frontend.headers.contentTypeNosniff=true"
  180. - "traefik.frontend.headers.forceSTSHeader=true"
  181. - "traefik.frontend.headers.SSLHost=${DOMAINNAME}"
  182. - "traefik.frontend.headers.STSIncludeSubdomains=true"
  183. - "traefik.frontend.headers.STSPreload=true"
  184. - "traefik.frontend.headers.frameDeny=false"
  185. wallabag:
  186. hostname: wallabag
  187. container_name: wallabag
  188. image: wallabag/wallabag
  189. ports:
  190. - "3459:80"
  191. environment:
  192. - SYMFONY__ENV__DATABASE_HOST = mariadb
  193. - SYMFONY__ENV__DATABASE_PORT=3306
  194. - SYMFONY__ENV__DATABASE_NAME=root
  195. - SYMFONY__ENV__DATABASE_USER=wallabag
  196. - SYMFONY__ENV__DATABASE_PASSWORD=${MYSQL_ROOT_PASSWORD}
  197. - SYMFONY__ENV__DATABASE_CHARSET=utf8mb4
  198. - SYMFONY__ENV__DOMAIN_NAME=https://read.${DOMAINNAME}
  199. - SYMFONY__ENV__FOSUSER_CONFIRMATION=false
  200. volumes:
  201. - type: bind
  202. source: ${USERDIR}/docker/wallabag/images
  203. target: /var/www/wallabag/web/assets/images
  204. depends_on:
  205. - mariadb
  206. restart: always
  207. networks:
  208. - traefik_proxy
  209. labels:
  210. - "traefik.enable=true"
  211. - "traefik.backend=wallabag"
  212. - "traefik.frontend.rule=Host:read.${DOMAINNAME}"
  213. - "traefik.port=80"
  214. - "traefik.docker.network=traefik_proxy"
  215. - "traefik.frontend.headers.SSLRedirect=true"
  216. - "traefik.frontend.headers.STSSeconds=315360000"
  217. - "traefik.frontend.headers.browserXSSFilter=true"
  218. - "traefik.frontend.headers.contentTypeNosniff=true"
  219. - "traefik.frontend.headers.forceSTSHeader=true"
  220. - "traefik.frontend.headers.SSLHost=${DOMAINNAME}"
  221. - "traefik.frontend.headers.STSIncludeSubdomains=true"
  222. - "traefik.frontend.headers.STSPreload=true"
  223. - "traefik.frontend.headers.frameDeny=false"
  224. calibre-web:
  225. container_name: calibre-web
  226. restart: always
  227. image: linuxserver/calibre-web
  228. volumes:
  229. - ${USERDIR}/docker/calibre-web/data:/config
  230. - type: bind
  231. source: ${USERDIR}/media/books
  232. target: /books
  233. ports:
  234. - "8083:8083"
  235. environment:
  236. - PUID=${PUID}
  237. - PGID=${PGID}
  238. - TZ=${TZ}
  239. networks:
  240. - traefik_proxy
  241. labels:
  242. - "traefik.enable=true"
  243. - "traefik.backend=calibre-web"
  244. - "traefik.frontend.rule=Host:books.${DOMAINNAME}"
  245. - "traefik.port=8083"
  246. - "traefik.docker.network=traefik_proxy"
  247. - "traefik.frontend.headers.SSLRedirect=true"
  248. - "traefik.frontend.headers.STSSeconds=315360000"
  249. - "traefik.frontend.headers.browserXSSFilter=true"
  250. - "traefik.frontend.headers.contentTypeNosniff=true"
  251. - "traefik.frontend.headers.forceSTSHeader=true"
  252. - "traefik.frontend.headers.SSLHost=${DOMAINNAME}"
  253. - "traefik.frontend.headers.STSIncludeSubdomains=true"
  254. - "traefik.frontend.headers.STSPreload=true"
  255. - "traefik.frontend.headers.frameDeny=false"
  256. firefly_iii:
  257. container_name: firefly_iii
  258. restart: always
  259. environment:
  260. - FF_DB_HOST=mariadb
  261. - FF_DB_NAME=firefly
  262. - FF_DB_USER=root
  263. - FF_DB_PASSWORD=${MYSQL_ROOT_PASSWORD}
  264. - FF_APP_KEY=0(FJt9^6^CullM_FPjBK)TgmDsYXHnX_
  265. - FF_APP_ENV=local
  266. - TZ=${TZ}
  267. - APP_LOG_LEVEL=debug
  268. - APP_URL=https://balance.${DOMAINNAME}
  269. - TRUSTED_PROXIES=**
  270. image: jc5x/firefly-iii
  271. links:
  272. - mariadb
  273. ports:
  274. - "75:80"
  275. volumes:
  276. - ${USERDIR}/docker/firefly-iii/storage/export:/storage/export
  277. - ${USERDIR}/docker/firefly-iii/storage/upload:/storage/upload
  278. networks:
  279. - traefik_proxy
  280. - default
  281. labels:
  282. - "traefik.enable=true"
  283. - "traefik.backend=firefly_iii"
  284. - "traefik.frontend.rule=Host:balance.${DOMAINNAME}"
  285. - "traefik.port=80"
  286. - "traefik.docker.network=traefik_proxy"
  287. - "traefik.frontend.headers.SSLRedirect=true"
  288. - "traefik.frontend.headers.STSSeconds=315360000"
  289. - "traefik.frontend.headers.browserXSSFilter=true"
  290. - "traefik.frontend.headers.contentTypeNosniff=true"
  291. - "traefik.frontend.headers.forceSTSHeader=true"
  292. - "traefik.frontend.headers.SSLHost=${DOMAINNAME}"
  293. - "traefik.frontend.headers.STSIncludeSubdomains=true"
  294. - "traefik.frontend.headers.STSPreload=true"
  295. - "traefik.frontend.headers.frameDeny=false"
  296. # backend containers
  297. portainer:
  298. image: portainer/portainer
  299. container_name: portainer
  300. restart: always
  301. command: -H unix:///var/run/docker.sock
  302. ports:
  303. - "9000:9000"
  304. volumes:
  305. - /var/run/docker.sock:/var/run/docker.sock
  306. - ${USERDIR}/docker/portainer/data:/data
  307. - type: bind
  308. source: ${USERDIR}/docker/shared
  309. target: /shared
  310. environment:
  311. - TZ=${TZ}
  312. watchtower:
  313. container_name: watchtower
  314. restart: always
  315. image: v2tec/watchtower
  316. volumes:
  317. - /var/run/docker.sock:/var/run/docker.sock
  318. command: --schedule "0 0 4 * * SUN" --cleanup
  319. mariadb:
  320. image: "linuxserver/mariadb"
  321. container_name: "mariadb"
  322. hostname: mariadb
  323. volumes:
  324. - ${USERDIR}/docker/mariadb:/config
  325. ports:
  326. - target: 3306
  327. published: 3306
  328. protocol: tcp
  329. mode: host
  330. restart: always
  331. networks:
  332. - default
  333. environment:
  334. - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
  335. - PUID=${PUID}
  336. - PGID=${PGID}
  337. - TZ=${TZ}
  338. phpmyadmin:
  339. hostname: phpmyadmin
  340. container_name: phpmyadmin
  341. image: phpmyadmin/phpmyadmin
  342. restart: always
  343. links:
  344. - mariadb:db
  345. ports:
  346. - 70:80
  347. environment:
  348. - PMA_HOST=mariadb
  349. - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
  350. # download management
  351. transmission-vpn:
  352. container_name: transmission-vpn
  353. image: haugene/transmission-openvpn
  354. cap_add:
  355. - NET_ADMIN
  356. devices:
  357. - /dev/net/tun
  358. restart: always
  359. ports:
  360. - "9091:9091"
  361. dns:
  362. - 1.1.1.1
  363. - 1.0.0.1
  364. volumes:
  365. - /etc/localtime:/etc/localtime:ro
  366. - ${USERDIR}/docker/transmission-vpn:/data
  367. - type: bind
  368. source: ${USERDIR}/docker/shared
  369. target: /shared
  370. - type: bind
  371. source: ${USERDIR}/downloads
  372. target: /data/watch
  373. - type: bind
  374. source: ${USERDIR}/downloads/completed
  375. target: /data/completed
  376. - type: bind
  377. source: ${USERDIR}/downloads/incomplete
  378. target: /data/incomplete
  379. environment:
  380. - OPENVPN_PROVIDER=TORGUARD
  381. - OPENVPN_USERNAME=me@domain.com
  382. - OPENVPN_PASSWORD=${MASTER_PASS}
  383. - OPENVPN_OPTS=--inactive 3600 --ping 10 --ping-exit 60
  384. - LOCAL_NETWORK=192.168.0.0/24
  385. - PUID=${PUID}
  386. - PGID=${PGID}
  387. - TZ=${TZ}
  388. - TRANSMISSION_RPC_AUTHENTICATION_REQUIRED=true
  389. - TRANSMISSION_RPC_HOST_WHITELIST="127.0.0.1,192.168.*.*"
  390. - TRANSMISSION_RPC_PASSWORD=${MASTER_PASS}
  391. - TRANSMISSION_RPC_USERNAME=username
  392. - TRANSMISSION_UMASK=002
  393. - TRANSMISSION_RATIO_LIMIT=1.00
  394. - TRANSMISSION_RATIO_LIMIT_ENABLED=true
  395. # Reverse Proxy
  396. traefik:
  397. hostname: traefik
  398. image: traefik:latest
  399. command: --configFile=${USERDIR}/docker/traefik/traefik.toml
  400. container_name: traefik
  401. restart: always
  402. domainname: ${DOMAINNAME}
  403. networks:
  404. - default
  405. - traefik_proxy
  406. ports:
  407. - "80:80"
  408. - "443:443"
  409. - "7000:8080"
  410. environment:
  411. - CLOUDFLARE_EMAIL=${CLOUDFLARE_EMAIL}
  412. - CLOUDFLARE_API_KEY=${CLOUDFLARE_API_KEY}
  413. labels:
  414. - "traefik.enable=true"
  415. - "traefik.backend=traefik"
  416. - "traefik.frontend.rule=Host:traefik.${DOMAINNAME}"
  417. - "traefik.port=8080"
  418. - "traefik.docker.network=traefik_proxy"
  419. - "traefik.frontend.headers.SSLRedirect=true"
  420. - "traefik.frontend.headers.STSSeconds=315360000"
  421. - "traefik.frontend.headers.browserXSSFilter=true"
  422. - "traefik.frontend.headers.contentTypeNosniff=true"
  423. - "traefik.frontend.headers.forceSTSHeader=true"
  424. - "traefik.frontend.headers.SSLHost=${DOMAINNAME}"
  425. - "traefik.frontend.headers.STSIncludeSubdomains=true"
  426. - "traefik.frontend.headers.STSPreload=true"
  427. - "traefik.frontend.headers.frameDeny=false"
  428. volumes:
  429. - /var/run/docker.sock:/var/run/docker.sock:ro
  430. - ${USERDIR}/docker/traefik:/etc/traefik
  431. - ${USERDIR}/docker/shared:/shared
  432. networks:
  433. traefik_proxy:
  434. external:
  435. name: traefik_proxy
  436. default:
  437. driver: bridge
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement