template.yaml 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. ---
  2. kind: compose
  3. metadata:
  4. icon:
  5. provider: selfh
  6. id: pangolin
  7. name: Pangolin
  8. description: |
  9. Self-hosted reverse proxy server that securely exposes private resources on distributed networks through
  10. encrypted WireGuard tunnels. Pangolin enables access from anywhere without opening ports, using a custom
  11. user-space WireGuard client (Newt) for secure connectivity. Features include automatic tunnel management,
  12. integrated CrowdSec security, and support for both PostgreSQL and SQLite databases.
  13. ## References
  14. * **Project:** https://github.com/fosrl/pangolin
  15. * **Documentation:** https://github.com/fosrl/pangolin/blob/main/README.md
  16. * **Docker Hub:** https://hub.docker.com/r/fosrl/pangolin
  17. version: latest
  18. author: Christian Lempa
  19. date: '2025-11-13'
  20. tags:
  21. - traefik
  22. - swarm
  23. - proxy
  24. - wireguard
  25. draft: true
  26. spec:
  27. general:
  28. vars:
  29. service_name:
  30. default: "pangolin"
  31. container_name:
  32. default: "pangolin"
  33. container_hostname:
  34. default: "pangolin"
  35. traefik:
  36. vars:
  37. traefik_host:
  38. default: "pangolin"
  39. network:
  40. vars:
  41. network_name:
  42. default: "pangolin_network"
  43. ports:
  44. vars:
  45. ports_http:
  46. description: "External HTTP port (web interface)"
  47. type: int
  48. default: 8080
  49. needs: ["traefik_enabled=false", "network_mode=bridge"]
  50. volume:
  51. vars:
  52. volume_mount_path:
  53. default: "/mnt/storage/pangolin"
  54. postgres:
  55. title: "PostgreSQL Configuration"
  56. toggle: postgres_enabled
  57. needs: null
  58. vars:
  59. postgres_enabled:
  60. type: bool
  61. default: false
  62. description: "Use PostgreSQL database (SQLite is default)"
  63. postgres_connection_string:
  64. type: str
  65. default: "postgresql://postgres:postgres@localhost:5432"
  66. description: "PostgreSQL connection string"
  67. needs: "postgres_enabled=true"
  68. environment:
  69. title: "Environment Variables"
  70. toggle: environment_enabled
  71. needs: null
  72. vars:
  73. environment_enabled:
  74. type: bool
  75. default: false
  76. description: "Configure additional environment variables"
  77. environment_crowdsec_enabled:
  78. type: bool
  79. default: false
  80. description: "Enable CrowdSec integration"
  81. needs: "environment_enabled=true"
  82. environment_log_level:
  83. type: enum
  84. default: "info"
  85. config:
  86. options: ["debug", "info", "warn", "error"]
  87. description: "Log level"
  88. needs: "environment_enabled=true"