compose.yaml 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. ---
  2. services:
  3. postgres:
  4. image: docker.io/library/postgres:16.6
  5. container_name: authentik-db
  6. environment:
  7. - POSTGRES_USER=${POSTGRES_USER:-authentik}
  8. - POSTGRES_PASSWORD=${POSTGRES_PASSWORD:?error}
  9. - POSTGRES_DB=${POSTGRES_DB:-authentik}
  10. - TZ=${TZ:-UTC}
  11. healthcheck:
  12. test: ['CMD-SHELL', 'pg_isready -U "${POSTGRES_USER:-authentik}"']
  13. start_period: 30s
  14. interval: 10s
  15. timeout: 10s
  16. retries: 5
  17. volumes:
  18. - postgres_data:/var/lib/postgresql/data
  19. restart: unless-stopped
  20. redis:
  21. image: docker.io/library/redis:7.4.1
  22. container_name: authentik-redis
  23. command: --save 60 1 --loglevel warning
  24. healthcheck:
  25. test: ["CMD-SHELL", "redis-cli ping | grep PONG"]
  26. start_period: 20s
  27. interval: 30s
  28. retries: 5
  29. timeout: 3s
  30. volumes:
  31. - redis_data:/data
  32. restart: unless-stopped
  33. server:
  34. image: ghcr.io/goauthentik/server:2024.12.1
  35. container_name: authentik-server
  36. command: server
  37. environment:
  38. - AUTHENTIK_REDIS__HOST=authentik-redis
  39. - AUTHENTIK_POSTGRESQL__HOST=authentik-db
  40. - AUTHENTIK_POSTGRESQL__USER=${POSTGRES_USER:-authentik}
  41. - AUTHENTIK_POSTGRESQL__NAME=${POSTGRES_DB:-authentik}
  42. - AUTHENTIK_POSTGRESQL__PASSWORD=${POSTGRES_PASSWORD:?error}
  43. # (Required) To generate a secret key run the following command:
  44. # echo $(openssl rand -base64 32)
  45. - AUTHENTIK_SECRET_KEY=${AUTHENTIK_SECRET_KEY:?error}
  46. # (Optional) Enable Error Reporting
  47. # - AUTHENTIK_ERROR_REPORTING__ENABLED=${AUTHENTIK_ERROR_REPORTING:-false}
  48. # (Optional) Enable Email Sending
  49. # - AUTHENTIK_EMAIL__HOST=${EMAIL_HOST:?error}
  50. # - AUTHENTIK_EMAIL__PORT=${EMAIL_PORT:-25}
  51. # - AUTHENTIK_EMAIL__USERNAME=${EMAIL_USERNAME:?error}
  52. # - AUTHENTIK_EMAIL__PASSWORD=${EMAIL_PASSWORD:?error}
  53. # - AUTHENTIK_EMAIL__USE_TLS=${EMAIL_USE_TLS:-false}
  54. # - AUTHENTIK_EMAIL__USE_SSL=${EMAIL_USE_SSL:-false}
  55. # - AUTHENTIK_EMAIL__TIMEOUT=${EMAIL_TIMEOUT:-10}
  56. # - AUTHENTIK_EMAIL__FROM=${EMAIL_FROM:?error}
  57. ports:
  58. - 9000:9000
  59. - 9443:9443
  60. volumes:
  61. - ./media:/media
  62. - ./custom-templates:/templates
  63. depends_on:
  64. - postgres
  65. - redis
  66. restart: unless-stopped
  67. worker:
  68. image: ghcr.io/goauthentik/server:2024.12.1
  69. container_name: authentik-worker
  70. command: worker
  71. environment:
  72. - AUTHENTIK_REDIS__HOST=authentik-redis
  73. - AUTHENTIK_POSTGRESQL__HOST=authentik-db
  74. - AUTHENTIK_POSTGRESQL__USER=${POSTGRES_USER:-authentik}
  75. - AUTHENTIK_POSTGRESQL__NAME=${POSTGRES_DB:-authentik}
  76. - AUTHENTIK_POSTGRESQL__PASSWORD=${POSTGRES_PASSWORD:?error}
  77. # (Required) To generate a secret key run the following command:
  78. # echo $(openssl rand -base64 32)
  79. - AUTHENTIK_SECRET_KEY=${AUTHENTIK_SECRET_KEY:?error}
  80. # (Optional) Enable Error Reporting
  81. # - AUTHENTIK_ERROR_REPORTING__ENABLED=${AUTHENTIK_ERROR_REPORTING:-false}
  82. # (Optional) Enable Email Sending
  83. # - AUTHENTIK_EMAIL__HOST=${EMAIL_HOST:?error}
  84. # - AUTHENTIK_EMAIL__PORT=${EMAIL_PORT:-25}
  85. # - AUTHENTIK_EMAIL__USERNAME=${EMAIL_USERNAME:?error}
  86. # - AUTHENTIK_EMAIL__PASSWORD=${EMAIL_PASSWORD:?error}
  87. # - AUTHENTIK_EMAIL__USE_TLS=${EMAIL_USE_TLS:-false}
  88. # - AUTHENTIK_EMAIL__USE_SSL=${EMAIL_USE_SSL:-false}
  89. # - AUTHENTIK_EMAIL__TIMEOUT=${EMAIL_TIMEOUT:-10}
  90. # - AUTHENTIK_EMAIL__FROM=${EMAIL_FROM:?error}
  91. # (Optional) When using the docker socket integration
  92. # See more for the docker socket integration here:
  93. # https://goauthentik.io/docs/outposts/integrations/docker
  94. # user: root
  95. volumes:
  96. # (Optional) When using the docker socket integration
  97. # - /run/docker.sock:/run/docker.sock
  98. - ./media:/media
  99. - ./certs:/certs
  100. - ./custom-templates:/templates
  101. depends_on:
  102. - postgres
  103. - redis
  104. restart: unless-stopped
  105. volumes:
  106. postgres_data:
  107. driver: local
  108. redis_data:
  109. driver: local