Go to file
Chaim Lev-Ari 53b37ab8c8
feat(custom-templates): introduce custom templates (#3906)
* feat(custom-templates): introduce types

* feat(custom-templates): introduce data layer service

* feat(custom-templates): introduce http handler

* feat(custom-templates): create routes and view stubs

* feat(custom-templates): add create custom template ui

* feat(custom-templates): add json keys

* feat(custom-templates): introduce custom templates list page

* feat(custom-templates): introduce update page

* feat(stack): create template from stack

* feat(stacks): create stack from custom template

* feat(custom-templates): disable edit/delete of templates

* fix(custom-templates): fail update on non admin/owner

* fix(custom-templates): add ng-inject decorator

* chore(plop): revert template

* feat(stacks): remove actions column

* feat(stack): add button to create template from stack

* feat(stacks): add empty state for templates

* feat(custom-templates): show templates in a list

* feat(custom-template): replace table with list

* feat(custom-templates): move create template button

* refactor(custom-templates): introduce more fields

* feat(custom-templates): use stack type when creating template

* feat(custom-templates): use same type as stack

* feat(custom-templates): add edit and delete buttons to template item

* feat(custom-templates): customize stack before deploy

* feat(stack): show template details

* feat(custom-templates): move customize

* feat(custom-templates): create description required

* fix(template): show platform icon

* fix(custom-templates): show spinner when creating stack

* feat(custom-templates): prevent user from edit templates

* feat(custom-templates): use resource control for custom templates

* feat(custom-templates): show created templates

* feat(custom-templates): filter templates by stack type

* fix(custom-templates): create swarm or standalone stack

* feat(stacks): filter templates by type

* feat(resource-control): disable resource control on public

* feat(custom-template): apply access control on edit

* feat(custom-template): add form validation

* feat(stack): disable create custom template from external task

* refactor(custom-templates): create template from file and type

* feat(templates): introduce a file handler that returns template docker file

* feat(template): introduce template duplication

* feat(custom-template): enforce unique template name

* fix(template): rename copy button

* fix(custom-template): clear access control selection between templates

* fix(custom-templates): show required fields

* refactor(filesystem): use a constant for temp path
2020-07-07 11:18:39 +12:00
.github feat(kubernetes): introduce kubernetes support (#3987) 2020-07-06 11:21:03 +12:00
.vscode chore(project): add angular components code snippets (#3649) 2020-06-04 17:01:31 +12:00
api feat(custom-templates): introduce custom templates (#3906) 2020-07-07 11:18:39 +12:00
app feat(custom-templates): introduce custom templates (#3906) 2020-07-07 11:18:39 +12:00
build feat(kubernetes): introduce kubernetes support (#3987) 2020-07-06 11:21:03 +12:00
distribution chore(version): bump version number 2020-06-03 11:40:03 +12:00
plop-templates feat(custom-templates): introduce custom templates (#3906) 2020-07-07 11:18:39 +12:00
test chore(project): add prettier for code format (#3645) 2020-04-11 09:54:53 +12:00
webpack feat(kubernetes): introduce kubernetes support (#3987) 2020-07-06 11:21:03 +12:00
.babelrc fix(registry): Performance issues with Registry Manager (#2648) 2019-10-14 15:45:09 +02:00
.codeclimate.yml feat(kubernetes): introduce kubernetes support (#3987) 2020-07-06 11:21:03 +12:00
.dockerignore chore(codefresh): add codefresh.yml (#887) 2017-05-25 11:08:26 +02:00
.eslintignore refactor(app): introduce webpack and babel (#2407) 2019-03-21 18:46:49 +13:00
.eslintrc.yml chore(eslint): add rule to sort imports (#3715) 2020-04-15 11:46:34 +12:00
.gitignore chore(project): add angular components code snippets (#3649) 2020-06-04 17:01:31 +12:00
.godir refactor(global): rename uifd to portainer 2016-09-04 14:50:37 +12:00
.prettierrc chore(project): add prettier for code format (#3645) 2020-04-11 09:54:53 +12:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md (#946) 2017-06-22 05:11:40 +02:00
CONTRIBUTING.md feat(kubernetes): introduce kubernetes support (#3987) 2020-07-06 11:21:03 +12:00
LICENSE chore(license): update license info so that GitHub recognizes it (#1924) 2018-05-23 14:47:43 +02:00
README.md docs(readme): update README 2020-05-12 10:30:12 +12:00
build.sh chore(build): update build script and add grunt yarn script (#2276) 2018-09-16 10:34:46 +08:00
docker-compose.pull-dog.yml feat(project): update pull-dog configuration 2020-05-11 11:23:56 +12:00
extensions.json feat(extensions): update offline manifest 2019-12-03 09:50:10 +13:00
gruntfile.js feat(kubernetes): introduce kubernetes support (#3987) 2020-07-06 11:21:03 +12:00
jsconfig.json feat(kubernetes): introduce kubernetes support (#3987) 2020-07-06 11:21:03 +12:00
package.json feat(kubernetes): introduce kubernetes support (#3987) 2020-07-06 11:21:03 +12:00
plopfile.js chore(project): add angular components code snippets (#3649) 2020-06-04 17:01:31 +12:00
postcss.config.js chore(project): add prettier for code format (#3645) 2020-04-11 09:54:53 +12:00
pull-dog.json feat(pulldog): configure expiry 2020-06-15 13:31:28 +12:00
webpack.config.js refactor(app): introduce webpack and babel (#2407) 2019-03-21 18:46:49 +13:00
yarn.lock feat(kubernetes): introduce kubernetes support (#3987) 2020-07-06 11:21:03 +12:00

README.md

Docker Pulls Microbadger Build Status Code Climate Donate

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, supports other platforms too). Portainer allows you to manage all your Docker resources (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:

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

For FORMAL Support, please purchase a support subscription from here: https://www.portainer.io/products-services/portainer-business-support/

For community support: You can find more information about Portainer's community support framework policy here: https://www.portainer.io/2019/04/portainer-support-policy/

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!

Security

Limitations

Portainer supports "Current - 2 docker versions only. Prior versions may operate, however these are not supported.

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]