{"id":14563786,"url":"https://github.com/opf/openproject-docker-compose","last_synced_at":"2025-09-04T06:33:40.409Z","repository":{"id":42189478,"uuid":"310299401","full_name":"opf/openproject-docker-compose","owner":"opf","description":"Recipes to deploy OpenProject with Docker, Docker Compose, Kubernetes, etc.","archived":false,"fork":false,"pushed_at":"2024-11-26T12:18:46.000Z","size":57,"stargazers_count":187,"open_issues_count":9,"forks_count":174,"subscribers_count":16,"default_branch":"stable/15","last_synced_at":"2024-12-30T03:48:54.101Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/opf.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-11-05T12:58:15.000Z","updated_at":"2024-12-29T18:19:40.000Z","dependencies_parsed_at":"2023-11-21T07:30:10.948Z","dependency_job_id":"448611c6-9dbf-4cc7-bc07-f2a9d4213401","html_url":"https://github.com/opf/openproject-docker-compose","commit_stats":null,"previous_names":["opf/openproject-docker-compose","opf/openproject-deploy"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opf%2Fopenproject-docker-compose","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opf%2Fopenproject-docker-compose/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opf%2Fopenproject-docker-compose/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opf%2Fopenproject-docker-compose/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/opf","download_url":"https://codeload.github.com/opf/openproject-docker-compose/tar.gz/refs/heads/stable/15","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":231940608,"owners_count":18449183,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-09-07T02:04:26.327Z","updated_at":"2024-12-31T03:31:44.468Z","avatar_url":"https://github.com/opf.png","language":"Shell","funding_links":[],"categories":["others","Shell"],"sub_categories":[],"readme":"# OpenProject installation with Docker Compose\n\nThis repository contains the installation method for OpenProject using Docker Compose.\n\n\n\u003e [!NOTE]\n\u003e Looking for the Kubernetes installation method?\n\u003e Please use the [OpenProject helm chart](https://charts.openproject.org) to install OpenProject on kubernetes.\n\n## Quick start\n\nFirst, you must clone the [openproject-deploy](https://github.com/opf/openproject-deploy/tree/stable/15/compose) repository:\n\n```shell\ngit clone https://github.com/opf/openproject-deploy --depth=1 --branch=stable/15 openproject\n```\n\nCopy the example `.env` file and edit any values you want to change:\n\n```shell\ncp .env.example .env\nvim .env\n```\n\nIf you are using the default value of OPDATA that is used in the ```.env.example``` you need to make sure that the folder exist, and you have the right permissions:\n\n```shell\nsudo mkdir -p /var/openproject/assets\nsudo chown 1000:1000 -R /var/openproject/assets\n```\n\nNext you start up the containers in the background while making sure to pull the latest versions of all used images.\n\n```shell\nOPENPROJECT_HTTPS=false docker compose up -d --build --pull always\n```\n\nAfter a while, OpenProject should be up and running on `http://localhost:8080`. The default username and password is login: `admin`, and password: `admin`. \nThe `OPENPROJECT_HTTPS=false` environment variable explicitly disables HTTPS mode for the first startup. Without this, OpenProject assumes it's running behind HTTPS in production by default.\nWe do strongly recommend you use OpenProject behind a TLS terminated proxy for production purposes and remove this flag before actually starting to use it.\n\n### Customization\n\nThe `docker-compose.yml` file present in the repository can be adjusted to your convenience. But note that with each pull, it will be overwritten. \nBest practice is to use the file `docker-compose.override.yml` for that case. \nFor instance you could mount specific configuration files, override environment variables, or switch off services you don't need.\n\nPlease refer to the official [Docker Compose documentation](https://docs.docker.com/compose/extends/) for more details.\n\n### Troubleshooting\n\n**pull access denied for openproject/proxy, repository does not exist or may require 'docker login': denied: requested access to the resource is denied**\n\nIf you encounter this after `docker compose up` this is merely a warning which can be ignored.\n\nIf this happens during `docker compose pull` this is simply a warning as well.\nBut it will result in the command's exit code to be a failure even though all images are pulled.\nTo prevent this you can add the `--ignore-buildable` option, running `docker compose pull  --ignore-buildable`.\n\n### HTTPS/SSL\n\nBy default OpenProject starts with the HTTPS option **enabled**, but it **does not** handle SSL termination itself. This\nis usually done separately via a [reverse proxy\nsetup](https://www.openproject.org/docs/installation-and-operations/installation/docker/#apache-reverse-proxy-setup).\nWithout this you will run into an `ERR_SSL_PROTOCOL_ERROR` when accessing OpenProject.\n\nSee below how to disable HTTPS.\n\nBe aware that if you want to use the integrated Caddy proxy as a proxy with outbound connections, you need to rewrite the\n`Caddyfile`. In the default state, it is configured to forward the `X-Forwarded-*` headers from the reverse proxy in\nfront of it and not setting them itself. This is considered a security flaw and should instead be solved by configuring\n`trusted_proxies` inside the `Caddyfile`. For more information read\nthe [Caddy documentation](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy).\n\n### PORT\n\nBy default the port is bound to `0.0.0.0` means access to OpenProject will be public.\nSee below how to change that.\n\n## Image configuration\n\nOpenProject publishes `slim` containers that you should be using for this compose setup.\nPlease see https://www.openproject.org/docs/installation-and-operations/installation/docker/#available-containers for more information on the containers and versions we push.\n\n## Configuration\n\nEnvironment variables can be added to `docker-compose.yml` under `x-op-app -\u003e environment` to change\nOpenProject's configuration. Some are already defined and can be changed via the environment.\n\nYou can pass those variables directly when starting the stack as follows.\n\n```\nVARIABLE=value docker-compose up -d\n```\n\nYou can also put those variables into an `.env` file in your current working\ndirectory, and Docker Compose will pick it up automatically. See `.env.example`\nfor details.\n\n## HTTPS\n\nYou can disable OpenProject's HTTPS option via:\n\n```\nOPENPROJECT_HTTPS=false\n```\n\n## PORT\n\nIf you want to specify a different port, you can do so with:\n\n```\nPORT=4000\n```\n\nIf you don't want OpenProject to bind to `0.0.0.0` you can bind it to localhost only like this:\n\n```\nPORT=127.0.0.1:8080\n```\n\n## TAG\n\nIf you want to specify a custom tag for the OpenProject docker image, you can do so with:\n\n```\nTAG=my-docker-tag\n```\n\n## BIM edition\n\nIn order to install or change to BIM inside a Docker environment, please navigate to the [Docker Installation for OpenProject BIM](https://www.openproject.org/docs/installation-and-operations/bim-edition/#docker-installation-openproject-bim) paragraph at the BIM edition documentation.\n\n## Upgrade\n\nRetrieve any changes from the `openproject-deploy` repository:\n\n    git pull origin stable/15\n\nBuild the control plane:\n\n    docker-compose -f docker-compose.yml -f docker-compose.control.yml build\n\nTake a backup of your existing postgresql data and openproject assets:\n\n    docker-compose -f docker-compose.yml -f docker-compose.control.yml run backup\n\nRun the upgrade:\n\n    docker-compose -f docker-compose.yml -f docker-compose.control.yml run upgrade\n\nRelaunch the containers, ensure you are pulling to use the latest version of the Docker images:\n\n    docker compose up -d --build --pull always\n\n\n\n## Backup\n\nSwitch off your current installation:\n\n    docker-compose down\n\nBuild the control scripts:\n\n    docker-compose -f docker-compose.yml -f docker-compose.control.yml build\n\nTake a backup of your existing PostgreSQL data and OpenProject assets:\n\n    docker-compose -f docker-compose.yml -f docker-compose.control.yml run backup\n\nRestart your OpenProject installation\n\n    docker-compose up -d\n\n\n\n## Uninstall\n\nIf you want to stop the containers without removing them directly:\n\n```bash\ndocker-compose stop\n```\n\nYou can remove the container stack with:\n\n```bash\ndocker-compose down\n```\n\n\u003e [!NOTE]\n\u003e This will not remove your data which is persisted in named volumes, likely called `compose_opdata` (for attachments) and `compose_pgdata` (for the database).\n\u003e The exact name depends on the name of the directory where your `docker-compose.yml` and/or you `docker-compose.override.yml` files are stored (`compose` in this case).\n\nIf you want to start from scratch and remove the existing data you will have to remove these volumes via\n`docker volume rm compose_opdata compose_pgdata`.\n\n## Troubleshooting\n\nYou can look at the logs with:\n\n    docker-compose logs -n 1000\n\nFor the complete documentation, please refer to https://docs.openproject.org/installation-and-operations/.\n\n### Network issues\n\nIf you're running into weird network issues and timeouts such as the one described in\n[OP#42802](https://community.openproject.org/work_packages/42802), you might have success in remove the two separate\nfrontend and backend networks. This might be connected to using podman for orchestration, although we haven't been able\nto confirm this.\n\n### SMTP setup fails: Network is unreachable.\n\nMake sure your container has DNS resolution to access external SMTP server when set up as described in\n[OP#44515](https://community.openproject.org/work_packages/44515).\n\n```yml\nworker:\n  dns:\n    - \"Your DNS IP\" # OR add a public DNS resolver like 8.8.8.8\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopf%2Fopenproject-docker-compose","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopf%2Fopenproject-docker-compose","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopf%2Fopenproject-docker-compose/lists"}