Docker - Authelia
About
Authelia is an open-source authentication and authorization server and portal fulfilling the identity and access management (IAM) role of information security in providing multi-factor authentication and single sign-on (SSO) for your applications via a web portal. It acts as a companion for common reverse proxies.
Requirements
-
Host with Public IP & Docker Running
-
Port 80 & 443 Public Reachable
-
FQDN pointing to your IP Adress. Best is a Wildcard Record like *.your.host.de -> 1.2.3.4
Clone the Repo
git clone https://github.com/authelia/authelia.git
cd examples/compose/lite
Update docker-compose.yml
- edit TimeZone
- edit Domain Name
sed -i 's#TZ=Australia/Melbourne#TZ=Europe/Zurich#g' docker-compose.yml
sed -i 's/example.com/your.domain.de/g' docker-compose.yml
Update Configuration File
- set all secrets
- set notifier: smtp relay or local file
sed -i 's/example.com/your.domain.de/g' authelia/configuration.yml
vim authelia/configuation.yml
Set Admin User
cat << 'EOF' > authelia/users_database.yml
---
###############################################################
# Users Database #
###############################################################
# This file can be used if you do not have an LDAP set up.
# List of users
users:
admin:
disabled: false
displayname: "Admin User"
# Password is authelia
password: "$6$rounds=50000$BpLnfgDsc2WD8F2q$Zis.ixdg9s/UOJYrs56b5QEZFiZECu0qZVNsIYxBaNJ7ucIL.nlxVCT5tqh8KHG8X4tlwCFm5r6NTOZZ5qRFN/"
email: authelia@your.domain.de
groups:
- admins
- dev
...
EOF
chmod 600 authelia/users_database.yml
Generate Password
you should, of course, generate you own Passwords.
# Password: password
docker run authelia/authelia:latest authelia crypto hash generate argon2 --password 'password'
# Random PW, Length 16
docker run authelia/authelia:latest authelia crypto hash generate argon2 --random --random.length 16
Build and Start Docker
docker compose up -d; docker compose logs -f
and check if all of them are running
docker compose ps
after a few Seconds, Let’s Encrypt should grab all the Certificates for your Webservers. You got now the following Services:
-
https://public.your.domain.de -> public accessible
-
https://traefik.your.domain.de -> Autheticate with Username (admin) and Password (authelia)
-
https://secure.your.domain.de -> Authenticate with 2FA -> Register your Device, Wait for Mail and Open the Link, or check the File ‘/config/notification.txt’ to the the Link and open in Browser
Happy Authelia … :)
Any Comments ?
sha256: 23e2e38cc0f8ae9c358f131d92ce84f2490b65603943c72602be6784872f5c02