{"id":13404001,"url":"https://github.com/francescou/docker-compose-ui","last_synced_at":"2025-09-27T07:31:59.221Z","repository":{"id":34058443,"uuid":"37843831","full_name":"francescou/docker-compose-ui","owner":"francescou","description":"web interface for Docker Compose","archived":true,"fork":false,"pushed_at":"2021-11-17T12:56:51.000Z","size":3350,"stargazers_count":1545,"open_issues_count":22,"forks_count":227,"subscribers_count":56,"default_branch":"master","last_synced_at":"2024-12-16T13:44:57.700Z","etag":null,"topics":["docker","docker-compose","docker-swarm"],"latest_commit_sha":null,"homepage":"http://francescou.github.io/docker-compose-ui","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/francescou.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-06-22T08:01:21.000Z","updated_at":"2024-12-14T06:40:52.000Z","dependencies_parsed_at":"2022-07-14T08:49:35.310Z","dependency_job_id":null,"html_url":"https://github.com/francescou/docker-compose-ui","commit_stats":null,"previous_names":[],"tags_count":45,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/francescou%2Fdocker-compose-ui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/francescou%2Fdocker-compose-ui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/francescou%2Fdocker-compose-ui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/francescou%2Fdocker-compose-ui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/francescou","download_url":"https://codeload.github.com/francescou/docker-compose-ui/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234410309,"owners_count":18828174,"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":["docker","docker-compose","docker-swarm"],"created_at":"2024-07-30T19:01:37.548Z","updated_at":"2025-09-27T07:31:54.573Z","avatar_url":"https://github.com/francescou.png","language":"JavaScript","readme":"![Docker Compose UI](https://raw.githubusercontent.com/francescou/docker-compose-ui/master/static/images/logo-dark.png)\n\n[![Docker Stars](https://img.shields.io/docker/stars/francescou/docker-compose-ui.svg)](https://hub.docker.com/r/francescou/docker-compose-ui/)\n[![Docker Pulls](https://img.shields.io/docker/pulls/francescou/docker-compose-ui.svg)](https://hub.docker.com/r/francescou/docker-compose-ui/)\n\n## What is it\n\nDocker Compose UI is a web interface for Docker Compose.\n\nThe aim of this project is to provide a minimal HTTP API on top of Docker Compose while maintaining full interoperability with Docker Compose CLI.\n\nThe application can be deployed as a single container, there are no dependencies nor databases to install.\n\n![compose ui screenshots](https://raw.githubusercontent.com/francescou/docker-compose-ui/master/screenshots/docker-compose-ui.gif)\n\n\n## Compose file format compatibility matrix\n\n| Compose file format  | Docker Engine |\n| ------------- | ------------- |\n| 3.6 | 18.02.0+ |\n| 3.3 - 3.5 | 17.06.0+ |\n| 3.0 – 3.2| 1.13.0+ |\n| 2.3\t| 17.06.0+ |\n| 2.2\t| 1.13.0+ |\n| 2.1\t| 1.12.0+ |\n| 2.0\t| 1.10.0+ |\n| 1.0\t| 1.9.1+ |\n\n## Getting started\n\nRun the following command in terminal:\n\n    docker run \\\n    --name docker-compose-ui \\\n    -p 5000:5000 \\\n    -w /opt/docker-compose-projects/ \\\n    -v /var/run/docker.sock:/var/run/docker.sock \\\n    francescou/docker-compose-ui:1.13.0\n\nYou have to wait while Docker pulls the container from the Docker Hub: \u003chttps://hub.docker.com/r/francescou/docker-compose-ui/\u003e\n\nThen open your browser to `http://localhost:5000`\n\nIf you already have docker-compose installed, you can run `docker-compose up` and then open your browser to `http://localhost:8080`.\n\n\n### Add your own docker-compose projects\n\nto use your own docker-compose projects run this command from the directory containing your docker-compose.yml files:\n\n    docker run \\\n        --name docker-compose-ui \\\n        -v $(pwd):$(pwd) \\\n        -w $(dirname $(pwd)) \\\n        -p 5000:5000 \\\n        -v /var/run/docker.sock:/var/run/docker.sock \\\n        francescou/docker-compose-ui:1.13.0\n\nyou can download my example projects into */home/user/docker-compose-ui/demo-projects/* from https://github.com/francescou/docker-compose-ui/tree/master/demo-projects\n\n### Load projects from a git repository (experimental)\n\n    docker run \\\n    --name docker-compose-ui \\\n    -p 5000:5000 \\\n    -w /opt/docker-compose-projects-git/ \\\n    -v /var/run/docker.sock:/var/run/docker.sock  \\\n    -e GIT_REPO=https://github.com/francescou/docker-compose-ui.git \\\n    francescou/docker-compose-ui:1.13.0\n\n### Note about scaling services\n\nNote that some of the services provided by the demo projects are not \"scalable\" with `docker-compose scale SERVICE=NUM` because of published ports conflicts.\n\nCheck out this project if you are interested in scaling up and down a docker-compose service without having any down time: \u003chttps://github.com/francescou/docker-continuous-deployment\u003e\n\n\n### Note about volumes\n\nsince you're running docker-compose inside a container you must pay attention to volumes mounted with relative paths, see [Issue #6](https://github.com/francescou/docker-compose-ui/issues/6)\n\n### Integration with external web console\n\nDocker Compose UI support to lauch a console with a shell (one of `/bin/bash` or `/bin/sh`) in a given container if a suitable companion container is available, the only requirement for a web console is to support passing the container id (or name) and the command to exec as querystring parameters.\n\nFor e.g. with [bitbull/docker-exec-web-console](https://github.com/bitbull-team/docker-exec-web-console) you can call `http://localhost:8888/?cid={containerName}\u0026cmd={command}`, so you can pass the `WEB_CONSOLE_PATTERN` environment var to docker-compose-ui, that hold the pattern that will be used to build the url to load the console. Such pattern should include the `{containerName}` and `{command}` placeholders.\n\nExample usage:\n\n    docker run \\\n        --name docker_exec_web_console \\\n        -p 8888:8888 \\\n        -v /var/run/docker.sock:/var/run/docker.sock  \\\n        -e 'CONTEXT_PATH=/web-console/' \\\n        bitbull/docker-exec-web-console\n\n    docker run \\\n        --name docker-compose-ui \\\n        -p 5000:5000 \\\n        -v /var/run/docker.sock:/var/run/docker.sock  \\\n        -e 'WEB_CONSOLE_PATTERN=http://localhost:8888/web-console/?cid={containerName}\u0026cmd={command}' \\\n        francescou/docker-compose-ui:1.13.0\n\n\n## Remote docker host\n\nYou can also run containers on a remote docker host, e.g.\n\n    docker run \\\n        --name docker-compose-ui \\\n        -p 5000:5000 \\\n        -e DOCKER_HOST=remote-docker-host:2375 \\\n        francescou/docker-compose-ui:1.13.0\n\n\n### Docker Swarm or HTTPS Remote docker host\n\nThe project has been tested against a Docker Engines 1.12 cluster ([swarm mode](https://docs.docker.com/engine/swarm/swarm-tutorial/)).\n\nYou need to add two environment properties to use an HTTPS remote docker host: `DOCKER_CERT_PATH` and `DOCKER_TLS_VERIFY`, see [example by @ymote](https://github.com/francescou/docker-compose-ui/issues/5#issuecomment-135697832)\n\n### Authenticated docker registries\n\nIf your projects require you to pull images from a private docker registry that requires authentication, you will need to provide a `config.json` file with the necessary configuration options to the docker-compose-ui container at `/root/.docker/config.json`. You can generate the file on any host by performing `docker login [your private registry address]` and copying the resulting file from your ~/.docker directory to where it is needed.\n\nFor example:\n\n    docker run \\\n        --name docker-compose-ui \\\n        -p 5000:5000 \\\n        -w /opt/docker-compose-projects/ \\\n        -v /home/user/.docker/config.json:/root/.docker/config.json:ro \\\n        francescou/docker-compose-ui:1.13.0\n\n## Technologies\n\nDocker Compose UI has been developed using Flask (python microframework) to provide RESTful services and AngularJS to implement the Single Page Application web ui.\n\nThe application uses [Docker Compose](https://docs.docker.com/compose) to monitor and edit the state of a set of docker compose projects (*docker-compose.yml* files).\n\n\n## API\n\nAPI docs at \u003chttps://francescou.github.io/docker-compose-ui/api.html\u003e\n\n## Issues\n\nIf you have any problems with or questions about this image, please open a GitHub issue on https://github.com/francescou/docker-compose-ui\n\n## License - MIT\n\nThe Docker Compose UI code is licensed under the MIT license.\n\nDocker Compose UI: Copyright (c) 2016 Francesco Uliana. www.uliana.it/francesco\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\n","funding_links":[],"categories":["JavaScript","Container Operations","HarmonyOS","docker"],"sub_categories":["User Interface","Windows Manager"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrancescou%2Fdocker-compose-ui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffrancescou%2Fdocker-compose-ui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrancescou%2Fdocker-compose-ui/lists"}