{
    "slug":  "authentik",
    "name":  "Authentik",
    "description":  "Identity provider with SSO, OAuth2, SAML, LDAP, and proxy auth.",
    "category":  "Security",
    "image":  "ghcr.io/goauthentik/server:latest",
    "logo":  "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/authentik.png",
    "website":  "https://goauthentik.io",
    "docsUrl":  "https://docs.goauthentik.io",
    "ports":  [
                  {
                      "host":  9002,
                      "container":  9000,
                      "protocol":  "tcp"
                  },
                  {
                      "host":  9443,
                      "container":  9443,
                      "protocol":  "tcp"
                  }
              ],
    "volumes":  [
                    {
                        "host":  "/opt/appdata/authentik/media",
                        "container":  "/media"
                    },
                    {
                        "host":  "/opt/appdata/authentik/custom-templates",
                        "container":  "/templates"
                    }
                ],
    "envVars":  [
                    {
                        "key":  "TZ",
                        "default":  "Etc/UTC",
                        "description":  "Timezone"
                    },
                    {
                        "key":  "AUTHENTIK_SECRET_KEY",
                        "default":  "change-me",
                        "description":  "Secret key",
                        "secret":  true
                    },
                    {
                        "key":  "POSTGRES_PASSWORD",
                        "default":  "change-me",
                        "description":  "PostgreSQL password",
                        "secret":  true
                    }
                ],
    "minMemory":  "2GB",
    "version":  "latest",
    "composeOverride":  "# Generated by McHarbor App Store\nservices:\n  {{serviceName}}:\n    image: {{image}}\n    container_name: {{containerName}}\n    restart: unless-stopped\n{{ports}}\n    command: server\n    environment:\n      AUTHENTIK_SECRET_KEY: {{env.AUTHENTIK_SECRET_KEY}}\n      AUTHENTIK_POSTGRESQL__HOST: {{serviceName}}-postgres\n      AUTHENTIK_POSTGRESQL__USER: authentik\n      AUTHENTIK_POSTGRESQL__NAME: authentik\n      AUTHENTIK_POSTGRESQL__PASSWORD: {{env.POSTGRES_PASSWORD}}\n      AUTHENTIK_REDIS__HOST: {{serviceName}}-redis\n      TZ: {{env.TZ}}\n    volumes:\n      - {{appDataPath}}/media:/media\n      - {{appDataPath}}/custom-templates:/templates\n    depends_on:\n      - {{serviceName}}-postgres\n      - {{serviceName}}-redis\n  {{serviceName}}-worker:\n    image: {{image}}\n    container_name: {{serviceName}}-worker\n    restart: unless-stopped\n    command: worker\n    environment:\n      AUTHENTIK_SECRET_KEY: {{env.AUTHENTIK_SECRET_KEY}}\n      AUTHENTIK_POSTGRESQL__HOST: {{serviceName}}-postgres\n      AUTHENTIK_POSTGRESQL__USER: authentik\n      AUTHENTIK_POSTGRESQL__NAME: authentik\n      AUTHENTIK_POSTGRESQL__PASSWORD: {{env.POSTGRES_PASSWORD}}\n      AUTHENTIK_REDIS__HOST: {{serviceName}}-redis\n      TZ: {{env.TZ}}\n    volumes:\n      - {{appDataPath}}/media:/media\n      - {{appDataPath}}/custom-templates:/templates\n    depends_on:\n      - {{serviceName}}-postgres\n      - {{serviceName}}-redis\n  {{serviceName}}-postgres:\n    image: postgres:16-alpine\n    container_name: {{serviceName}}-postgres\n    restart: unless-stopped\n    environment:\n      POSTGRES_USER: authentik\n      POSTGRES_PASSWORD: {{env.POSTGRES_PASSWORD}}\n      POSTGRES_DB: authentik\n    volumes:\n      - {{appDataPath}}/postgres:/var/lib/postgresql/data\n  {{serviceName}}-redis:\n    image: redis:7-alpine\n    container_name: {{serviceName}}-redis\n    restart: unless-stopped\n"
}
