From aaa0cf501ce44a7c7c54c7c5c6485cfb7f60e583 Mon Sep 17 00:00:00 2001 From: shu Date: Mon, 27 Jul 2026 00:22:33 +0800 Subject: Add Docker Compose deployment --- docker/authelia/configuration.template.yml | 66 +++++++++++++++++++++++++++++ docker/authelia/users_database.template.yml | 8 ++++ docker/caddy/Caddyfile | 44 +++++++++++++++++++ docker/caddy/Dockerfile | 11 +++++ docker/tiddlywiki/Dockerfile | 13 ++++++ 5 files changed, 142 insertions(+) create mode 100644 docker/authelia/configuration.template.yml create mode 100644 docker/authelia/users_database.template.yml create mode 100644 docker/caddy/Caddyfile create mode 100644 docker/caddy/Dockerfile create mode 100644 docker/tiddlywiki/Dockerfile (limited to 'docker') diff --git a/docker/authelia/configuration.template.yml b/docker/authelia/configuration.template.yml new file mode 100644 index 0000000..bd29e00 --- /dev/null +++ b/docker/authelia/configuration.template.yml @@ -0,0 +1,66 @@ +server: + address: tcp://0.0.0.0:9091/ + +log: + level: info + format: text + +theme: auto + +identity_validation: + reset_password: {} + +authentication_backend: + password_reset: + disable: true + file: + path: /config/users_database.yml + watch: true + password: + algorithm: argon2 + argon2: + variant: argon2id + iterations: 3 + memory: 65536 + parallelism: 4 + key_length: 32 + salt_length: 16 + +access_control: + default_policy: deny + rules: + - domain: auth.__BASE_DOMAIN__ + policy: bypass + - domain: + - wiki.__BASE_DOMAIN__ + - dav.__BASE_DOMAIN__ + policy: one_factor + subject: + - group:tdwiki + +session: + name: authelia_session + same_site: lax + inactivity: 1h + expiration: 12h + remember_me: 30d + cookies: + - domain: __BASE_DOMAIN__ + authelia_url: https://auth.__BASE_DOMAIN__ + default_redirection_url: https://wiki.__BASE_DOMAIN__ + redis: + host: redis + port: 6379 + +regulation: + max_retries: 5 + find_time: 2m + ban_time: 10m + +storage: + local: + path: /var/lib/authelia/db.sqlite3 + +notifier: + filesystem: + filename: /var/lib/authelia/notification.txt diff --git a/docker/authelia/users_database.template.yml b/docker/authelia/users_database.template.yml new file mode 100644 index 0000000..2ea7159 --- /dev/null +++ b/docker/authelia/users_database.template.yml @@ -0,0 +1,8 @@ +users: + __USERNAME__: + disabled: false + displayname: "__DISPLAY_NAME__" + password: "__PASSWORD_HASH__" + email: "__EMAIL__" + groups: + - tdwiki diff --git a/docker/caddy/Caddyfile b/docker/caddy/Caddyfile new file mode 100644 index 0000000..aee104b --- /dev/null +++ b/docker/caddy/Caddyfile @@ -0,0 +1,44 @@ +{ + admin off +} + +(authelia) { + forward_auth authelia:9091 { + uri /api/authz/forward-auth + copy_headers Remote-User Remote-Groups Remote-Email Remote-Name + } +} + +auth.{$BASE_DOMAIN:tdwiki.home.arpa} { + tls internal + encode zstd gzip + reverse_proxy authelia:9091 +} + +wiki.{$BASE_DOMAIN:tdwiki.home.arpa} { + tls internal + encode zstd gzip + import authelia + + header { + X-Content-Type-Options nosniff + Referrer-Policy same-origin + } + + reverse_proxy tiddlywiki:8080 +} + +dav.{$BASE_DOMAIN:tdwiki.home.arpa} { + tls internal + import authelia + + header { + X-Content-Type-Options nosniff + } + + route { + webdav { + root /srv/files + } + } +} diff --git a/docker/caddy/Dockerfile b/docker/caddy/Dockerfile new file mode 100644 index 0000000..9f06d02 --- /dev/null +++ b/docker/caddy/Dockerfile @@ -0,0 +1,11 @@ +FROM caddy:2.11.4-builder AS builder + +ARG GOPROXY=https://proxy.golang.org,direct +ENV GOPROXY=${GOPROXY} + +RUN xcaddy build \ + --with github.com/mholt/caddy-webdav@fa2f366b0d75e54c2e381c0aefc3a8df8bf5794b + +FROM caddy:2.11.4-alpine + +COPY --from=builder /usr/bin/caddy /usr/bin/caddy diff --git a/docker/tiddlywiki/Dockerfile b/docker/tiddlywiki/Dockerfile new file mode 100644 index 0000000..cfee4aa --- /dev/null +++ b/docker/tiddlywiki/Dockerfile @@ -0,0 +1,13 @@ +FROM node:22-alpine + +ARG TIDDLYWIKI_VERSION=5.4.1 + +RUN npm install --global "tiddlywiki@${TIDDLYWIKI_VERSION}" \ + && npm cache clean --force + +WORKDIR /wiki +USER node + +EXPOSE 8080 + +ENTRYPOINT ["tiddlywiki"] -- cgit v1.2.3