compose.yaml.j2 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. services:
  2. {{ service_name | default('gitea') }}:
  3. image: docker.io/gitea/gitea:1.24.5
  4. container_name: {{ container_name | default('gitea-server') }}
  5. env_file:
  6. - .env.gitea
  7. {% if ports_enabled %}
  8. ports:
  9. - "{{ ports_http | default(3000) }}:3000"
  10. - "{{ ports_ssh | default(2221) }}:22"
  11. {% endif %}
  12. {% if network_enabled %}
  13. networks:
  14. - {{ network_name | default('bridge') }}
  15. {% endif %}
  16. {% if traefik_enabled %}
  17. labels:
  18. - traefik.enable=true
  19. - traefik.http.services.{{ service_name | default('gitea') }}.loadbalancer.server.port=3000
  20. - traefik.http.services.{{ service_name | default('gitea') }}.loadbalancer.server.scheme=http
  21. - traefik.http.routers.{{ service_name | default('gitea') }}-http.rule=Host(`{{ traefik_host }}`)
  22. - traefik.http.routers.{{ service_name | default('gitea') }}-http.entrypoints={{ traefik_entrypoint | default('web') }}
  23. {% if traefik_tls_enabled %}
  24. - traefik.http.routers.{{ service_name | default('gitea') }}-https.rule=Host(`{{ traefik_host }}`)
  25. - traefik.http.routers.{{ service_name | default('gitea') }}-https.entrypoints={{ traefik_tls_entrypoint | default('websecure') }}
  26. - traefik.http.routers.{{ service_name | default('gitea') }}-https.tls=true
  27. - traefik.http.routers.{{ service_name | default('gitea') }}-https.tls.certresolver={{ traefik_tls_certresolver }}
  28. {% endif %}
  29. {% endif %}
  30. volumes:
  31. - gitea-data:/data
  32. - /etc/timezone:/etc/timezone:ro
  33. - /etc/localtime:/etc/localtime:ro
  34. depends_on:
  35. - {{ service_name | default('gitea') }}-postgres
  36. restart: {{ restart_policy | default('unless-stopped') }}
  37. {% if not database_external %}
  38. {{ service_name | default('gitea') }}-postgres:
  39. image: docker.io/library/postgres:17.6
  40. container_name: {{ service_name | default('gitea') }}-db
  41. env_file:
  42. - .env.postgres
  43. healthcheck:
  44. test: ["CMD-SHELL", "pg_isready -U {{ database_user | default('gitea') }}"]
  45. start_period: 30s
  46. interval: 10s
  47. timeout: 10s
  48. retries: 5
  49. volumes:
  50. - gitea-db:/var/lib/postgresql/data
  51. {% if network_enabled %}
  52. networks:
  53. - {{ network_name | default('bridge') }}
  54. {% endif %}
  55. restart: {{ restart_policy | default('unless-stopped') }}
  56. {% endif %}
  57. volumes:
  58. gitea-data:
  59. driver: local
  60. {% if not database_external %}
  61. gitea-db:
  62. driver: local
  63. {% endif %}
  64. {% if network_enabled %}
  65. networks:
  66. {{ network_name | default('bridge') }}:
  67. {% if network_external %}
  68. external: true
  69. {% endif %}
  70. {% endif %}