{"id":16763361,"url":"https://github.com/nicholaswilde/docker-icescrum","last_synced_at":"2026-05-08T04:18:28.142Z","repository":{"id":38155439,"uuid":"327222135","full_name":"nicholaswilde/docker-icescrum","owner":"nicholaswilde","description":"A multi architecture image of iceScrum.","archived":false,"fork":false,"pushed_at":"2023-02-22T02:18:11.000Z","size":84,"stargazers_count":0,"open_issues_count":5,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-16T10:27:57.088Z","etag":null,"topics":["docker","docker-image","icescrum"],"latest_commit_sha":null,"homepage":"https://hub.docker.com/r/nicholaswilde/icescrum","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nicholaswilde.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"custom":"paypal.me/nicholaswilde"}},"created_at":"2021-01-06T06:32:40.000Z","updated_at":"2021-07-13T02:05:03.000Z","dependencies_parsed_at":"2025-01-22T22:36:35.554Z","dependency_job_id":null,"html_url":"https://github.com/nicholaswilde/docker-icescrum","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/nicholaswilde/docker-icescrum","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicholaswilde%2Fdocker-icescrum","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicholaswilde%2Fdocker-icescrum/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicholaswilde%2Fdocker-icescrum/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicholaswilde%2Fdocker-icescrum/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nicholaswilde","download_url":"https://codeload.github.com/nicholaswilde/docker-icescrum/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicholaswilde%2Fdocker-icescrum/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267116349,"owners_count":24038623,"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","status":"online","status_checked_at":"2025-07-26T02:00:08.937Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["docker","docker-image","icescrum"],"created_at":"2024-10-13T05:06:21.813Z","updated_at":"2026-05-08T04:18:23.095Z","avatar_url":"https://github.com/nicholaswilde.png","language":"Shell","funding_links":["paypal.me/nicholaswilde"],"categories":[],"sub_categories":[],"readme":"# Docker iceScrum\n\n[![Docker Image Version (latest by date)](https://img.shields.io/docker/v/nicholaswilde/icescrum)](https://hub.docker.com/r/nicholaswilde/icescrum)\n[![Docker Pulls](https://img.shields.io/docker/pulls/nicholaswilde/icescrum)](https://hub.docker.com/r/nicholaswilde/icescrum)\n[![GitHub](https://img.shields.io/github/license/nicholaswilde/docker-icescrum)](./LICENSE)\n[![ci](https://github.com/nicholaswilde/docker-icescrum/workflows/ci/badge.svg)](https://github.com/nicholaswilde/docker-icescrum/actions?query=workflow%3Aci)\n[![lint](https://github.com/nicholaswilde/docker-icescrum/workflows/lint/badge.svg?branch=main)](https://github.com/nicholaswilde/docker-icescrum/actions?query=workflow%3Alint)\n[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit\u0026logoColor=white)](https://github.com/pre-commit/pre-commit)\n\nA multi architecture image of [iceScrum](https://www.icescrum.com/).\n\niceScrum is an open-minded and expert agile project management tool based on the Scrum methodology: https://www.icescrum.com/features/.\n\nTags:\n- iceScrum 7.52: `latest`\n- iceScrum R6#14.14: `R6` (__deprecated__, documentation: https://github.com/icescrum/iceScrum-docker/blob/R6/icescrum/README.md)\n\nThe `R6` version of iceScrum is deprecated, use it only to prepare an existing installation for the migration to iceScrum v7. To migrate, follow this documentation: https://www.icescrum.com/documentation/migration-standalone/.\n\n## iceScrum URL\n\nWhen iceScrum runs inside a Docker container, it cannot know its external URL. By default it looks like `http://\u003cdocker-host\u003e:\u003cexternal-port\u003e/icescrum`.\n\nIf you use a VM (e.g. Docker Machine) the docker host is the VM IP, otherwise it's `localhost` or your machine IP.\n\n### HTTPS through reverse proxy\n\nTo set an environment variable when starting a Docker container: add `-e VARIABLE=value` to the `docker run` command.\n\nYou need to inform iceScrum that it will be used externally through HTTPS thanks to the ICESCRUM_HTTPS_PROXY environment variable: \n`-e ICESCRUM_HTTPS_PROXY=true`\n\nThat is the only thing you have to do on the iceScrum side. However, you need to configure the reverse proxy properly so it works with iceScrum: https://www.icescrum.com/documentation/reverse-proxy/.\n\n### Port\n\nInternally, iceScrum will start on port `8080`. You need to map this internal port to a port of your computer in order to use iceScrum from your computer.\n\nTo map a port when starting a Docker container: add `-p external-port:internal-port` to the `docker run` command.\n\nEnsure that `external-port` is not taken by another application on your computer, e.g. `8080` or `8090`.\n\nIf you map port `80` of your computer to port `8080` of the container (`-p 80:8080`) then the port can be omitted in the URL. This requires administration permissions.\n\n### Context\n\nIf you don't want that the URL ends with `/icescrum`, which is the iceScrum context, then you can change it by setting an environment variable.\n\nThe environment variable that defines the context is `ICESCRUM_CONTEXT`, e.g.:\n* `-e ICESCRUM_CONTEXT=is`: the URL ends with `/is`\n* `-e ICESCRUM_CONTEXT=/`: the URL ends with `/`\n\n## iceScrum persistent files\n\n__No persistent data should be kept inside the container__ and iceScrum needs a place to persist its files. That's why you need to mount a directory of your computer into a directory of the container: `/root`.\n\nTo mount a volume when starting a Docker container: add `-v external-directory:internal-directory` to the `docker run` command.\n\n## Start with included H2 database (not safe)\n\n```console\ndocker run --name icescrum -v /mycomputer/is/home:/root -p 8080:8080 icescrum/icescrum\n```\n\nThe iceScrum data (config.groovy, logs...) is persisted on your computer into `/mycomputer/is/home` (replace by an absolute or relative path from your computer) and the H2 files are stored under its `h2` directory.\n\nBe careful, the H2 default embedded DBMS __is not reliable for production use__, so we recommend that you rather use an external DBMS such as MySQL.\n\n## Start with MySQL or PostgreSQL with Docker Compose\n\nThe connection between iceScrum and a DBMS started in another container requires either `Docker compose` or Docker Networks (see the dedicated section). \n\nStarting both containers with `Docker compose` ensures that they are both properly configured and started and allows iceScrum to access your MySQL or PostgreSQL container by its name (thanks to an automatic `/etc/hosts` entry).\n\nUse the official MySQL image (`5.7 is recommended as version 8 is not supported yet) or the official PostgreSQL image (`9.6` up to `11` as version 12 is not supported yet).\n\nHere is an example `docker-compose.yml` file that starts iceScrum and MySQL\n```yml\nversion: '3'\nservices:\n  mysql:\n    image: mysql:5.7\n    volumes:\n      - /mycomputer/is/mysql:/var/lib/mysql\n    environment:\n      - MYSQL_DATABASE=icescrum\n      - MYSQL_ROOT_PASSWORD=myPass\n    command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci\n  icescrum:\n    image: nicholaswilde/icescrum\n    volumes:\n      - /mycomputer/is/home:/root\n    ports:\n      - \"8080:8080\"\n    depends_on:\n      - mysql\n```\n\n## Start with MySQL or PostgreSQL with Docker Networks\n\nStarting both containers on the same network allows iceScrum to access your MySQL or PostgreSQL container by its name (thanks to an automatic `/etc/hosts` entry).\n\n### 1. Create the network\n\n```\ndocker network create --driver bridge is_net\n```\n\n### 2. Start the DB container (pick one!)\n\n#### MySQL\n\nUse the official MySQL image (`5.7` is recommended as version 8 is not supported yet)\n\nProvide a password for the MySQL `root` user and a name for the database (you can use `icescrum`).\n```\ndocker run --name mysql -v /mycomputer/is/mysql:/var/lib/mysql --net=is_net -e MYSQL_DATABASE=icescrum -e MYSQL_ROOT_PASSWORD=myPass -d mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci\n```\n\nMySQL data is persisted on your computer into `/mycomputer/is/mysql` (replace by an absolute or relative path from your computer). This may not work on `Docker Machine` due to permission issues unrelated to iceScrum.\n\n#### PostgreSQL\n\nUse the official PostgreSQL image (`9.6` up to `11` as version 12 is not supported yet).\n\nProvide a password for the PostgreSQL `postgre` user and a name for the database (you can use `icescrum`).\n\n```console\ndocker run --name postgres -v /mycomputer/is/postgres:/var/lib/postgresql/data --net=is_net -e POSTGRES_DB=icescrum -e POSTGRES_PASSWORD=myPass -d postgres:9.6\n```\n\nPostgreSQL data is persisted on your computer into `/mycomputer/is/postgres` (replace by an absolute or relative path from your computer). This may not work on `Docker Machine` due to permission issues unrelated to iceScrum.\n\n### 3. Start the iceScrum container\n\n```console\ndocker run --name icescrum -v /mycomputer/is/home:/root --net=is_net -p 8080:8080 icescrum/icescrum\n```\n\niceScrum data (`config.groovy`, logs...) is persisted on your computer into `/mycomputer/is/home` (replace by an absolute or relative path from your computer).\n\n## Setup wizard\n\nIf it's the first time you use iceScrum, you will have to configure iceScrum through a user-friendly wizard. Here is the documentation: https://www.icescrum.com/documentation/how-to-install-icescrum/#settings\n\nThe setup wizard has two results:\n* A `config.groovy` file located under `/mycomputer/is/home/.icescrum`, which you will be able to edit later either manually or through the iceScrum Pro admin interface.\n* An admin user for iceScrum in the target database.\n\nSettings that define where iceScrum stores its files are pre-filled to ensure that everything is persisted in your mounted volume, do not change them unless you know what you do!\n\nThe wizard has a \"Dabatase\" step:\n\n#### H2\n\nIf you want to keep the H2 database then the database configuration is prefilled and you can just click next.\n\n#### MySQL\n\nIf you use the MySQL container, choose the MySQL database in the settings and configure it:\n* _URL_: replace \"localhost\" by the name of the MySQL container (in our example: `mysql`)\n* _Username_: `root`\n* _Password_: the one defined when starting the MySQL container (in our example: `myPass`)\n\nWhen clicking on next, a database connection is tried and if you get no error then it is successful.\n\nYou will be told to restart the container at the very end of the setup so iceScrum can start on your custom DB:\n```console\ndocker restart icescrum\n```\n\n#### PostgreSQL\n\nIf you use the PostgreSQL container, choose the PostgreSQL database in the settings and configure it:\n* _URL_: replace \"localhost\" by the name of the PostgreSQL container (in our example: `postgres`)\n* _Username_: `postgres`\n* _Password_: the one defined when starting the PostgreSQL container (in our example: `myPass`)\n\nWhen clicking on next, a database connection is tried and if you get no error then it is successful.\n\nYou will be told to restart the container at the very end of the setup so iceScrum can start on your custom DB:\n```console\ndocker restart icescrum\n```\n\n## Update iceScrum\n\nFollow the upgrade guide: https://www.icescrum.com/documentation/upgrade-guide/.\n\n## Switch database\n\nTo migrate from one database to another:\n\n1. Export the projects you want to keep from the running iceScrum application (project \u003e export).\n2. Stop the iceScrum container.\n3. Change the DB configuration manually in the `config.groovy` file stored on your computer in the directory you defined, see https://www.icescrum.com/documentation/config-groovy/#database.\n4. Start the iceScrum container and import your projects (project \u003e import).\n\n## Examples\n\n__Start MySQL and iceScrum on a new `mynet` Docker network on URL http://docker-host:8080/icescrum__\n```console\ndocker network create --driver bridge mynet\ndocker run --name mysql    -v ~/docker-is/mysql:/var/lib/mysql --net=mynet -e MYSQL_DATABASE=icescrum -e MYSQL_ROOT_PASSWORD=myPass -d mysql:5.7         --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci\ndocker run --name icescrum -v ~/docker-is/home:/root           --net=mynet -p 8080:8080                                                nicholaswilde/icescrum\n```\n\n__Start iceScrum with H2 on URL http://docker-host:8090/icescrum__\n```console\ndocker run --name icescrum -v ~/docker-is/home:/root -p 8090:8080 nicholaswilde/icescrum\n```\n\n__Start iceScrum with H2 on URL http://docker-host__\n```console\ndocker run --name icescrum -v ~/docker-is/home:/root -p 80:8080 -e ICESCRUM_CONTEXT=/ nicholaswilde/icescrum\n```\n\n### docker-compose\n\nSee [docker-compose.yaml](./docker-compose.yaml).\n\n## Development\n\nSee [docs](https://nicholaswilde.io/docker-docs/development).\n\n## Troubleshooting\n\nSee [docs](https://nicholaswilde.io/docker-docs/troubleshooting).\n\n## Pre-commit hook\n\nIf you want to automatically generate `README.md` files with a pre-commit hook, make sure you\n[install the pre-commit binary](https://pre-commit.com/#install), and add a [.pre-commit-config.yaml file](./.pre-commit-config.yaml)\nto your project. Then run:\n\n```bash\npre-commit install\npre-commit install-hooks\n```\nCurrently, this only works on `amd64` systems.\n\n## License\n\n[Apache 2.0 License](./LICENSE)\n\n## Author\nThis project was started in 2021 by [Nicholas Wilde](https://github.com/nicholaswilde/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnicholaswilde%2Fdocker-icescrum","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnicholaswilde%2Fdocker-icescrum","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnicholaswilde%2Fdocker-icescrum/lists"}