docker-compose.yml 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  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. nextcloud:
  72. image: nextcloud
  73. restart: unless-stopped
  74. ports:
  75. - "10.10.20.252:80:80/tcp"
  76. volumes:
  77. - /mnt/documents/files/cloud/:/var/www/html
  78. environment:
  79. - POSTGRES_DB=nextcloud
  80. - POSTGRES_USER=nextcloud
  81. - POSTGRES_PASSWORD=nextcloud
  82. - POSTGRES_HOST=postgres
  83. depends_on:
  84. - postgres
  85. labels:
  86. - traefik.http.routers.nextcloud.rule=Host(`cloud.playne.au`)
  87. - traefik.http.routers.nextcloud.tls=true
  88. - traefik.http.routers.nextcloud.tls.certresolver=le
  89. postgres:
  90. image: postgres:14
  91. ports:
  92. - "5432"
  93. volumes:
  94. - postgres_data:/var/lib/postgresql/data
  95. environment:
  96. - POSTGRES_PASSWORD=nextcloud
  97. - POSTGRES_USER=nextcloud
  98. - POSTGRES_DB=nextcloud