From c642b8ae142790e398b8ccb2dc438a120dcc3234 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 1 Oct 2021 16:44:22 +1300 Subject: [PATCH] Start RSS --- manuscript/ha-docker-swarm/authelia.md | 208 ------------------------- manuscript/images/authelia.png | Bin 38699 -> 0 bytes manuscript/recipes/rss.md | 1 + mkdocs.yml | 4 +- 4 files changed, 3 insertions(+), 210 deletions(-) delete mode 100644 manuscript/ha-docker-swarm/authelia.md delete mode 100644 manuscript/images/authelia.png create mode 100644 manuscript/recipes/rss.md diff --git a/manuscript/ha-docker-swarm/authelia.md b/manuscript/ha-docker-swarm/authelia.md deleted file mode 100644 index 9fb5ed4..0000000 --- a/manuscript/ha-docker-swarm/authelia.md +++ /dev/null @@ -1,208 +0,0 @@ -# Authelia - -[Authelia](https://github.com/authelia/authelia) is an open-source authentication and authorization server providing 2-factor authentication and single sign-on (SSO) for your applications via a web portal. It acts as a companion of reverse proxies like Nginx, Traefik, or HAProxy to let them know whether queries should pass through. Unauthenticated users are redirected to Authelia Sign-in portal instead. - -Authelia can be installed manually or can be installed using [Docker](https://hub.docker.com/r/authelia/authelia). - -Features include - -* Multiple two-factor methods such as - * [Physical Security Key](https://www.authelia.com/docs/features/2fa/security-key) (Yubikey) - * OTP using Google Authenticator - * Mobile Notifications -* Lockout users after too many failed login attempts -* Highly Customizable Access Control using rules to match criteria such as subdomain, username, groups the user is in, and Network -* Authelia [Community](https://discord.authelia.com/) Support -* Full list of features can be viewed [Here](https://www.authelia.com/docs/features/) - - -![Authelia Screenshot](../images/authelia.png) - ---8<-- "recipe-tfa-ingredients.md" - - - -## Preparation - -### Setup data locations - -First, we create a directory to hold the data which authelia will serve: - -``` -mkdir /var/data/config/authelia -cd /var/data/config/authelia -``` - -### Create config file - -Authelia configurations are defined in configuration.yml. - -```yml -############################################################### -# Authelia configuration # -############################################################### - -host: 0.0.0.0 -port: 9091 -log_level: warn - -# This secret can also be set using the env variables AUTHELIA_JWT_SECRET_FILE -# I used this site to generate the secret: https://www.grc.com/passwords.htm -jwt_secret: SECRET_GOES_HERE - -# https://docs.authelia.com/configuration/miscellaneous.html#default-redirection-url -default_redirection_url: https://authelia.example.com - -totp: - issuer: authelia.com - period: 30 - skew: 1 - -authentication_backend: - file: - path: /config/users_database.yml - # customize passwords based on https://docs.authelia.com/configuration/authentication/file.html - password: - algorithm: argon2id - iterations: 1 - salt_length: 16 - parallelism: 8 - memory: 1024 # blocks this much of the RAM. Tune this. - -# https://docs.authelia.com/configuration/access-control.html -access_control: - default_policy: one_factor - rules: - - domain: "*.example.com" - policy: one_factor - - - domain: "bitwarden.example.com" - policy: two_factor - -session: - name: authelia_session - # This secret can also be set using the env variables AUTHELIA_SESSION_SECRET_FILE - # Used a different secret, but the same site as jwt_secret above. - secret: SECRET_GOES_HERE - expiration: 3600 # 1 hour - inactivity: 300 # 5 minutes - domain: example.com # Should match whatever your root protected domain is - -regulation: - max_retries: 3 - find_time: 120 - ban_time: 300 - -storage: - local: - path: /config/db.sqlite3 - - -notifier: - smtp: - username: SMTP_USERNAME - # This secret can also be set using the env variables AUTHELIA_NOTIFIER_SMTP_PASSWORD_FILE - # password: # use docker secret file instead AUTHELIA_NOTIFIER_SMTP_PASSWORD_FILE - host: SMTP_HOST - port: 587 #465 - sender: SENDER_EMAIL - -# For testing purpose, notifications can be sent in a file. Be sure map the volume in docker-compose. -# filesystem: -# filename: /tmp/authelia/notification.txt - -``` - - -### Create User Accounts -Create users_database.yml this will be where we can create user accounts and give them groups - -```yaml -users: - username: - displayname: "Funky Penguin" - password: "HASHED_PASSWORD" - email: myemail@example.com - groups: - - admins - - dev -``` - -To create a hashed password you can run the following command -`docker run authelia/authelia:latest authelia hash-password YOUR_PASSWORD` - - - -### Setup Docker Swarm - -Create a docker swarm config file in docker-compose syntax (v3), something like this: - ---8<-- "premix-cta.md" - - -```yaml -version: "3.4" - -services: - authelia: - image: authelia/authelia:4.21.0 - volumes: - - /var/data/config/authelia:/config - networks: - - traefik_public - deploy: - labels: - - "traefik.enable=true" - - "traefik.http.routers.authelia.entrypoints=https" - - "traefik.http.routers.authelia.rule=Host(`authelia.example.com`)" - - "traefik.http.middlewares.authelia.forwardauth.address=http://authelia:9091/api/verify?rd=https://authelia.example.com" - - "traefik.http.middlewares.authelia.forwardauth.trustForwardHeader=true" - - "traefik.http.middlewares.authelia.forwardauth.authResponseHeaders=Remote-User, Remote-Groups" - - "traefik.http.services.authelia.loadbalancer.server.port=9091" - - -networks: - traefik_public: - external: true -``` - - -### Traefik Configuration - -Now that we have created authelia we will need to configure traefik so we can run authelia in front of our services. We will first need to create a traefik middleware in `/var/data/config/traefik/middlewares.yml` - - -```yaml -http: - middlewares: - forward-auth: - forwardAuth: - address: "http://authelia:9091/api/verify?rd=https://authelia.example.com" - trustForwardHeader: true - authResponseHeaders: - - "Remote-User" - - "Remote-Groups" -``` - -We will then need to add the following to `traefik.toml` - -```yaml -[providers.file] - filename = "/etc/traefik/dynamic.yml" -``` - -Now if we wish to put authelia behind a service all we will need to do is add the following to the labels - -`- "traefik.http.routers.service.middlewares=forward-auth@file"` - - - - -## Serving - -### Launch the Authelia! - -Launch the Authelia stack by running ```docker stack deploy authelia -c ``` - - ---8<-- "recipe-footer.md" diff --git a/manuscript/images/authelia.png b/manuscript/images/authelia.png deleted file mode 100644 index ab573d4d9e832671e4f3ec25273747ce0d6463f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38699 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 a`pH@38}Z1c{L}s|;A3Q9ew>1Ky7FI=!XlOc diff --git a/manuscript/recipes/rss.md b/manuscript/recipes/rss.md new file mode 100644 index 0000000..17f70d4 --- /dev/null +++ b/manuscript/recipes/rss.md @@ -0,0 +1 @@ +# RSS Bridge \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index 0b1efe8..1e72695 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -49,7 +49,6 @@ nav: - Dex (static): ha-docker-swarm/traefik-forward-auth/dex-static.md - Google: ha-docker-swarm/traefik-forward-auth/google.md - KeyCloak: ha-docker-swarm/traefik-forward-auth/keycloak.md - - Authelia: ha-docker-swarm/authelia.md - Registry: ha-docker-swarm/registry.md - Mail Server: recipes/mail.md - Duplicity: recipes/duplicity.md @@ -120,7 +119,8 @@ nav: - Photoprism: recipes/photoprism.md - Portainer: recipes/portainer.md - Realms: recipes/realms.md - - Restic: recipes/restic.md + - Restic: recipes/restic.md + - RSS: recipes/rss.md - Tiny Tiny RSS: recipes/tiny-tiny-rss.md - Traefik: ha-docker-swarm/traefik.md - Traefik Forward Auth: