Current Situation:
- Currently, the WBS docker setup is mixing code, configuration and data so that backups and upgrading is complicated and error prone.
- There is a shared volume between wikibase instance and job_runner instance.
- Does this contain code?
- How is this code updated during upgrades?
- Does this contain configuration as well?
- It might be not clear where a WBS instance stores all its data.
- How many databases are there?
- In which docker volumes?
- Are they all in volumes?
- It is unclear how to configure the instance.
- What values are configured already?
- How to overwrite those?
- How is config taken from one version to another?
- It is unclear how customization such as skins, extensions, even a custom logo are supposed to be integrated.
Goal:
- Data, Config and Code are clearly separated.
- Code is immutable.
- Users can reason about
- How to configure (LocalSettings)
- How to manage and backup data (docker volumes)
- How to upgrade code (docker images)
- How to customize (skins, extensions, logo)
Acceptance Criteria:
- Data is completely stored in docker volumes - but nothing else
- It is clear what can be configured by the users and how this configuration overwrites the stock config
- It is clear how configuration is taken from version to version during upgrades
- It is clear how data is taken from version to version during upgrades
- It is clear how to backup and restore data
- It is documented both in code and as external documentation
[optional] Notes:
- This will need splitting into smaller sub tasks
[optional] Open Questions:
- none