diff --git a/lotus-land-story/linkding.yml b/lotus-land-story/linkding.yml
new file mode 100644
index 0000000..0becb89
--- /dev/null
+++ b/lotus-land-story/linkding.yml
@@ -0,0 +1,40 @@
+- name: Set up linkding
+ hosts: lotus-land-story
+ vars_files:
+ - vars.yml
+ vars:
+ version: 1.36.0-plus
+ tasks:
+
+ - name: Make /mnt/lotus-land-story/linkding
+ ansible.builtin.file:
+ path: /mnt/lotus-land-story/{{ item }}
+ state: directory
+ mode: "0755"
+ loop:
+ - linkding
+
+ - name: Run linkding
+ community.docker.docker_container:
+ name: linkding
+ image: sissbruecker/linkding:{{ version }}
+ restart: true
+ env:
+ LD_ENABLE_OIDC: "True"
+ OIDC_OP_AUTHORIZATION_ENDPOINT: https://auth.kejadlen.dev/api/oidc/authorization
+ OIDC_OP_TOKEN_ENDPOINT: https://auth.kejadlen.dev/api/oidc/token
+ OIDC_OP_USER_ENDPOINT: https://auth.kejadlen.dev/api/oidc/userinfo
+ OIDC_OP_JWKS_ENDPOINT: https://auth.kejadlen.dev/jwks.json
+ OIDC_RP_CLIENT_ID: linkding
+ OIDC_RP_CLIENT_SECRET: "{{ linkding.oidc_rp_client_secret }}"
+ volumes:
+ - /mnt/lotus-land-story/linkding:/etc/linkding/data
+ restart_policy: unless-stopped
+ networks:
+ - name: lotus_land_story
+
+ handlers:
+ - name: Import restarts
+ ansible.builtin.import_tasks: restarts.yml
+
+# vim: ft=yaml.ansible
diff --git a/lotus-land-story/miniflux.yml b/lotus-land-story/miniflux.yml
index 60813bc..a225e03 100644
--- a/lotus-land-story/miniflux.yml
+++ b/lotus-land-story/miniflux.yml
@@ -45,7 +45,7 @@
vars_files:
- vars.yml
vars:
- version: 2.2.2
+ version: 2.2.3
tasks:
- name: Get docker network
diff --git a/lotus-land-story/templates/Caddyfile b/lotus-land-story/templates/Caddyfile
index 8784d26..5937bb2 100644
--- a/lotus-land-story/templates/Caddyfile
+++ b/lotus-land-story/templates/Caddyfile
@@ -143,4 +143,8 @@ cadvisor.kejadlen.dev {
}
}
+links.kejadlen.dev {
+ reverse_proxy linkding:9090
+}
+
# vim: ts=4
diff --git a/lotus-land-story/templates/authelia_configuration.yml b/lotus-land-story/templates/authelia_configuration.yml
index beed258..5c7a511 100644
--- a/lotus-land-story/templates/authelia_configuration.yml
+++ b/lotus-land-story/templates/authelia_configuration.yml
@@ -115,3 +115,16 @@ identity_providers:
- email
- profile
- groups
+
+ # https://linkding.link/options/#ld_enable_oidc
+ - client_id: linkding
+ client_name: linkding
+ client_secret: $argon2id$v=19$m=65536,t=3,p=4$dEQme8tnUUYArRvqSMEoUQ$nNygQmREKhzqf0OBLz0AY1th7mV0PZ1DS6M2GBdU+cE
+ public: false
+ token_endpoint_auth_method: client_secret_post
+ redirect_uris:
+ - https://links.kejadlen.dev/oidc/callback/
+ scopes:
+ - openid
+ - email
+ - profile
diff --git a/main.tf b/main.tf
index 0a2bca4..cd08052 100644
--- a/main.tf
+++ b/main.tf
@@ -19,6 +19,11 @@ variable "soa_email" {
nullable = false
}
+variable "subdomains" {
+ type = map(list(string))
+ nullable = false
+}
+
data "linode_instances" "ramble_hard" {
filter {
name = "label"