template.yaml 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. ---
  2. kind: compose
  3. schema: "1.2"
  4. metadata:
  5. icon:
  6. provider: selfh
  7. id: pi-hole
  8. name: Pihole
  9. description: |
  10. Network-wide advertisement and internet tracker blocking application that functions as a DNS blackhole.
  11. Provides DNS-level content filtering for all network devices, improving browsing performance, privacy, and security.
  12. Supports custom blocklists, whitelists, and seamless integration with existing network infrastructure.
  13. ## Prerequisites
  14. - :warning: Pi-hole uses local storage and configuration files and does NOT support running multiple replicas.
  15. This template enforces a single replica with node placement constraints to ensure stable DNS resolution.
  16. ## References
  17. - **Project:** https://pi-hole.net/
  18. - **Documentation:** https://docs.pi-hole.net/
  19. - **GitHub:** https://github.com/pi-hole/pi-hole
  20. version: 2025.11.0
  21. author: Christian Lempa
  22. date: '2025-11-05'
  23. tags:
  24. - traefik
  25. - swarm
  26. - network
  27. - volume
  28. next_steps: |-
  29. Log in with your initial admin user:
  30. ```bash
  31. Username: admin
  32. Password: {{ webpassword }}
  33. ```
  34. spec:
  35. general:
  36. vars:
  37. service_name:
  38. default: pihole
  39. container_name:
  40. default: pihole
  41. admin_settings:
  42. description: "Admin Pi-hole Settings"
  43. required: true
  44. vars:
  45. webpassword:
  46. description: "Web interface admin password"
  47. type: str
  48. sensitive: true
  49. autogenerated: true
  50. ports:
  51. vars:
  52. ports_http:
  53. description: HTTP port for Pi-hole
  54. type: int
  55. default: 80
  56. ports_https:
  57. description: HTTPS port for Pi-hole
  58. type: int
  59. default: 443
  60. ports_ntp:
  61. description: "External NTP port"
  62. type: int
  63. default: 123
  64. required: true
  65. traefik:
  66. vars:
  67. traefik_host:
  68. default: pihole
  69. network:
  70. vars:
  71. network_mode:
  72. extra: >
  73. If you need DHCP functionality, use 'host' or 'macvlan' mode.
  74. NOTE: Swarm only supports 'bridge' mode!"
  75. network_name:
  76. default: "pihole_network"
  77. swarm:
  78. vars:
  79. swarm_placement_host:
  80. required: true
  81. optional: false
  82. needs: null
  83. swarm_replicas:
  84. description: Number of replicas for Swarm mode
  85. type: int
  86. default: 1