{"id":13416399,"url":"https://github.com/swarmpit/swarmpit","last_synced_at":"2025-05-14T20:10:40.012Z","repository":{"id":37814241,"uuid":"81071976","full_name":"swarmpit/swarmpit","owner":"swarmpit","description":"Lightweight mobile-friendly Docker Swarm management UI","archived":false,"fork":false,"pushed_at":"2025-02-06T19:35:27.000Z","size":6880,"stargazers_count":3241,"open_issues_count":181,"forks_count":295,"subscribers_count":67,"default_branch":"master","last_synced_at":"2025-05-07T06:37:09.207Z","etag":null,"topics":["docker","docker-compose","docker-containers","docker-devops","docker-stack","docker-swarm","docker-swarm-ui","management","mobile-friendly","pwa","stack","swarm","swarm-mode","swarmpit","ui"],"latest_commit_sha":null,"homepage":"https://swarmpit.io","language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"epl-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/swarmpit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"open_collective":"swarmpit"}},"created_at":"2017-02-06T09:46:42.000Z","updated_at":"2025-05-06T04:30:25.000Z","dependencies_parsed_at":"2024-04-15T05:43:56.269Z","dependency_job_id":"3072b398-7fd1-406d-b1e1-6623e48ab21a","html_url":"https://github.com/swarmpit/swarmpit","commit_stats":{"total_commits":1873,"total_committers":23,"mean_commits":81.43478260869566,"dds":"0.23438334223171386","last_synced_commit":"1c0b23e549e7be93aae0c4ed4e9122bedb362667"},"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swarmpit%2Fswarmpit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swarmpit%2Fswarmpit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swarmpit%2Fswarmpit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swarmpit%2Fswarmpit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/swarmpit","download_url":"https://codeload.github.com/swarmpit/swarmpit/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254219374,"owners_count":22034397,"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-containers","docker-devops","docker-stack","docker-swarm","docker-swarm-ui","management","mobile-friendly","pwa","stack","swarm","swarm-mode","swarmpit","ui"],"created_at":"2024-07-30T21:00:58.242Z","updated_at":"2025-05-14T20:10:39.994Z","avatar_url":"https://github.com/swarmpit.png","language":"Clojure","readme":"[![swarmpit](https://raw.githubusercontent.com/swarmpit/swarmpit/master/resources/public/img/logo.svg?sanitize=true)](https://swarmpit.io)\n\nLightweight mobile-friendly Docker Swarm management UI\n\n[![version](https://img.shields.io/github/release-pre/swarmpit/swarmpit.svg)](https://github.com/swarmpit/swarmpit/releases) \n[![gitter](https://badges.gitter.im/trezor/community.svg)](https://gitter.im/swarmpit_io/swarmpit)\n[![Test, Build \u0026 Deploy](https://github.com/swarmpit/swarmpit/actions/workflows/build.yml/badge.svg)](https://github.com/swarmpit/swarmpit/actions/workflows/build.yml)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/swarmpit/swarmpit/pulls)\n[![Financial Contributors on Open Collective](https://opencollective.com/swarmpit/all/badge.svg?label=financial+contributors)](https://opencollective.com/swarmpit) \n\n[![Twitter URL](https://img.shields.io/twitter/url/https/twitter.com/fold_left.svg?style=social\u0026label=Follow%20%40swarmpit_io)](https://twitter.com/swarmpit_io)\n\n\u003cimg src=\"https://raw.githubusercontent.com/swarmpit/swarmpit/master/resources/public/imac.png\"\u003e\n\nSwarmpit provides simple and easy to use interface for your Docker Swarm cluster. You can manage your stacks, services, secrets, volumes, networks etc. After linking your Docker Hub account or custom registry, private repositories can be easily deployed on Swarm. Best of all, you can share this management console securely with your whole team.\n\nSwarmpit doesn't compromise your privacy as it is completely self-hosted and will never gather any metrics or other data from you.\n\nMore details about future and past releases can be found in [ROADMAP.md](ROADMAP.md)\n\n[![opencollective](https://opencollective.com/swarmpit/tiers/backers.svg?avatarHeight=50)](https://opencollective.com/swarmpit)\n\n## Installation\n\nThe only dependency for Swarmpit deployment is Docker with Swarm initialized, we are supporting Docker 1.13 and newer. Linux hosts on x86 and ARM architectures are supported as well.\n\n### Package installer\nInstaller is your guide to setup Swarmpit platform. For more details see the [installer](https://github.com/swarmpit/installer)\n\n#### Stable version\nDeploy our current milestone version\n\n```\ndocker run -it --rm \\\n  --name swarmpit-installer \\\n  --volume /var/run/docker.sock:/var/run/docker.sock \\\n  swarmpit/install:1.9\n```\n\n#### Edge version\nDeploy latest version for the brave and true\n\n```\ndocker run -it --rm \\\n  --name swarmpit-installer \\\n  --volume /var/run/docker.sock:/var/run/docker.sock \\\n  swarmpit/install:edge\n```\n### Manual installation\nDeploy Swarmpit by using a compose file from our git repo with branch of corresponding version.\n\n```\ngit clone https://github.com/swarmpit/swarmpit -b master\ndocker stack deploy -c swarmpit/docker-compose.yml swarmpit\n```\n\nFor ARM based cluster use custom compose file.\n\n```\ngit clone https://github.com/swarmpit/swarmpit -b master\ndocker stack deploy -c swarmpit/docker-compose.arm.yml swarmpit\n```\n\n[This stack](docker-compose.yml) is a composition of 4 services:\n\n* app - Swarmpit\n* [agent](https://github.com/swarmpit/agent) - Swarmpit agent\n* db - CouchDB (Application data)\n* influxdb - InfluxDB (Cluster statistics)\n\nFeel free to edit the stackfile to change an application port and we strongly recommend to specify following volumes:\n\n* db-data \n* influxdb-data \n\nto shared-volume driver type of your choice. Alternatively, you can link db service to the specific node by using [constraint](https://docs.docker.com/compose/compose-file/#placement).\n\nSwarmpit is published on port `888` by default.\n\n## Environment Variables\n\nRefer to following [document](https://github.com/swarmpit/swarmpit/blob/master/doc/configuration.md) \n\n## User Configuration\n\nBy default Swarmpit offers you to configure first user using web interface. If you want to automate this process, you can use docker config to provide users.yaml file.\n\nRefer to following [document](https://github.com/swarmpit/swarmpit/blob/master/doc/USER_CONFIG.md) for details.\n\n## User Types\n\nRefer to following [document](https://github.com/swarmpit/swarmpit/blob/master/doc/user_types.md) \n\n## Development\n\nSwarmpit is written purely in Clojure and utilizes React on front-end. CouchDB is used to persist application data \u0026 InfluxDB for cluster statistics.\n\nEverything about building, issue reporting and setting up development environment can be found in [CONTRIBUTING.md](CONTRIBUTING.md)\n\n## Demo\n\n[![Try in PWD](https://cdn.rawgit.com/play-with-docker/stacks/cff22438/assets/images/button.png)](http://play-with-docker.com?stack=https://raw.githubusercontent.com/swarmpit/swarmpit/master/docker-compose.yml) \n\nDeploys Swarmpit to play-with-docker sandbox. Please wait few moments till application is up and running before accessing\nport 888. Initialization might take a few seconds.\n\n## Contributors\n\n### Code Contributors\n\nThis project exists thanks to all the people who contribute. [[Contribute](CONTRIBUTING.md)].\n\u003ca href=\"https://github.com/swarmpit/swarmpit/graphs/contributors\"\u003e\u003cimg src=\"https://opencollective.com/swarmpit/contributors.svg?width=890\u0026button=false\" /\u003e\u003c/a\u003e\n\n### Financial Contributors\n\nBecome a financial contributor and help us sustain our community. [[Contribute](https://opencollective.com/swarmpit/contribute)]\n\n#### Individuals\n\n\u003ca href=\"https://opencollective.com/swarmpit\"\u003e\u003cimg src=\"https://opencollective.com/swarmpit/individuals.svg?width=890\"\u003e\u003c/a\u003e\n\n#### Organizations\n\nSupport this project with your organization. Your logo will show up here with a link to your website. [[Contribute](https://opencollective.com/swarmpit/contribute)]\n\n\u003ca href=\"https://opencollective.com/swarmpit/organization/0/website\"\u003e\u003cimg src=\"https://opencollective.com/swarmpit/organization/0/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/swarmpit/organization/1/website\"\u003e\u003cimg src=\"https://opencollective.com/swarmpit/organization/1/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/swarmpit/organization/2/website\"\u003e\u003cimg src=\"https://opencollective.com/swarmpit/organization/2/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/swarmpit/organization/3/website\"\u003e\u003cimg src=\"https://opencollective.com/swarmpit/organization/3/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/swarmpit/organization/4/website\"\u003e\u003cimg src=\"https://opencollective.com/swarmpit/organization/4/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/swarmpit/organization/5/website\"\u003e\u003cimg src=\"https://opencollective.com/swarmpit/organization/5/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/swarmpit/organization/6/website\"\u003e\u003cimg src=\"https://opencollective.com/swarmpit/organization/6/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/swarmpit/organization/7/website\"\u003e\u003cimg src=\"https://opencollective.com/swarmpit/organization/7/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/swarmpit/organization/8/website\"\u003e\u003cimg src=\"https://opencollective.com/swarmpit/organization/8/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/swarmpit/organization/9/website\"\u003e\u003cimg src=\"https://opencollective.com/swarmpit/organization/9/avatar.svg\"\u003e\u003c/a\u003e\n","funding_links":["https://opencollective.com/swarmpit","https://opencollective.com/swarmpit/contribute","https://opencollective.com/swarmpit/organization/0/website","https://opencollective.com/swarmpit/organization/1/website","https://opencollective.com/swarmpit/organization/2/website","https://opencollective.com/swarmpit/organization/3/website","https://opencollective.com/swarmpit/organization/4/website","https://opencollective.com/swarmpit/organization/5/website","https://opencollective.com/swarmpit/organization/6/website","https://opencollective.com/swarmpit/organization/7/website","https://opencollective.com/swarmpit/organization/8/website","https://opencollective.com/swarmpit/organization/9/website"],"categories":["Container Operations","Clojure","ui","WebUI","docker","Dashboard"],"sub_categories":["User Interface","Orchestration","基础样式库"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fswarmpit%2Fswarmpit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fswarmpit%2Fswarmpit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fswarmpit%2Fswarmpit/lists"}