
Documentação Oficial (https://docs.goauthentik.io/docs/):
Authentik é um IdP (Provedor de Identidade) e SSO (logon único) desenvolvido com a segurança em primeiro plano em cada pedaço de código e em cada recurso, com ênfase na flexibilidade e versatilidade.
Single Sign-On (SSO) permite que usuários acessem diversas aplicações com as mesmas credenciais.
Com authentik, administradores de site, desenvolvedores de aplicativos e engenheiros de segurança têm uma solução confiável e segura para autenticação em quase qualquer tipo de ambiente.
Suporta todos os principais provedores, como OAuth2, SAML, LDAP e SCIM.
Comparação de recursos nativos com Okta, Microsoft ADFS, Azure/Entra ID, Keycloak, Duo, Authelia
https://goauthentik.io/#comparison
Pre-requisito: Ter o Docker e Docker-Compose instalado
Na documentação oficial (https://docs.goauthentik.io/docs/install-config/install/docker-compose) tem os procedimentos descritos em mais detalhes. Eu prefiro manter a versão declarada no declarada no compose.yml utilizando as variáveis do arquivo .env
mkdir -p ~/docker/authentik/; cd ~/docker/authentik/
cat << '_EOF' > compose.yml
services:
postgresql:
env_file:
- .env
environment:
POSTGRES_DB: ${PG_DB:-authentik}
POSTGRES_PASSWORD: ${PG_PASS:?database password required}
POSTGRES_USER: ${PG_USER:-authentik}
healthcheck:
interval: 30s
retries: 5
start_period: 20s
test:
- CMD-SHELL
- pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}
timeout: 5s
image: docker.io/library/postgres:16-alpine
restart: unless-stopped
volumes:
- database:/var/lib/postgresql/data
server:
command: server
depends_on:
postgresql:
condition: service_healthy
env_file:
- .env
environment:
AUTHENTIK_POSTGRESQL__HOST: postgresql
AUTHENTIK_POSTGRESQL__NAME: ${PG_DB:-authentik}
AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS}
AUTHENTIK_POSTGRESQL__USER: ${PG_USER:-authentik}
AUTHENTIK_SECRET_KEY: ${AUTHENTIK_SECRET_KEY:?secret key required}
image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2026.2.1}
ports:
- ${COMPOSE_PORT_HTTP:-9000}:9000
- ${COMPOSE_PORT_HTTPS:-9443}:9443
restart: unless-stopped
shm_size: 512mb
volumes:
- ./data:/data
- ./custom-templates:/templates
worker:
command: worker
depends_on:
postgresql:
condition: service_healthy
env_file:
- .env
environment:
AUTHENTIK_POSTGRESQL__HOST: postgresql
AUTHENTIK_POSTGRESQL__NAME: ${PG_DB:-authentik}
AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS}
AUTHENTIK_POSTGRESQL__USER: ${PG_USER:-authentik}
AUTHENTIK_SECRET_KEY: ${AUTHENTIK_SECRET_KEY:?secret key required}
image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2026.2.1}
restart: unless-stopped
shm_size: 512mb
user: root
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./data:/data
- ./certs:/certs
- ./custom-templates:/templates
volumes:
database:
driver: local
_EOF
cat << '_EOF_' > .env
## Version
AUTHENTIK_IMAGE=ghcr.io/goauthentik/server
AUTHENTIK_TAG=2026.2.1
## Automated-install
AUTHENTIK_BOOTSTRAP_PASSWORD=SuperSecretPassword
[email protected]
## Expose ports
COMPOSE_PORT_HTTP=4080
COMPOSE_PORT_HTTPS=4443
## SMTP Host Emails are sent to
AUTHENTIK_EMAIL__HOST=smtp.gmail.com
AUTHENTIK_EMAIL__PORT=587
## Optionally authenticate (don't add quotation marks to your password)
[email protected]
AUTHENTIK_EMAIL__PASSWORD=XXXXXXXXXXXXXXXXXXXXXX
# Use StartTLS
AUTHENTIK_EMAIL__USE_TLS=true
# Use SSL
AUTHENTIK_EMAIL__USE_SSL=false
AUTHENTIK_EMAIL__TIMEOUT=10
# Email address authentik will send from, should have a correct @domain
AUTHENTIK_EMAIL__FROM=Authentik <[email protected]>
# Can help diagnose issues by sending anonymous data or detailed logs to the developers
AUTHENTIK_ERROR_REPORTING__ENABLED=true
_EOF_
¶ Detalhes das variáveis:
(1) AUTHENTIK_IMAGE Path Oficial da imagem
(2) AUTHENTIK_TAG TAG da versão da imagem
(3) AUTHENTIK_BOOTSTRAP_PASSWORD senha do usuário administrador akadmin
(4) AUTHENTIK_BOOTSTRAP_EMAIL email do usuário administrador akadmin
(5) AUTHENTIK_EMAIL* possibilitam que o Authentik envie emails.
Tenho um Tutorial Completo mostrando como utilizar uma conta do Gmail pra enviar emails
Em uma instalação nova do authentik, você precisa gerar uma senha de conexão ao BD e uma chave secreta como abaixo:
cat << _EOF_ >> .env
# Database Password, secret key
PG_PASS=$(openssl rand -base64 36 | tr -d '\n')
AUTHENTIK_SECRET_KEY=$(openssl rand -base64 60 | tr -d '\n')
_EOF_
docker compose up -d; docker compose logs -f --tail 10
Uma grande quantidade de logs é gerada na primeira inicialização dos containers.
Vamos dar uma olhada nos containers rodando:
docker compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
authentik-postgresql-1 docker.io/library/postgres:16-alpine "docker-entrypoint.s…" postgresql 8 minutes ago Up 8 minutes (healthy) 5432/tcp
authentik-server-1 ghcr.io/goauthentik/server:2026.2.1 "dumb-init -- ak ser…" server 8 minutes ago Up 8 minutes (healthy) 0.0.0.0:4080->9000/tcp, [::]:4080->9000/tcp, 0.0.0.0:4443->9443/tcp, [::]:4443->9443/tcp
authentik-worker-1 ghcr.io/goauthentik/server:2026.2.1 "dumb-init -- ak wor…" worker 8 minutes ago Up 8 minutes (healthy)
Note que os containers estão com status healthy, ou seja, funcionando normalmente.
Percaba que o container authentik-server-1 teve duas portas mapeadas:
4080 -> 9000 (sem certificado) e 4443 -> 9443 (com certificado auto-assinado)


