b2c84fa20c66874960f60766d2604c7d635f6808
App Templates
This repository hosts the official templates ('Apps') definitions for portainer.
It also describes how to host your own Apps.
Template definition format
Template definitions are written in JSON.
It must consist of an array with every template definition consisting of one element.
Template format
A template element must be a JSON object with the following mandatory fields:
title: Title of the templatedescription: Description of the templatelogo: URL for the template logoimage: the Docker image associated to the template
The following fields are optional:
env: An array describing the environment variables required by the template. For each variable, an input will be created in the UI.
Format:
{
"name": "the name of the environment variable, as supported in the container image (mandatory)",
"label": "label for the input in the UI (mandatory)",
"set": "pre-defined value for the variable, will not generate an input in the UI (optional)"
}
Example:
{
"name": "MYSQL_ROOT_PASSWORD",
"label": "Root password"
}
volumes: An array describing the associated volumes of the template. For each volume, a Docker volume will be created and associated when starting the template.ports: An array describing the ports exposed by template. Each port will be automatically bound on the host by Docker when starting the container.
Example:
{
"title": "MySQL",
"description": "The most popular open-source database",
"logo": "https://upload.wikimedia.org/wikipedia/en/thumb/6/62/MySQL.svg/640px-MySQL.svg.png",
"image": "mysql:latest",
"env": [
{
"name": "MYSQL_ROOT_PASSWORD",
"label": "Root password"
}
],
"volumes": ["/var/lib/mysql"],
"ports": ["3306/tcp"]
}
Host your own templates
You can build your own container that will use nginx to serve the templates definitions.
Clone the repository, edit the templates file, build and run the container:
$ git clone https://github.com/portainer/templates.git
$ cd ui-templates
# Edit the file templates.json
$ docker build -t portainer-templates .
$ docker run -d -p "8080:80" portainer-templates
Now you can access your templates definitions at http://docker-host:8080/templates.json.
You can also mount the templates.json file inside the container, so you can edit the file and see live changes:
$ docker run -d -p "8080:80" -v "${PWD}/templates.json:/usr/share/nginx/html/templates.json" portainer-templates
Available apps:
- Docker registry (based on
registry:latest) - Nginx (based on
nginx:latest) - Httpd (based on
httpd:latest) - MySQL (based on
mysql:latest) - MariaDB (based on
mariadb:latest) - PostgreSQL (based on
postgres:latest) - Mongo (based on
mongo:latest) - Elasticsearch (based on
elasticsearch:latest) - Solr (based on
solr:latest) - Redis (based on
redis:latest) - RabbitMQ (based on
rabbitmq:latest) - WordPress (based on
wordpress:latest) - Joomla (based on
joomla:latest) - Drupal (based on
drupal:latest) - Magento 2 (based on
alankent/gsd:latest) - Wowza (based on
sameersbn/wowza:4.1.2-8) - Jenkins (based on
jenkins:latest) - Redmine (based on
redmine:latest)
Description
Languages
Dockerfile
100%