docker-compose.yml 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. version: "3.9"
  2. volumes:
  3. pihole_config_etc:
  4. pihole_config_dnsmasq:
  5. heimdall_config:
  6. git_data:
  7. postgres_data:
  8. services:
  9. traefik:
  10. image: traefik:v2.9
  11. command: --api.insecure=true
  12. ports:
  13. - "10.10.20.251:80:80/tcp"
  14. - "10.10.20.251:443:443/tcp"
  15. - "10.10.20.254:8080:8080/tcp"
  16. volumes:
  17. # So that Traefik can listen to the Docker events
  18. - /var/run/docker.sock:/var/run/docker.sock
  19. - ./traefik:/etc/traefik/
  20. heimdall:
  21. environment:
  22. - PGID=1000
  23. - PUID=1000
  24. image: ghcr.io/linuxserver/heimdall
  25. ports:
  26. - "10.10.20.254:80:80/tcp"
  27. restart: unless-stopped
  28. volumes:
  29. - heimdall_config:/config:rw
  30. - /etc/timezone:/etc/timezone:ro
  31. - /etc/localtime:/etc/localtime:ro
  32. pihole:
  33. dns:
  34. - 202.142.142.142
  35. - 202.142.142.242
  36. environment:
  37. - PUID=1000
  38. - CONDITIONAL_FORWARDING_IP=10.10.20.1
  39. - CONDITIONAL_FORWARDING_DOMAIN=playne.id.au
  40. - DNS2=202.142.142.242
  41. - ServerIP=10.10.20.253
  42. - CONDITIONAL_FORWARDING=True
  43. - DNS1=202.142.142.142
  44. - PGID=1000
  45. - DNS_IPv6=2403:5800:c100:7802::feed
  46. - DNS_IP=10.10.20.253
  47. - IPv6=True
  48. image: pihole/pihole:latest
  49. ports:
  50. - "10.10.20.253:443:443/tcp"
  51. - "10.10.20.253:53:53/tcp"
  52. - "10.10.20.253:53:53/udp"
  53. - "10.10.20.253:80:80/tcp"
  54. restart: unless-stopped
  55. volumes:
  56. - /etc/timezone:/etc/timezone:ro
  57. - /etc/localtime:/etc/localtime:ro
  58. - pihole_config_etc:/etc/pihole:rw
  59. - pihole_config_dnsmasq:/etc/dnsmasq.d:rw
  60. git:
  61. image: gogs/gogs
  62. ports:
  63. - "10022:22"
  64. - "3000:3000"
  65. volumes:
  66. - git_data:/data
  67. labels:
  68. - traefik.http.routers.git.rule=Host(`git.playne.au`)
  69. - traefik.http.routers.git.tls=true
  70. - traefik.http.routers.git.tls.certresolver=le
  71. - traefik.http.services.git.loadbalancer.server.port=3000
  72. - traefik.tcp.routers.git.entrypoints[0]=gitssh
  73. # - traefik.tcp.routers.git.rule=HostSNI(`*`)
  74. # - traefik.tcp.services.git.loadbalancer.server.port=10022
  75. nextcloud:
  76. image: nextcloud
  77. restart: unless-stopped
  78. ports:
  79. - "10.10.20.252:80:80/tcp"
  80. volumes:
  81. - /mnt/documents/files/cloud/:/var/www/html
  82. environment:
  83. - POSTGRES_DB=nextcloud
  84. - POSTGRES_USER=nextcloud
  85. - POSTGRES_PASSWORD=nextcloud
  86. - POSTGRES_HOST=postgres
  87. depends_on:
  88. - postgres
  89. labels:
  90. - traefik.http.routers.nextcloud.rule=Host(`cloud.playne.au`)
  91. - traefik.http.routers.nextcloud.tls=true
  92. - traefik.http.routers.nextcloud.tls.certresolver=le
  93. postgres:
  94. image: postgres:14
  95. ports:
  96. - "5432"
  97. volumes:
  98. - postgres_data:/var/lib/postgresql/data
  99. environment:
  100. - POSTGRES_PASSWORD=nextcloud
  101. - POSTGRES_USER=nextcloud
  102. - POSTGRES_DB=nextcloud