docker-compose.yaml 3.0 KB

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