Compare commits

...

47 Commits

Author SHA1 Message Date
3wc
bd2ec2cd9d chore: publish 10.3.0+26.2.1 release
All checks were successful
continuous-integration/drone/tag Build is passing
continuous-integration/drone/push Build is passing
2025-04-23 18:38:24 +02:00
3wc
7af65faa5a chore: publish 10.2.1+26.1.2 release
All checks were successful
continuous-integration/drone/tag Build is passing
continuous-integration/drone/push Build is passing
2025-02-26 12:46:39 -05:00
3wc
636e81002d Add missing KC_HTTP_ENABLED 2025-02-26 12:46:02 -05:00
3wc
d3c9fc4784 chore: publish 10.2.0+26.1.2 release
All checks were successful
continuous-integration/drone/tag Build is passing
continuous-integration/drone/push Build is passing
2025-02-26 12:27:10 -05:00
example
41877e765a chore: publish 10.1.1+26.0.1 release
All checks were successful
continuous-integration/drone/tag Build is passing
continuous-integration/drone/push Build is passing
2025-01-28 17:43:08 +01:00
example
c08753a3ff fix: db backup labels 2025-01-28 17:41:20 +01:00
1af583a429 Update .drone.yml
All checks were successful
continuous-integration/drone/push Build is passing
2025-01-08 10:09:13 -08:00
3wc
ef9fbd5436 Add KC_PROXY_HEADERS to make self-service account URL work
All checks were successful
continuous-integration/drone/push Build is passing
2024-11-30 18:50:30 -05:00
3wc
1ee9f5e5d7 chore: publish 10.1.0+26.0.1 release
All checks were successful
continuous-integration/drone/tag Build is passing
continuous-integration/drone/push Build is passing
2024-10-23 14:23:23 -04:00
3wc
88b9c3df1d Add caddy support 2024-10-23 14:22:58 -04:00
9050321e50 chore: publish 10.0.1+26.0.1 release
All checks were successful
continuous-integration/drone/tag Build is passing
continuous-integration/drone/push Build is passing
2024-10-23 13:51:04 -04:00
d63bb8bc54 fix login http form
All checks were successful
continuous-integration/drone/push Build is passing
2024-10-23 13:49:23 -04:00
6053df415e chore: publish 10.0.0+26.0.1 release
All checks were successful
continuous-integration/drone/tag Build is passing
continuous-integration/drone/push Build is passing
2024-10-23 13:30:11 -04:00
3wc
ab009bae84 chore: publish 9.0.0+25.0.6 release
All checks were successful
continuous-integration/drone/push Build is passing
2024-10-02 13:30:05 -04:00
3wc
b02db66093 chore: publish 8.0.1+23.0.6 release
All checks were successful
continuous-integration/drone/push Build is passing
2024-02-08 14:37:28 -03:00
3wc
a4ce30cc5c chore: publish 8.0.0+23.0.0 release
All checks were successful
continuous-integration/drone/push Build is passing
2023-11-27 12:11:46 +00:00
3wc
e7360c2a16 chore: publish 7.2.0+22.0.5 release
All checks were successful
continuous-integration/drone/push Build is passing
2023-11-22 15:27:32 +00:00
3wc
5b83f487ec Fix compose file version 2023-11-22 15:25:43 +00:00
3wc
3d42a26b9e Make persistent theme volume optional 2023-11-22 15:23:27 +00:00
6aac16ebd6 chore: publish 7.1.0+22.0.5 release
All checks were successful
continuous-integration/drone/push Build is passing
2023-11-22 16:15:42 +01:00
a5aae68446 chore: publish 7.0.2+22.0.5 release
All checks were successful
continuous-integration/drone/push Build is passing
2023-11-09 09:47:55 -08:00
3wc
82f6ad5d52 chore: publish 7.0.1+22.0.4 release
All checks were successful
continuous-integration/drone/push Build is passing
2023-10-23 13:56:16 +01:00
04b584ab4f chore: publish 7.0.0+22.0.1 release
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-20 17:04:52 +02:00
3wc
d2b9fffc46 chore: publish 6.0.0+21.0.2 release
All checks were successful
continuous-integration/drone/push Build is passing
2023-04-12 17:34:23 -04:00
3wc
b682264613 chore: publish 6.0.0+21.0.2 release
All checks were successful
continuous-integration/drone/push Build is passing
2023-04-12 17:17:24 -04:00
3wc
be3980d66f chore: publish 5.1.0+20.0.3 release
Some checks failed
continuous-integration/drone/push Build is failing
2023-03-19 19:22:18 -04:00
157d3beaab fix: put the admin password in the container, also add restore capabilities
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-05 12:07:56 +01:00
d432a45c21 chore: publish 5.0.2+20.0.3 release
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-02 10:44:47 +01:00
6a085e0546 fix: change the themes directory
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-02 10:43:03 +01:00
836abe0237 chore: publish 5.0.1+20.0.3 release
All checks were successful
continuous-integration/drone/push Build is passing
2023-02-13 08:56:00 +01:00
3wc
9bd0b2928c Switch to self-hosted stack-ssh-deploy image [mass update]
All checks were successful
continuous-integration/drone/push Build is passing
2023-01-21 11:49:56 -08:00
3wc
f42183601c Fix CI by adding networks: [mass update]
All checks were successful
continuous-integration/drone/push Build is passing
2023-01-20 11:58:41 -08:00
3wc
04618a142b Automatically generate catalogue on release [mass update]
Some checks failed
continuous-integration/drone/push Build is failing
Re: coop-cloud/recipes-catalogue-json#4
2023-01-20 10:27:11 -08:00
3wc
5b306db9b7 Update abra syntax in examples (finally) [mass update]
Some checks failed
continuous-integration/drone/push Build is failing
2023-01-19 16:02:27 -08:00
3wc
c0fab3a3a3 fix: improve DB backup
Some checks failed
continuous-integration/drone/push Build is failing
2022-12-22 19:20:30 -08:00
2ac47abfcd
feat!: new 20.x release
Some checks failed
continuous-integration/drone/push Build is failing
2022-11-16 19:37:17 +01:00
ef6ffd9985
feat: backup labels for mysql 2022-11-16 18:16:25 +01:00
38bdef2fd0 adds welcome_theme env
Some checks failed
continuous-integration/drone/push Build is failing
2022-05-18 14:54:35 +02:00
2de7006106 chore: publish 4.0.1+16.1.1 release
Some checks failed
continuous-integration/drone/push Build is failing
2022-02-10 11:02:13 +01:00
0edb882a06
release: expand notes 2022-01-03 16:09:47 +01:00
2c29c75398
release: add notes 2022-01-02 15:57:16 +01:00
d32ea20cff chore: publish 4.0.0+16.1.0 release 2022-01-02 15:53:12 +01:00
3wc
4e2c0013ce Goodbye, emojis! 😢
[ci skip]
2021-11-23 12:19:05 +02:00
3wc
45918d2451 Add app config tips from docs
Some checks failed
continuous-integration/drone/push Build is failing
2021-10-30 17:27:31 +02:00
1f2ed7932b
feat: support storing themes persistently
Some checks failed
continuous-integration/drone/push Build is failing
2021-10-21 14:16:23 +02:00
6326aff4f0
Revert "feat: custom theme loading"
Some checks failed
continuous-integration/drone/push Build is failing
This reverts commit 3b9d0237b2f462fd56ed209c3977d6fec396acc4.

