"Quina és la forma correcta de configurar l'SMTP en el nou format? Hauríem d'utilitzar notifier.smtp.address en lloc d' host i port per separat?"
Correcte (Modern v4.38.0+):
notifier:
smtp:
address: 'smtp://smtp.tinet.cat:587'
timeout: 5s
sender: 'Authelia <noreply@example.com>'
tls:
server_name: smtp.tinet.cat
skip_verify: falseFormat: smtp[s]://[usuari@]host[:port]
Exemples:
smtp://smtp.example.com:587 # STARTTLS al port 587
smtps://smtp.example.com:465 # TLS implícit al port 465
smtp://user@smtp.example.com:587 # Amb usuari a la URL
Credencials mitjançant variables d'entorn:
environment:
- AUTHELIA_NOTIFIER_SMTP_ADDRESS=smtp://smtp.tinet.cat:587
- AUTHELIA_NOTIFIER_SMTP_USERNAME=el_vostre_correu@example.com
- AUTHELIA_NOTIFIER_SMTP_PASSWORD=la_vostra_contrasenya
- AUTHELIA_NOTIFIER_SMTP_SENDER=Authelia <noreply@example.com>Des de .env:
SMTP_HOST=smtp.tinet.cat
SMTP_PORT=587
SMTP_USERNAME=el_vostre_correu@example.com
SMTP_PASSWORD=la_vostra_contrasenya
SMTP_SENDER=Authelia <noreply@example.com>NO barregeu formats (causarà conflicte):
# ❌ INCORRECTE - Això causa l'error de conflicte:
notifier:
smtp:
host: smtp.example.com # ❌ Format antic
port: 587 # ❌ Format antic
address: 'smtp://...:587' # ❌ Format nou (conflicte!)"Com hem de configurar les cookies de sessió per al desenvolupament local utilitzant dominis .localhost? L'error indica que els dominis han de tenir un punt o ser una adreça IP."
Resposta: Utilitzeu localhost a la configuració, nginx-proxy gestiona la compatibilitat del navegador
La Configuració:
session:
cookies:
- name: authelia_session
domain: localhost # ✅ Correcte per a la xarxa Docker
authelia_url: https://auth.localhost
default_redirection_url: https://forgejo.localhost
same_site: Lax
secure: false # Canviar a true en produccióCom funciona:
- Xarxa Docker: Els serveis es comuniquen utilitzant
localhost(funciona bé) - Accés des del navegador: L'usuari va a
http://auth.localhost:9091 - nginx-proxy: Intercepta la petició a
auth.localhosti la dirigeix a Authelia - Domini de la cookie: nginx-proxy gestiona la reescriptura de la cookie per a la compatibilitat del navegador
- Resultat: El navegador mai veu el domini
localhostinvàlid directament
Per què funciona això:
- El DNS intern de Docker resol
localhostdins dels contenidors - El navegador mai estableix cookies directament al domini
localhost - nginx-proxy intermedia i gestiona la traducció del domini de la cookie
- Tant l'accés intern de Docker com el del navegador funcionen perfectament
Què NO fer:
# ❌ INCORRECTE - Això també fallarà:
domain: .localhost # El navegador continua rebutjant dominis d'una sola etiqueta
# ❌ INCORRECTE - Massa restrictiu per a desenvolupament:
domain: auth.localhost # Només funciona per a auth.localhost, no per a altres serveis
# ✅ CORRECTE:
domain: localhost # Funciona per a la xarxa Docker + nginx-proxy gestiona el navegadorVariables d'entorn:
environment:
- VIRTUAL_HOST=${AUTHELIA_DOMAIN:-auth.localhost}
- VIRTUAL_PORT=9091En .env:
AUTHELIA_DOMAIN=auth.localhost"Hauríem d'actualitzar el fitxer de configuració per utilitzar la nova clau identity_validation.reset_password.jwt_secret?"
Antic (Obsolet):
jwt_secret: el_vostre_secret_aquiNou (v4.38.0+):
identity_validation:
reset_password:
jwt:
expiration: 15m
# Secret injectat via variable d'entornVariable d'entorn:
environment:
- AUTHELIA_IDENTITY_VALIDATION_RESET_PASSWORD_JWT_SECRET_FILE=/run/secrets/authelia_jwt_secretConfiguració de Docker Compose:
secrets:
- authelia_jwt_secret
services:
authelia:
environment:
- AUTHELIA_IDENTITY_VALIDATION_RESET_PASSWORD_JWT_SECRET_FILE=/run/secrets/authelia_jwt_secretPer què migrar?:
- ✅ Suporta el nou flux de restabliment de contrasenya d'Authelia
- ✅ Segueix el versionat semàntic (JWT separat per a diferents propòsits)
- ✅ Permet la futura separació de JWTs per a autenticació enfront de restabliment de contrasenya
- ✅ Elimina els avisos d'obsolescència
Compatibilitat amb versions anteriors:
- Authelia 4.38.0+ segueix acceptant l'antic
jwt_secretperò mostra un avís - Es requereix la nova configuració per tenir logs nets
- La funcionalitat de restabliment de contrasenya només funciona amb la nova clau
"Com hem de configurar correctament default_redirection_url a nivell de cada cookie en lloc de fer-ho globalment?"
Antic (Causa Error):
session:
expiration: 1h
default_redirection_url: https://forgejo.localhost # ❌ INCORRECTE
cookies:
- name: authelia_session
domain: localhostNou (Correcte):
session:
expiration: 1h
# No ho poseu aquí ❌
cookies:
- name: authelia_session
domain: localhost
default_redirection_url: https://forgejo.localhost # ✅ AQUÍ
authelia_url: https://auth.localhost
same_site: Lax
secure: false
# Opcional: Fallback global al nivell de l'arrel
default_redirection_url: 'https://forgejo.localhost'Múltiples Cookies (Avançat):
session:
cookies:
# Cookie de producció
- name: authelia_session
domain: exemple.com
default_redirection_url: https://app.exemple.com
secure: true
# Cookie de desenvolupament
- name: authelia_session_dev
domain: localhost
default_redirection_url: https://forgejo.localhost
secure: false
# Fallback global
default_redirection_url: 'https://exemple.com'Com funciona:
- L'usuari accedeix a un servei protegit (ex. n8n.localhost)
- És redirigit al login d'Authelia (auth.localhost)
- Després del login, Authelia comprova el
default_redirection_urlde cada cookie - Redirigeix a la URL configurada (ex. forgejo.localhost)
- Si no hi ha configuració per cookie, utilitza el
default_redirection_urlglobal
Camps de configuració requerits:
cookies:
- name: authelia_session # Nom de la cookie
domain: localhost # Domini de la cookie
authelia_url: https://auth.localhost # Endpoint d'Authelia
default_redirection_url: https://forgejo.localhost # Destí de fallback
same_site: Lax # Protecció CSRF
secure: false # true en producció"Podem executar Authelia amb HTTP en desenvolupament local (amb nginx-proxy gestionant SSL mitjançant certificats autosignats o sense SSL) i després canviar a HTTPS en producció?"
Desenvolupament Local (HTTP, sense SSL):
# A authelia/configuration.yml:
server:
address: 'tcp://0.0.0.0:9091'
tls:
enabled: false # ✅ Només HTTP
session:
cookies:
- name: authelia_session
secure: false # ✅ Permetre cookies HTTP
same_site: LaxDocker Compose:
authelia:
expose:
- 9091
environment:
- VIRTUAL_HOST=auth.localhost
- VIRTUAL_PORT=9091
# nginx-proxy serveix via HTTPCom accedir:
Navegador: http://auth.localhost:9091
Navegador: http://n8n.localhost
Producció (HTTPS amb Let's Encrypt):
# A authelia/configuration.yml (NO CALEN CANVIS):
server:
address: 'tcp://0.0.0.0:9091'
tls:
enabled: false # ✅ Segueix sent false
# nginx-proxy gestiona la terminació TLS
session:
cookies:
- name: authelia_session
secure: true # ✅ Requerir HTTPS
same_site: StrictDocker Compose:
authelia:
expose:
- 9091
labels:
- com.github.jrcs.letsencrypt_nginx_proxy_companion.enable=true
environment:
- VIRTUAL_HOST=auth.exemple.com
- VIRTUAL_PORT=9091
# nginx-proxy + acme-companion gestionen HTTPS + Let's EncryptCom accedir:
Navegador: https://auth.exemple.com
Navegador: https://app.exemple.com
Punts Clau:
- Authelia en si: Sempre s'executa en HTTP (port 9091) internament
- Terminació TLS: Deixeu que nginx-proxy gestioni la terminació HTTPS
- Configuració d'Authelia:
tls.enabled: falseper a tots els escenaris - Seguretat de la sessió:
- Dev local:
secure: false(permetre HTTP) - Producció:
secure: true(requerir HTTPS)
- Dev local:
- Ruta de migració:
- Començar amb dev local (HTTP, sense SSL)
- Moure a producció (HTTPS via nginx-proxy + Let's Encrypt)
- No calen canvis a la configuració d'Authelia
- Només canviar les etiquetes de docker-compose i les variables d'entorn
Totes les correccions han estat implementades:
| Problema | Estat | Fitxer |
|---|---|---|
| Obsolescència de secret JWT | ✅ Corregit | authelia/configuration.yml |
| Conflicte SMTP | ✅ Corregit | authelia/configuration.yml + docker-compose.yml |
| Cookies de sessió | ✅ Corregit | authelia/configuration.yml |
| Domini de la cookie | ✅ Corregit | authelia/configuration.yml |
| HTTP vs HTTPS | ✅ Configurat | authelia/configuration.yml |
| Documentació | ✅ Completa | docs/authelia-setup.md + AUTHELIA_FIXES_SUMMARY.md |
-
Actualitzar fitxers de configuració ✅ (Ja fet)
-
Crear
.envamb SMTP:SMTP_HOST=smtp.tinet.cat SMTP_PORT=587 SMTP_USERNAME=el_vostre_correu@example.com SMTP_PASSWORD=la_vostra_contrasenya SMTP_SENDER=Authelia <noreply@example.com> AUTHELIA_DOMAIN=auth.localhost
-
Generar secrets (si no s'ha fet):
mkdir -p ./secrets openssl rand -base64 32 > ./secrets/authelia_jwt_secret.txt openssl rand -base64 32 > ./secrets/authelia_session_secret.txt chmod 600 ./secrets/*.txt
-
Iniciar serveis:
docker compose up -d redis authelia docker compose logs -f authelia
-
Prova:
curl http://localhost:9091/api/health # Esperat: 200 OK -
Accedir a la UI:
Navegador: http://auth.localhost:9091
- Guia de configuració completa: Vegeu docs/authelia-setup.md
- Explicacions detallades dels problemes: Vegeu AUTHELIA_FIXES_SUMMARY.md
- Solució de problemes: Consulteu la secció "Troubleshooting" a docs/authelia-setup.md
- Docs oficials: https://www.authelia.com/configuration/