## Changes ### Identity Provider (Authentik) - ✅ Deployed Authentik 2025.10.3 as identity provider - ✅ Configured automatic bootstrap with admin account (akadmin) - ✅ Fixed OIDC provider creation with correct redirect_uris format - ✅ Added automated OAuth2/OIDC provider configuration for Nextcloud - ✅ API-driven provider setup eliminates manual configuration ### Nextcloud Configuration - ✅ Fixed reverse proxy header configuration (trusted_proxies) - ✅ Added missing database indices (fs_storage_path_prefix) - ✅ Ran mimetype migrations for proper file type handling - ✅ Verified PHP upload limits (16GB upload_max_filesize) - ✅ Configured OIDC integration with Authentik - ✅ "Login with Authentik" button auto-configured ### Automation Scripts - ✅ Added deploy-client.sh for automated client deployment - ✅ Added rebuild-client.sh for infrastructure rebuild - ✅ Added destroy-client.sh for cleanup - ✅ Full deployment now takes ~10-15 minutes end-to-end ### Documentation - ✅ Updated README with automated deployment instructions - ✅ Added SSO automation workflow documentation - ✅ Added automation status tracking - ✅ Updated project reference with Authentik details ### Technical Fixes - Fixed Authentik API redirect_uris format (requires list of dicts with matching_mode) - Fixed Nextcloud OIDC command (user_oidc:provider not user_oidc:provider:add) - Fixed file lookup in Ansible (changed to slurp for remote files) - Updated Traefik to v3.6 for Docker API 1.44 compatibility - Improved error handling in app installation tasks ## Security - All credentials stored in SOPS-encrypted secrets - Trusted proxy configuration prevents IP spoofing - Bootstrap tokens auto-generated and secured ## Result Fully automated SSO deployment - no manual configuration required! 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
64 lines
2.8 KiB
YAML
64 lines
2.8 KiB
YAML
---
|
|
# Automated Nextcloud installation tasks using occ commands
|
|
|
|
- name: Wait for Nextcloud container to be healthy
|
|
shell: docker exec -u www-data nextcloud php -v
|
|
register: nextcloud_health
|
|
retries: 30
|
|
delay: 10
|
|
until: nextcloud_health.rc == 0
|
|
changed_when: false
|
|
|
|
- name: Wait for Nextcloud auto-installation to complete
|
|
shell: "docker exec -u www-data nextcloud php occ status 2>&1 | grep -q 'installed: true'"
|
|
register: nextcloud_status
|
|
retries: 60
|
|
delay: 5
|
|
until: nextcloud_status.rc == 0
|
|
changed_when: false
|
|
|
|
- name: Configure trusted domains
|
|
shell: |
|
|
docker exec -u www-data nextcloud php occ config:system:set trusted_domains 0 --value="{{ nextcloud_domain }}"
|
|
|
|
- name: Configure overwrite settings for reverse proxy
|
|
shell: |
|
|
docker exec -u www-data nextcloud php occ config:system:set overwriteprotocol --value="https"
|
|
docker exec -u www-data nextcloud php occ config:system:set overwritehost --value="{{ nextcloud_domain }}"
|
|
docker exec -u www-data nextcloud php occ config:system:set overwrite.cli.url --value="https://{{ nextcloud_domain }}"
|
|
docker exec -u www-data nextcloud php occ config:system:set trusted_proxies 0 --value="172.18.0.0/16"
|
|
docker exec -u www-data nextcloud php occ config:system:set trusted_proxies 1 --value="172.19.0.0/16"
|
|
docker exec -u www-data nextcloud php occ config:system:set trusted_proxies 2 --value="172.20.0.0/16"
|
|
docker exec -u www-data nextcloud php occ config:system:set trusted_proxies 3 --value="172.21.0.0/16"
|
|
docker exec -u www-data nextcloud php occ config:system:set forwarded_for_headers 0 --value="HTTP_X_FORWARDED_FOR"
|
|
|
|
- name: Configure Redis for caching
|
|
shell: |
|
|
docker exec -u www-data nextcloud php occ config:system:set redis host --value="{{ nextcloud_redis_host }}"
|
|
docker exec -u www-data nextcloud php occ config:system:set redis port --value="{{ nextcloud_redis_port }}"
|
|
docker exec -u www-data nextcloud php occ config:system:set memcache.local --value="\OC\Memcache\Redis"
|
|
docker exec -u www-data nextcloud php occ config:system:set memcache.locking --value="\OC\Memcache\Redis"
|
|
|
|
- name: Set default phone region
|
|
shell: |
|
|
docker exec -u www-data nextcloud php occ config:system:set default_phone_region --value="NL"
|
|
|
|
- name: Run background jobs via cron
|
|
shell: |
|
|
docker exec -u www-data nextcloud php occ background:cron
|
|
|
|
- name: Add missing database indices
|
|
shell: |
|
|
docker exec -u www-data nextcloud php occ db:add-missing-indices
|
|
register: add_indices
|
|
changed_when: "'Adding' in add_indices.stdout"
|
|
failed_when: false
|
|
|
|
- name: Run expensive maintenance repairs (mimetype migrations)
|
|
shell: |
|
|
docker exec -u www-data nextcloud php occ maintenance:repair --include-expensive
|
|
register: maintenance_repair
|
|
changed_when: "'mimetype' in maintenance_repair.stdout"
|
|
failed_when: false
|
|
async: 600
|
|
poll: 10
|