This doesn't work because we can't get into the root account in the
entrypoint and we need that to use microdnf. Another approach is needed.
2021-10-21 14:14:16 +02:00
f4220652a7 Merge pull request 'Custom theme loading' (#10) from custom-theme-loading into master
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: #10
2021-10-21 11:48:21 +00:00
11 changed files with 118 additions and 57 deletions

View File

@ -3,10 +3,12 @@ kind: pipeline
name: deploy to swarm-test.autonomic.zone
steps:
- name: deployment
image: decentral1se/stack-ssh-deploy:latest
image: git.coopcloud.tech/coop-cloud/stack-ssh-deploy:latest
settings:
host: swarm-test.autonomic.zone
stack: keycloak
networks:
- proxy
generate_secrets: true
purge: true
deploy_key:
@ -23,11 +25,17 @@ trigger:
- master
---
kind: pipeline
name: recipe release
name: generate recipe catalogue
steps:
- name: release a new version
image: thecoopcloud/drone-abra:latest
image: plugins/downstream
settings:
command: recipe keycloak release
deploy_key:
from_secret: abra_bot_deploy_key
server: https://build.coopcloud.tech
token:
from_secret: drone_abra-bot_token
fork: true
repositories:
- toolshed/auto-recipes-catalogue-json
trigger:
event: tag

View File

@ -6,10 +6,13 @@ DOMAIN=keycloak.example.com
LETS_ENCRYPT_ENV=production
ADMIN_USERNAME=admin
WELCOME_THEME=keycloak
# CUSTOM_THEME_ENABLED=1
# CUSTOM_THEME_URL=
COMPOSE_FILE="compose.yml"
SECRET_DB_ROOT_PASSWORD_VERSION=v1
SECRET_DB_PASSWORD_VERSION=v1
SECRET_ADMIN_PASSWORD_VERSION=v1
# Enable persistent theme volume, if you want to apply a custom theme
#COMPOSE_FILE="$COMPOSE_FILE:compose.theme.yml"

View File

@ -6,12 +6,12 @@
<!-- metadata -->
* **Category**: Apps
* **Status**: ❷💛
* **Image**: [`jboss/keycloak`](https://hub.docker.com/r/jboss/keycloak), ❶💚, upstream
* **Status**: 2, beta
* **Image**: [`jboss/keycloak`](https://hub.docker.com/r/jboss/keycloak), 4, upstream
* **Healthcheck**: Yes
* **Backups**: ?
* **Email**: ❸🍎
* **Tests**: ❷💛
* **Email**: 1
* **Tests**: 2
* **SSO**: N/A
<!-- endmetadata -->
@ -21,9 +21,26 @@
2. Deploy [`coop-cloud/traefik`][cc-traefik]
3. `abra app new keycloak --secrets` (optionally with `--pass` if you'd like
to save secrets in `pass`)
4. `abra app YOURAPPDOMAIN config` - be sure to change `$DOMAIN` to something that resolves to
4. `abra app config YOURAPPDOMAIN` - be sure to change `$DOMAIN` to something that resolves to
your Docker swarm box
5. `abra app YOURAPPDOMAIN deploy`
5. `abra app deploy YOURAPPDOMAIN`
## How do I setup a custom theme?
Check [this approach](https://git.autonomic.zone/ruangrupa/login.lumbung.space).
## How do I create another admin user?
- Under the `Master` realm > `Users` > `Add user`
- Create the user and set a temporary password
- Under the `Role Mappings` tab, move `admin` from `Available Roles` into `Assigned Roles`
## How do I configure Keycloak login for..
- [Nextcloud][nextcloud]
- [Peertube][peertube]
[nextcloud]: https://git.coopcloud.tech/coop-cloud/nextcloud
[peertube]: https://git.coopcloud.tech/coop-cloud/peertube
[abra]: https://git.autonomic.zone/autonomic-cooperative/abra
[cc-traefik]: https://git.autonomic.zone/coop-cloud/traefik

View File

@ -1 +0,0 @@
export ENTRYPOINT_CONF_VERSION=v1

10
compose.theme.yml Normal file
View File

@ -0,0 +1,10 @@
---
version: "3.8"
services:
app:
volumes:
- "themes:/opt/keycloak/themes"
volumes:
themes:

View File

@ -3,7 +3,9 @@ version: "3.8"
services:
app:
image: "jboss/keycloak:15.0.2"
image: "keycloak/keycloak:26.2.1"
entrypoint: >
bash -c "KEYCLOAK_ADMIN_PASSWORD=\"$$(cat /run/secrets/admin_password)\" KC_DB_PASSWORD=\"$$(cat /run/secrets/db_password)\" /opt/keycloak/bin/kc.sh start"
networks:
- proxy
- internal
@ -11,27 +13,26 @@ services:
- admin_password
- db_password
environment:
- CUSTOM_THEME_ENABLED
- CUSTOM_THEME_URL
- DB_ADDR=db
- DB_DATABASE=keycloak
- DB_PASSWORD_FILE=/run/secrets/db_password
- DB_USER=keycloak
- DB_VENDOR=mariadb
- KEYCLOAK_PASSWORD_FILE=/run/secrets/admin_password
- KEYCLOAK_USER=${ADMIN_USERNAME}
- PROXY_ADDRESS_FORWARDING=true
configs:
- source: entrypoint_conf
target: /docker-entrypoint.sh
mode: 0555
entrypoint: /docker-entrypoint.sh
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080"]
interval: 30s
timeout: 10s
retries: 10
start_period: 1m
- KC_DB=mariadb
- KC_DB_URL_DATABASE=keycloak
- KC_DB_URL_HOST=db
- KC_HOSTNAME=https://${DOMAIN}
- KC_PROXY=edge
- KC_SPI_CONNECTIONS_JPA_LEGACY_MIGRATION_STRATEGY=update
- KEYCLOAK_ADMIN=${ADMIN_USERNAME}
- KEYCLOAK_WELCOME_THEME=${WELCOME_THEME}
- KC_PROXY_HEADERS=xforwarded
- KC_HTTP_ENABLED=true
# NOTE(3wc): disabled due to missing curl binary, see
# https://git.coopcloud.tech/coop-cloud/keycloak/issues/15
# healthcheck:
# test: ["CMD", "curl", "-f", "http://localhost:8080"]
# interval: 30s
# timeout: 10s
# retries: 10
# start_period: 1m
volumes:
- "providers:/opt/keycloak/providers"
depends_on:
- mariadb
deploy:
@ -47,10 +48,13 @@ services:
- "traefik.http.routers.${STACK_NAME}.middlewares=${STACK_NAME}-redirect"
- "traefik.http.middlewares.${STACK_NAME}-redirect.headers.SSLForceHost=true"
- "traefik.http.middlewares.${STACK_NAME}-redirect.headers.SSLHost=${DOMAIN}"
- "coop-cloud.${STACK_NAME}.version=3.0.0+15.0.2"
- "caddy=${DOMAIN}"
- "caddy.reverse_proxy={{upstreams 8080}}"
- "caddy.tls.on_demand="
- "coop-cloud.${STACK_NAME}.version=10.3.0+26.2.1"
db:
image: "mariadb:10.6"
image: "mariadb:11.7"
environment:
- MYSQL_DATABASE=keycloak
- MYSQL_USER=keycloak
@ -63,6 +67,15 @@ services:
- "mariadb:/var/lib/mysql"
networks:
- internal
deploy:
labels:
backupbot.backup: "true"
backupbot.backup.path: "/tmp/dump.sql.gz"
backupbot.backup.post-hook: "rm -f /tmp/dump.sql.gz"
backupbot.backup.pre-hook: "sh -c 'mariadb-dump -u root -p\"$$(cat /run/secrets/db_root_password)\" keycloak | gzip > /tmp/dump.sql.gz'"
backupbot.restore.pre-hook: "sh -c 'cd /tmp && gzip -d dump.sql.gz'"
backupbot.restore: "true"
backupbot.restore.post-hook: "sh -c 'mariadb -u root -p\"$$(cat /run/secrets/db_root_password)\" keycloak < /tmp/dump.sql && rm -f /tmp/dump.sql'"
networks:
internal:
@ -82,9 +95,4 @@ secrets:
volumes:
mariadb:
configs:
entrypoint_conf:
name: ${STACK_NAME}_entrypoint_conf_${ENTRYPOINT_CONF_VERSION}
file: entrypoint.sh.tmpl
template_driver: golang
providers:

View File

@ -1,12 +0,0 @@
#!/bin/bash
set -e
{{ if eq (env "CUSTOM_THEME_ENABLED") "1" }}
microdnf update && microdnf install git
git clone "$CUSTOM_THEME_URL" "/opt/jboss/keycloak/themes/$CUSTOM_THEME_NAME"
{{ end }}
# upstream entrypoint
# https://github.com/keycloak/keycloak-containers/blob/aa2e5515ccb05116e49ab38839d8fcfdd17c45aa/server/Dockerfile#L30
/usr/local/bin/entrypoint.sh "$@"

12
release/4.0.0+16.1.0 Normal file
View File

@ -0,0 +1,12 @@
This major release comes with a blog post about a CVE:
https://www.keycloak.org/2021/12/cve.html
Not all versions are affected but they're suggesting that people upgrade soon.
As per usual, this upgrade didn't go too smoothly and I ended up having to
undeploy and deploy the new versions. The healtcheck kept failing on the new
instance when trying to deploy alongside the existing old version. Idk, some
docker weirdness.
No app data errors discovered after upgrade.

9
release/5.0.0+20.0.1 Normal file
View File

@ -0,0 +1,9 @@
You'll need to remove `/auth/` from your app SSO URLs, e.g.
https://foo.example.com/auth/realms/foo/protocol/openid-connect/auth
Would become:
https://foo.example.com/realms/foo/protocol/openid-connect/auth
-- decentral1se @ Autonomic

2
release/6.0.0+21.0.2 Normal file
View File

@ -0,0 +1,2 @@
Healthchecks are disabled, see
https://git.coopcloud.tech/coop-cloud/keycloak/issues/15

5
release/7.2.0+22.0.5 Normal file
View File

@ -0,0 +1,5 @@
A persistent volume for themes is now optional, and not enabled by default.
If you are using a custom theme, consult the recipe `.env.sample` to see the new
variables you need to add. You can use `abra app check ...` to verify that
they've been added correctly.