![]() * wip * wip: missing repository & tags removal * feat(registry): private registry management * style(plugin-details): update view * wip * wip * wip * feat(plugins): add license info * feat(plugins): browse feature preview * feat(registry-configure): add the ability to configure registry management * style(app): update text in app * feat(plugins): add plugin version number * feat(plugins): wip plugin upgrade process * feat(plugins): wip plugin upgrade * feat(plugins): add the ability to update a plugin * feat(plugins): init plugins at startup time * feat(plugins): add the ability to remove a plugin * feat(plugins): update to latest plugin definitions * feat(plugins): introduce plugin-tooltip component * refactor(app): relocate plugin files to app/plugins * feat(plugins): introduce PluginDefinitionsURL constant * feat(plugins): update the flags used by the plugins * feat(plugins): wip * feat(plugins): display a label when a plugin has expired * wip * feat(registry-creation): update registry creation logic * refactor(registry-creation): change name/ids for inputs * feat(api): pass registry type to management configuration * feat(api): unstrip /v2 in regsitry proxy * docs(api): add TODO * feat(store): mockup-1 * feat(store): mockup 2 * feat(store): mockup 2 * feat(store): update mockup-2 * feat(app): add unauthenticated event check * update gruntfile * style(support): update support views * style(support): update product views * refactor(extensions): refactor plugins to extensions * feat(extensions): add a deal property * feat(extensions): introduce ExtensionManager * style(extensions): update extension details style * feat(extensions): display license/company when enabling extension * feat(extensions): update extensions views * feat(extensions): use ProductId defined in extension schema * style(app): remove padding left for form section title elements * style(support): use per host model * refactor(extensions): multiple refactors related to extensions mecanism * feat(extensions): update tls file path for registry extension * feat(extensions): update registry management configuration * feat(extensions): send license in header to extension proxy * fix(proxy): fix invalid default loopback address * feat(extensions): add header X-RegistryManagement-ForceNew for specific operations * feat(extensions): add the ability to display screenshots * feat(extensions): center screenshots * style(extensions): tune style * feat(extensions-details): open full screen image on click (#2517) * feat(extension-details): show magnifying glass on images * feat(extensions): support extension logo * feat(extensions): update support logos * refactor(lint): fix lint issues |
||
---|---|---|
.github | ||
api | ||
app | ||
assets | ||
build | ||
distribution | ||
test/unit | ||
.codeclimate.yml | ||
.dockerignore | ||
.eslintrc.yml | ||
.gitignore | ||
.godir | ||
CODE_OF_CONDUCT.md | ||
CONTRIBUTING.md | ||
LICENSE | ||
README.md | ||
appveyor-ci.yml | ||
appveyor-release.yml | ||
build.sh | ||
gruntfile.js | ||
index.html | ||
package.json | ||
templates.json | ||
vendor.yml | ||
yarn.lock |
README.md
Portainer is a lightweight management UI which allows you to easily manage your different Docker environments (Docker hosts or Swarm clusters).
Portainer is meant to be as simple to deploy as it is to use. It consists of a single container that can run on any Docker engine (can be deployed as Linux container or a Windows native container).
Portainer allows you to manage your Docker containers, images, volumes, networks and more ! It is compatible with the standalone Docker engine and with Docker Swarm mode.
Demo

You can try out the public demo instance: http://demo.portainer.io/ (login with the username admin and the password tryportainer).
Please note that the public demo cluster is reset every 15min.
Alternatively, you can deploy a copy of the demo stack inside a play-with-docker (PWD) playground:
- Browse PWD/?stack=portainer-demo/play-with-docker/docker-stack.yml
- Sign in with your Docker ID
- Follow these steps.
Unlike the public demo, the playground sessions are deleted after 4 hours. Apart from that, all the settings are same, including default credentials.
Getting started
Getting help
- Issues: https://github.com/portainer/portainer/issues
- FAQ: https://portainer.readthedocs.io/en/latest/faq.html
- Slack (chat): https://portainer.io/slack/
- Gitter (chat): https://gitter.im/portainer/Lobby
Reporting bugs and contributing
- Want to report a bug or request a feature? Please open an issue.
- Want to help us build portainer? Follow our contribution guidelines to build it locally and make a pull request. We need all the help we can get!
Limitations
Portainer has full support for the following Docker versions:
- Docker 1.10 to the latest version
- Standalone Docker Swarm >= 1.2.3 (NOTE: Use of Standalone Docker Swarm is being discouraged since the introduction of built-in Swarm Mode in Docker. While older versions of Portainer had support for Standalone Docker Swarm, Portainer 1.17.0 and newer do not support it. However, the built-in Swarm Mode of Docker is fully supported.)
Partial support for the following Docker versions (some features may not be available):
- Docker 1.9
Licensing
Portainer is licensed under the zlib license. See LICENSE for reference.
Portainer also contains the following code, which is licensed under the MIT license:
UI For Docker: Copyright (c) 2013-2016 Michael Crosby (crosbymichael.com), Kevan Ahlquist (kevanahlquist.com), Anthony Lapenna (portainer.io)
rdash-angular: Copyright (c) [2014] [Elliot Hesp]