meta data for this page
Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| linux:sw:openproject:package_to_docker [2026/06/29 16:31] – created niziak | linux:sw:openproject:package_to_docker [2026/06/30 11:46] (current) – niziak | ||
|---|---|---|---|
| Line 3: | Line 3: | ||
| Migrate packaged installation to docker compose. | Migrate packaged installation to docker compose. | ||
| + | WHY: | ||
| + | * it will be only official supported method in future (until current distros reaches EOL) | ||
| + | * it can be scaled easily (i.e. docker swarm) | ||
| + | * easier migration to another machine | ||
| + | |||
| + | References: | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | |||
| + | |||
| + | ===== setup docker compose ===== | ||
| + | |||
| + | Setup all containers... | ||
| + | |||
| + | ===== database migration ===== | ||
| + | |||
| + | Packaged installation creates binary '' | ||
| + | |||
| + | Packaged installation: | ||
| + | * user: openproject | ||
| + | * database: | ||
| + | * schema: openproject | ||
| + | * owner (role): openproject | ||
| + | |||
| + | New docker installation: | ||
| + | * user: postgres | ||
| + | * database: | ||
| + | * schema: public | ||
| + | * owner (role): postgres | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | First create '' | ||
| + | <code bash> | ||
| + | pg_dump $(sudo openproject config:get DATABASE_URL) -x -O | zstd > openproject.sql.zst | ||
| + | </ | ||
| + | |||
| + | Restore '' | ||
| + | |||
| + | <code bash> | ||
| + | docker compose down | ||
| + | docker compose up -d db | ||
| + | docker compose exec -it -u postgres db psql -c "DROP DATABASE openproject;" | ||
| + | docker compose exec -it -u postgres db psql -c " | ||
| + | </ | ||
| + | |||
| + | Restore '' | ||
| + | |||
| + | <code bash> | ||
| + | zstd -d -c openproject.sql.zst | docker compose exec -T -u postgres db psql -d openproject | ||
| + | </ | ||
| + | |||
| + | Convert schema openproject to public | ||
| + | <code bash> | ||
| + | docker compose exec -it -u postgres db psql -d openproject -c "DROP SCHEM A public CASCADE;" | ||
| + | docker compose exec -it -u postgres db psql -d openproject -c "ALTER SCHEMA openproject RENAME TO public;" | ||
| + | </ | ||
| + | |||
| + | Verify that there are tables and OP users: | ||
| + | <code bash> | ||
| + | docker compose exec -it -u postgres db psql -d openproject -c " | ||
| + | docker compose exec -it -u postgres db psql -d openproject -c " | ||
| + | </ | ||
| + | |||
| + | Startup everything: | ||
| + | <code bash> | ||
| + | docker compose up -d | ||
| + | </ | ||
| + | |||
| + | ====== Restore attachments ====== | ||
| + | |||
| + | <code bash> | ||
| + | tar -C / | ||
| + | chown -R 1000:1000 / | ||
| + | </ | ||
| + | |||
| + | ====== Inbound emails ====== | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | ====== Outbound mails ====== | ||
| + | |||
| + | References: | ||
| + | * [[https:// | ||
| + | |||
| + | References to do: | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | |||
| + | |||
| + | Verify what final docker compose envs looks like with command: | ||
| + | <code bash> | ||
| + | docker compose config | ||
| + | </ | ||
| + | |||
| + | There are issues with passing SMTP related env to OP: | ||
| + | |||
| + | * [[https:// | ||
| + | * | ||
| + | |||
| + | Using postfix relay on local host. | ||