{"id":47592062,"url":"https://github.com/deskpro/docker-compose-example","last_synced_at":"2026-04-01T17:37:12.035Z","repository":{"id":189180278,"uuid":"680180022","full_name":"deskpro/docker-compose-example","owner":"deskpro","description":"An docker-compose project for running Deskpro On-Premise without the OPC","archived":false,"fork":false,"pushed_at":"2024-08-21T17:01:27.000Z","size":17,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":12,"default_branch":"main","last_synced_at":"2024-08-21T19:08:50.283Z","etag":null,"topics":["example","infra","on-premise","product"],"latest_commit_sha":null,"homepage":"https://support.deskpro.com/en-GB/guides/on-premise-controller/example-running-deskpro-with-docker-compose","language":"PHP","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/deskpro.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":"2023-08-18T14:33:08.000Z","updated_at":"2024-08-21T17:01:31.000Z","dependencies_parsed_at":"2024-03-18T11:08:37.651Z","dependency_job_id":null,"html_url":"https://github.com/deskpro/docker-compose-example","commit_stats":null,"previous_names":["deskpro/docker-compose-example"],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/deskpro/docker-compose-example","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deskpro%2Fdocker-compose-example","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deskpro%2Fdocker-compose-example/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deskpro%2Fdocker-compose-example/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deskpro%2Fdocker-compose-example/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/deskpro","download_url":"https://codeload.github.com/deskpro/docker-compose-example/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deskpro%2Fdocker-compose-example/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31290537,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T13:12:26.723Z","status":"ssl_error","status_checked_at":"2026-04-01T13:12:25.102Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["example","infra","on-premise","product"],"created_at":"2026-04-01T17:37:11.557Z","updated_at":"2026-04-01T17:37:12.015Z","avatar_url":"https://github.com/deskpro.png","language":"PHP","readme":"This project is an example docker-compose project that runs Deskpro and all required services.\n\nThe Deskpro image repository can be found at:\nhttps://hub.docker.com/r/deskpro/deskpro-product/tags?page=1\u0026name=onprem\n\nFull documentation on how the Deskpro image operates can be found here:\nhttps://support.deskpro.com/guides/topic/1841\n\n---\n\n- [1.0. Getting started](#10-getting-started)\n  - [1.1. Basic Configuration](#11-basic-configuration)\n  - [1.2. Start MySQL and Elastic](#12-start-mysql-and-elastic)\n  - [1.3. Run the installer](#13-run-the-installer)\n  - [1.4. Start Deskpro](#14-start-deskpro)\n- [2.0. Using a different URL](#20-using-a-different-url)\n  - [2.1. Enabling HTTPS](#21-enabling-https)\n  - [2.2. Using different ports](#22-using-different-ports)\n  - [2.3. Using a domain name](#23-using-a-domain-name)\n  - [2.4. Changing the helpdesk URL](#24-changing-the-helpdesk-url)\n- [3.0. Updating Deskpro](#30-updating-deskpro)\n\n---\n\n# 1.0. Getting started\n\n## 1.1 Download the example project\n\nDownload the latest version and extract it:\n\n```\ncurl -L https://github.com/deskpro/docker-compose-example/archive/refs/heads/main.zip -o deskpro-compose.zip\nunzip deskpro-compose.zip\n```\n\nOr you can just clone the repos:\n\n```\ngit clone https://github.com/deskpro/docker-compose-example.git\n```\n\n## 1.2. Basic Configuration\n\n### Automatically\n\nThe simplest way to get started is to use the provided helper script to automatically generate the necessary secrets for you.\n\nYou can run the helper via `docker-compose` like this:\n\n```\ndocker-compose run -it --rm init_config_files\n```\n\n### Manually\n\n**1. Use the latest Deskpro image**\n\nFind the latest release from:\nhttps://hub.docker.com/r/deskpro/deskpro-product/tags?page=1\u0026name=onprem\n\nThen edit the `.env` file and change the image to use the latest. For example:\n\n```\n# Replace the XXXX.XX.X with the latest published version\nDESKPRO_IMAGE=docker.io/deskpro/deskpro-product:XXXX.XX.X-onprem\n```\n\n**2. Secrets / Passwords**\n\nYou need to modify these three files to set secrets:\n\n* `config/MYSQL_ROOT_PASSWORD.txt` - MySQL root password\n  * Example: ``\n* `config/DESKPRO_DB_PASS.txt` - MySQL user password used by the Deskpro database user\n* `config/DESKPRO_APP_KEY.txt` - A random 32-character string used for cryptographic functions\n\n## 1.3. Start Services\n\nNow you can bring up MySQL and Elastic:\n\n```\ndocker-compose --profile services up -d\n```\n\nIt's a good idea to a wait a few seconds and then ensure MySQL is running as expected. You can test the connection like this:\n\n```\ndocker-compose run -it --rm deskpro_bash exec mysql-primary -e \"SHOW DATABASES;\"\n```\n\nWhen this succeeds, you can move on.\n\n## 1.4. Run the installer\n\nYou now need to run the installer that will install the database and set up default options.\n\nFirst, start a command line container:\n\n```\ndocker-compose run -it --rm deskpro_cli\n```\n\nOnce you are in, you can run the installer:\n\n```\n./bin/install --url 'http://127.0.0.1/' --adminEmail 'your@email.com' --adminPassword 'password'\n```\n\nNote: If you already know you will be using other ports, HTTPS, or a domain name, you can set the URL accordingly. The next section of this README will go over what other configuration you need to make it work.\n\n## 1.5. Start Deskpro\n\nFinally, you can go ahead and start Deskpro itself by bringing up the other containers:\n\n```\ndocker-compose up -d\n```\n\nWhen services have started, you can open http://127.0.0.1/app in your browser and log in using the credentials you provided when you ran the installer.\n\n---\n\n# 2.0. Using a different URL\n\n## 2.1. Enabling HTTPS\n\nTo enable HTTPS, you need a valid certificate.\n\n* Create two new directories: `data/deskpro/config/certs` and `data/deskpro/config/private`\n* Copy your SSL certificate (pem format) to: `data/deskpro/config/certs/deskpro-https.crt`\n* Copy your (unencrypted) key to: `data/deskpro/config/private/deskpro-https.key`\n\nThen restart the Deskpro web container:\n\n```\ndocker-compose restart deskpro_web\n```\n\n## 2.2. Using different ports\n\nIf you want to run the web server on different ports, you need to configure port mapping.\n\nEdit the `.env` file and change the ports in the two variables at the top of the file.\n\nFor example, if you wish to use http://127.0.0.1:8080/, then you would change `HTTP_USER_SET_HTTP_PORT=8080`\n\nAfter you make these changes, restart the Deskpro web container:\n\n```\ndocker-compose restart deskpro_web\n```\n\n## 2.3. Using a domain name\n\nYou don't need to do anything special to start using a domain name. You just need to make sure your server is open to the internet and that DNS resolves to the server.\n\n## 2.4. Changing the helpdesk URL\n\nAny time you want to change your helpdesk URL (e.g. to enable HTTPS, change ports, or start using a domain name), then you should also change the URL setting.\n\nJust navigate to http://your-url/app, then go to Admin \u003e Branding to change the URL.\n\n---\n\n# 3.0. Updating Deskpro\n\n**Step 1: Pull the latest image**\n\nFirst, find the version you want to update to:\nhttps://hub.docker.com/r/deskpro/deskpro-product/tags?page=1\u0026name=onprem\n\nThen you can pull that image to pre-cache it:\n\n```\ndocker image pull deskpro/deskpro-product:2023.43.0-onprem\n```\n\nThis step just pre-downloads the image so the following steps finish faster. This will ensure the image actually exists, and also reduces downtime for your users.\n\n**Step 2: Change the image in config**\n\nEdit the `.env` file and change the DESKPRO_IMAGE variable to the new image.\n\nFor example:\n\n```\nDESKPRO_IMAGE=deskpro/deskpro-product:2023.43.0-onprem\n```\n\n**Step 3: Stop Deskpro services**\n\nStop the currently-running Deskpro containers by running:\n\n```\ndocker-compose down deskpro_web deskpro_tasks\n```\n\n**Step 4: Optionally make a database backup**\n\nBefore you run database migrations, you should make a database backup in case you need to revert to the previous version for whatever reason.\n\nThe simplest way to do this is by exporting a full dump. There is a helper service defined in `docker-compose.yml` that will run a `mysqldump` command for you:\n\n```\ndocker-compose run -it --rm mysql_make_dump\n```\n\n**Step 5: Restart Deskpro**\n\nWhen Deskpro has shut down and you have made a backup, you can restart the Deskpro containers using the new image:\n\n```\ndocker-compose up -d\n```\n\nIf migrations need to run, then they will run automatically (via the `deskpro_tasks` container). Note that the web interface won't be usable until migrations finish running.\n\n**Troubleshooting**\n\nIf you've upgraded and the Deskpro web interface stays disabled, it usually means that migrations are still running. You just need to wait a few minutes for migrations to finish running in the background.\n\nYou can review the docker logs for the container if you want to get a clearer picture of what is going on:\n\n```\ndocker-compose logs -f deskpro_tasks\n```\n\nFrom the logs, you will be able to see what is currently running (i.e. a specific migration step), or any errors or problems that might have happened during the upgrade procedure.\n\n## 3.1 Manually running migrations\n\nIf you prefer to manually run migrations instead of having them run automatically, there are two steps:\n\n**1. Disable auto-migrations in config**\n\nIn your `docker-compose.yml` file, _remove_ the line `AUTO_RUN_MIGRATIONS=true` that exists under the `deskpro_tasks` service.\n\n**2. Manually run the migrations command**\n\nWhen you update the `DESKPRO_IMAGE` version as described above, you will then also need to manually run the migrations command.\n\nFirst, start a command line container:\n\n```\ndocker-compose run -it --rm deskpro_cli\n```\n\nOnce you are in, you can run migrations like this:\n\n```\n./tools/migrations/artisan migrations:exec -vvv --run\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeskpro%2Fdocker-compose-example","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeskpro%2Fdocker-compose-example","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeskpro%2Fdocker-compose-example/lists"}