Files
computer-playbook/roles/web-app-openproject/vars/main.yml
Kevin Veen-Birkenbach f55b0ca797 web-app-openproject: migrate from OpenProject 13 to 14
- updated base image from openproject/community:13 to openproject/openproject:14
- added dedicated migration task (db:migrate + schema cache clear)
- moved settings, ldap, and admin tasks to separate files
- adjusted docker-compose template to use OPENPROJECT_WEB_SERVICE / OPENPROJECT_SEEDER_SERVICE variables
- replaced postinstall.sh with precompile-assets.sh
- ensured depends_on uses variable-based service names

Ref: https://chatgpt.com/share/68d57770-2430-800f-ae53-e7eda6993a8d
2025-09-25 19:10:46 +02:00

68 lines
3.6 KiB
YAML

# General
application_id: "web-app-openproject"
# Database
database_type: "postgres"
# Docker
docker_repository_branch: "stable/{{ OPENPROJECT_VERSION }}"
docker_repository_address: "https://github.com/opf/openproject-deploy"
docker_pull_git_repository: true
docker_compose_flush_handlers: false
# Open Project Specific
OPENPROJECT_VERSION: "{{ applications | get_app_conf(application_id, 'docker.services.web.version') }}"
OPENPROJECT_IMAGE: "{{ applications | get_app_conf(application_id, 'docker.services.web.image') }}"
OPENPROJECT_VOLUME: "{{ applications | get_app_conf(application_id, 'docker.volumes.data') }}"
OPENPROJECT_WEB_SERVICE: "web"
OPENPROJECT_WEB_CONTAINER: "{{ applications | get_app_conf(application_id, 'docker.services.' ~ OPENPROJECT_WEB_SERVICE ~ '.name') }}"
OPENPROJECT_SEEDER_SERVICE: "seeder"
OPENPROJECT_SEEDER_CONTAINER: "{{ applications | get_app_conf(application_id, 'docker.services.' ~ OPENPROJECT_SEEDER_SERVICE ~ '.name') }}"
OPENPROJECT_CRON_CONTAINER: "{{ applications | get_app_conf(application_id, 'docker.services.cron.name') }}"
OPENPROJECT_PROXY_CONTAINER: "{{ applications | get_app_conf(application_id, 'docker.services.proxy.name') }}"
OPENPROJECT_WORKER_CONTAINER: "{{ applications | get_app_conf(application_id, 'docker.services.worker.name') }}"
## Admin
OPENPROJECT_ADMINISTRATOR_USERNAME: "{{ users.administrator.username }}"
OPENPROJECT_ADMINISTRATOR_PASSWORD: "{{ users.administrator.password }}"
OPENPROJECT_ADMINISTRATOR_EMAIL: "{{ users.administrator.email }}"
# Open Project Cache
OPENPROJECT_CACHE_CONTAINER: "{{ applications | get_app_conf(application_id, 'docker.services.cache.name') }}"
OPENPROJECT_CACHE_IMAGE: "{{ applications
| get_app_conf(application_id, 'docker.services.cache.image')
or applications
| get_app_conf('svc-db-memcached', 'docker.services.memcached.image')
}}"
OPENPROJECT_CACHE_VERSION: "{{ applications
| get_app_conf(application_id, 'docker.services.cache.version')
or applications
| get_app_conf('svc-db-memcached', 'docker.services.memcached.version')
}}"
OPENPROJECT_PLUGINS_FOLDER: "{{ docker_compose.directories.volumes }}plugins/"
OPENPROJECT_CUSTOM_IMAGE: "custom_openproject"
# The following volume doesn't have a practcical function. It just exist to prevent the creation of unnecessary anonymous volumes
OPENPROJECT_DUMMY_VOLUME: "{{ docker_compose.directories.volumes }}dummy_volume"
OPENPROJECT_RAILS_SETTINGS:
email_delivery_method: "smtp"
smtp_address: "{{ SYSTEM_EMAIL.HOST }}"
smtp_domain: "{{ SYSTEM_EMAIL.DOMAIN }}"
smtp_user_name: "{{ users['no-reply'].email }}"
smtp_password: "{{ users['no-reply'].mailu_token }}"
smtp_ssl: false
## LDAP
OPENPROJECT_LDAP_ENABLED: "{{ applications | get_app_conf(application_id, 'features.ldap') }}"
OPENPROJECT_LDAP_FILTER_ADMINISTRATORS_ENABLED: "{{ applications | get_app_conf(application_id, 'ldap.filters.administrators') }}"
OPENPROJECT_LDAP_FILTER_USERS_ENABLED: "{{ applications | get_app_conf(application_id, 'ldap.filters.users') }}"
OPENPROJECT_LDAP_FILTERS:
# The administrator filter just works in the Enterprise edition
ADMINISTRATORS: "{{ '(memberOf=cn=openproject-admins,' ~ LDAP.DN.OU.ROLES ~ ')' if OPENPROJECT_LDAP_FILTER_ADMINISTRATORS_ENABLED | bool else '' }}"
USERS: "{{ '(memberOf=cn=openproject-users,' ~ LDAP.DN.OU.ROLES ~ ')' if OPENPROJECT_LDAP_FILTER_USERS_ENABLED | bool else '' }}"