Compare commits

..
17 Commits
Author SHA1 Message Date
moritz 041eb3e4b9 fix(check_blueprints): reapply failed blueprints
continuous-integration/drone/push Build is failing
2026-08-25 23:03:30 +02:00
moritz e2cb5d2aae fix abra.sh return states of quitened functions 2026-08-25 21:27:30 +02:00
moritz 2f01ac90a2 add readiness-hook check_blueprints 2026-08-25 21:22:14 +02:00
javielico 576aa69bdd chore: publish 12.1.0+2026.8.0 release
continuous-integration/drone/push Build is failing
continuous-integration/drone/tag Build is passing
2026-08-19 11:24:09 +00:00
javielico ce22dab747 chore: update image tags
continuous-integration/drone/push Build is failing
2026-08-19 12:20:43 +01:00
javielico c288e6798c chore: publish 12.0.6+2026.5.6 release
continuous-integration/drone/push Build is failing
continuous-integration/drone/tag Build is passing
2026-08-10 19:29:16 +01:00
javielico 6ffae6ef43 chore: update image tags 2026-08-10 19:29:09 +01:00
javielico d06589a5e3 chore: publish 12.0.5+2026.5.5 release
continuous-integration/drone/push Build is failing
continuous-integration/drone/tag Build is passing
2026-08-10 19:26:46 +01:00
javielico ff5f93196d chore: update image tags 2026-08-10 19:26:39 +01:00
javielico d2a060e190 chore: publish 12.0.4+2026.5.4 release
continuous-integration/drone/push Build is failing
continuous-integration/drone/tag Build is passing
2026-08-10 18:46:00 +01:00
javielico 75e2dd93a5 chore: update image tags 2026-08-10 18:45:55 +01:00
javielico 8e90907cad chore: publish 12.0.3+2026.5.3 release
continuous-integration/drone/push Build is failing
continuous-integration/drone/tag Build is passing
2026-08-10 18:42:49 +01:00
javielico 4aca21cf00 chore: update image tags 2026-08-10 18:42:38 +01:00
moritz 95caa207b9 chore: publish 12.0.2+2026.5.2 release
continuous-integration/drone/push Build is failing
continuous-integration/drone/tag Build is passing
2026-07-06 15:03:40 +02:00
moritz 8e27d2c2f5 fix initial authentik setup 2026-07-06 15:01:32 +02:00
carla 9aac732dda chore: publish 12.0.1+2026.5.2 release
continuous-integration/drone/push Build is failing
continuous-integration/drone/tag Build is passing
2026-06-29 15:44:29 +02:00
carla 9dd1543922 feat(abra.sh): add kimai admin group 2026-06-29 15:27:24 +02:00
6 changed files with 49 additions and 9 deletions
+4
View File
@@ -28,6 +28,9 @@ AUTHENTIK_LOG_LEVEL=info
## ADMIN
AUTHENTIK_BOOTSTRAP_EMAIL=admin@example.com
# The admin password will be overwritten by set_admin_pass() use this env only to skip the manual setup process
#AUTHENTIK_BOOTSTRAP_PASSWORD=changemeimmediately!
## EMAIL
AUTHENTIK_EMAIL__HOST=smtp
@@ -128,6 +131,7 @@ COPY_ASSETS="$COPY_ASSETS icon.png|app:/web/dist/assets/icons/"
# SECRET_KIMAI_ID_VERSION=v1
# SECRET_KIMAI_SECRET_VERSION=v1
# APP_ICONS="$APP_ICONS kimai:~/.abra/recipes/authentik/icons/kimai_logo.png"
# KIMAI_GROUP='kimai_admin'
# KIMAI_APPGROUP="$GROUP_ORGANISATION"
# COMPOSE_FILE="$COMPOSE_FILE:compose.zammad.yml"
+38 -4
View File
@@ -61,7 +61,8 @@ from authentik.core.models import Group
groups = [
os.environ.get('WORDPRESS_GROUP', ''),
os.environ.get('MILA_GROUP', '')
os.environ.get('MILA_GROUP', ''),
os.environ.get('KIMAI_GROUP', '')
]
groups = [g.strip() for g in groups if g.strip()]
if not groups:
@@ -77,6 +78,7 @@ for group_name in groups:
group.users.add(admin)
print(f'add akadmin to group {group_name}')
""" 2>&1 | quieten
return ${PIPESTATUS[0]}
}
@@ -107,6 +109,7 @@ with open('/tmp/$1', newline='') as file:
group.users.add(new_user)
print(f'add {username} to group {group_name}')
""" 2>&1 | quieten
return ${PIPESTATUS[0]}
}
set_user_pass() {
@@ -118,7 +121,7 @@ user.set_password('$password')
user.save()
print('Changed $username password')
""" 2>&1 | quieten
return ${PIPESTATUS[0]}
}
set_admin_pass() {
@@ -156,6 +159,7 @@ else:
)
print('Created authentik-bootstrap-token')
""" 2>&1 | quieten
return ${PIPESTATUS[0]}
}
rotate_db_pass() {
@@ -181,6 +185,7 @@ update_and_disable_blueprint() {
apply_blueprint $@
sleep 1
disable_blueprint $@ 2>&1 | quieten
return ${PIPESTATUS[0]}
}
disable_blueprint() {
@@ -194,6 +199,7 @@ enable_blueprint() {
apply_blueprint() {
echo apply blueprint $@
ak apply_blueprint $@ 2>&1 | quieten
return ${PIPESTATUS[0]}
}
blueprint_state() {
@@ -211,7 +217,7 @@ time.sleep(1)
blueprint.save()
print(f'{blueprint.name} enabled: {blueprint.enabled}')
""" 2>&1 | quieten
return ${PIPESTATUS[0]}
}
# This function adds each application with its name, slug and group if passed
@@ -241,6 +247,7 @@ for name, details in applications.items():
app.open_in_new_tab = True
app.save()
""" 2>&1 | quieten
return ${PIPESTATUS[0]}
}
# This function adds one application with its name, slug and group if passed
@@ -270,6 +277,7 @@ else:
app.open_in_new_tab = True
app.save()
""" 2>&1 | quieten
return ${PIPESTATUS[0]}
}
## This function is for renaming apps - usage: rename "old name" "new name"
@@ -286,12 +294,13 @@ if app:
else:
print(f'No application found with name: {old_name}')
""" 2>&1 | quieten
return ${PIPESTATUS[0]}
}
quieten() {
# 'SyntaxWarning|version_regex|"http\['
# is a workaround to get rid of some verbose syntax warnings, this might be fixed with another version
grep -Pv '"level": "(info|debug)"|SyntaxWarning|version_regex|"http\[|RuntimeWarning:|### authentik shell|### Node| objects imported automatically|^$'
grep -Pv '"level": "(info|debug)"|SyntaxWarning|version_regex|"http\[|RuntimeWarning:|### authentik shell|### Node| objects imported automatically|^$' || true
}
add_email_templates() {
@@ -385,6 +394,29 @@ Brand.objects.filter(default=True).delete()
apply_blueprints
}
check_blueprints() {
failed_blueprints=$(/manage.py shell -c """
print(','.join(b.path for b in BlueprintInstance.objects.exclude(status='successful').exclude(name='Default - Out-of-box-experience flow')))
""" 2>&1 | quieten | tail -n1)
if [ -z "$failed_blueprints" ]; then
echo "All Blueprints Successful"
return 0
fi
echo "These Blueprints failed:"
echo "$failed_blueprints" | tr ',' '\n'
echo "execute failed Blueprints"
export AUTHENTIK_LOG_LEVEL=warning
for bp in $(echo "$failed_blueprints" | tr ',' '\n'); do
echo "Applying: $bp"
ak apply_blueprint "/blueprints/$bp" 2>&1 | quieten
done
return 1
}
get_certificate() {
/manage.py shell -c """
provider_name='$1'
@@ -396,12 +428,14 @@ saml = provider.samlprovider
cert = saml.signing_kp
print(''.join(cert.certificate_data.splitlines()[1:-1]))
""" 2>&1 | quieten
return ${PIPESTATUS[0]}
}
get_user_uid() {
/manage.py shell -c """
print(User.objects.filter(username='$1').first().uid)
""" 2>&1 | quieten
return ${PIPESTATUS[0]}
}
get_secrets() {
+1 -1
View File
@@ -1,7 +1,7 @@
version: "3.8"
services:
authentik_ldap:
image: ghcr.io/goauthentik/ldap:2026.5.2
image: ghcr.io/goauthentik/ldap:2026.8.0
# Optionally specify which networks the container should be
# might be needed to reach the core authentik server
networks:
+4 -4
View File
@@ -22,6 +22,7 @@ x-env: &env
- AUTHENTIK_FOOTER_LINKS
- AUTHENTIK_IMPERSONATION
- AUTHENTIK_BOOTSTRAP_EMAIL
- AUTHENTIK_BOOTSTRAP_PASSWORD
- WELCOME_MESSAGE
- DEFAULT_LANGUAGE
- EMAIL_SUBJECT
@@ -34,7 +35,7 @@ x-env: &env
version: '3.8'
services:
app:
image: ghcr.io/goauthentik/server:2026.5.2
image: ghcr.io/goauthentik/server:2026.8.0
command: server
depends_on:
- db
@@ -70,14 +71,14 @@ services:
- "traefik.http.routers.${STACK_NAME}.middlewares=${STACK_NAME}-redirect,${STACK_NAME}-frameOptions,${STACK_NAME}-redirect"
- "traefik.http.middlewares.${STACK_NAME}-frameOptions.headers.customFrameOptionsValue=SAMEORIGIN"
- "traefik.http.middlewares.${STACK_NAME}-frameOptions.headers.contentSecurityPolicy=frame-ancestors ${X_FRAME_OPTIONS_ALLOW_FROM}"
- "coop-cloud.${STACK_NAME}.version=12.0.0+2026.5.2"
- "coop-cloud.${STACK_NAME}.version=12.1.0+2026.8.0"
- "traefik.http.middlewares.${STACK_NAME}-redirect.redirectregex.regex=^https://(${REDIRECTS})/(.*)"
- "traefik.http.middlewares.${STACK_NAME}-redirect.redirectregex.replacement=https://${DOMAIN}/$${2}"
- "traefik.http.middlewares.${STACK_NAME}-redirect.redirectregex.permanent=true"
- "coop-cloud.${STACK_NAME}.timeout=${TIMEOUT}"
worker:
image: ghcr.io/goauthentik/server:2026.5.2
image: ghcr.io/goauthentik/server:2026.8.0
command: worker
depends_on:
- db
@@ -93,7 +94,6 @@ services:
volumes:
- data:/data
- media:/media
- /dev/null:/blueprints/default/flow-oobe.yaml
- templates:/templates
- certs:/certs
configs:
+1
View File
@@ -0,0 +1 @@
adds admin group for kimai
+1
View File
@@ -0,0 +1 @@
blueprints: handle integrity exception when applying blueprints (cherry-pick #22599 to version-2026.5) (#22927)