.env

Ainda não tem um Active Directory?
Basta um simples 👉docker-compose up -d👈 em Docker
Confere nesse link aqui Samba-Active-Directory-Docker-Container
Acesse Directory -> Federation and Social login

Name: LDAPS seudominio
Slug: ldaps-seudominio
Enabled: ON
Update internal password on login: ON
Sync users: ON
User password writeback: ON
Sync groups: ON
Delete Not Found Objects: ON
Server URI: ldaps://auth.tiozaodolinux.com
Enable StartTLS: OFF
Bind CN: [email protected]
Bind Password: SuperSecretPassword@2025
Base DN: DC=seudominio,DC=com,DC=br
Additional settingsUser object filter: (&(objectClass=user)(!(objectClass=computer)))
Group object filter: (objectClass=group)
Group membership field: member
User membership attibute: distinguishedName
Object uniqueness field: objectSid
Outgoing sync trigger mode: Deferred until end
Update internal password on login - irá armazenar as senhas atuando como um cache para quando o LDAP estiver Off-Line, ative . Veja mais em https://docs.goauthentik.io/users-sources/sources/protocols/ldap/#password-login
User password writeback - senhas alteradas no Autentik serão sincronizadas no LDAP
Under LDAP Attribute Mapping:
User Property Mappings: select all Mappings which start with "authentik default LDAP" and "authentik default Active Directory"
Group Property Mappings: select "authentik default LDAP Mapping: Name"






Documentação Oficial - https://integrations.goauthentik.io/hypervisors-orchestrators/portainer/
Cuidado: Utilize as suas próprias URLs e não as minhas
Portainer - https://url-do-seu-portainer/
Authentik - https://url-do-seu-authentik/




WordPress - https://integrations.goauthentik.io/platforms/wordpress/




Upload and manage files - https://docs.goauthentik.io/customize/files/
Acesse Customization -> Files -> Upload File
Customize your instance's appearance - https://docs.goauthentik.io/brands
Acesse System > Brands -> edit autentik-default
Branding settings:
Title: Tiozão do Linux
Logo: altere de/static/dist/assets/icons/icon_left_brand.svgpela logo personalizada
Favicon: alterde de/static/dist/assets/icons/icon.svgpelo favicon personalizado
Default flow backgroup: altere de/static/dist/assets/images/flow_background.jpgpela imagem de background personalizada
Custom CSS: se tiver um CSS personalizado cole ele aqui
https://docs.goauthentik.io/brands/custom-css/
Default flows - https://docs.goauthentik.io/brands/#default-flows
Acesse Flows and Stages -> edit default-authentication-flow
Appearance settings:
Title: Bem vindo ao Authentik do Tiozão!
Layout: Stacked
Background:
Os atributos de Logo, Favicon, default flow background podem ser uma URL (P.Ex: https://public.tiozaodolinux.com/img/Campo-Grande-MS-gemini.jpg)
Para dirimir dúvidas e/ou sugestões entre no Grupo Tiozão do Linux
https://t.me/Grupo_Tiozao_Do_Linux