├── .gitignore
├── portainer
└── portainer
├── README.md
├── tooljet
├── docker-compose.yaml
└── .env
├── supabase
├── .env
└── docker-compose.yml
├── dashy_conf.yml
├── templates-2.0.json
├── backup.json
└── templatesZ.json
/.gitignore:
--------------------------------------------------------------------------------
1 | appsmith/
2 |
--------------------------------------------------------------------------------
/portainer/portainer:
--------------------------------------------------------------------------------
1 | sudo docker volume create portainer_data && sudo docker run -d -p 9000:9000 -p 8000:8000 -p 9443:9443 --name portainer \
2 | --restart=always \
3 | -v /var/run/docker.sock:/var/run/docker.sock \
4 | -v portainer_data:/data \
5 | portainer/portainer-ce:2.9.3
6 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # goodcontainers
2 | this is a collections of good docker contaienrs iv collected over the time , if you have portainer installed i have an app template that you can use to install them
3 |
4 | ## to add :
5 | [x] grafana
6 |
7 | [x] mysql
8 |
9 | [ ] apache nifi
10 |
11 | [x] tooljet
12 |
13 | [x] mongodb
14 |
15 | [x] supabase
16 |
17 | [x] owncloud
18 |
19 | [ ] airbyte
20 |
21 | [ ] meltano
22 |
23 | [ ] python / js / go
24 |
25 | [ ] plesk
26 |
27 | [ ] torrent
28 |
--------------------------------------------------------------------------------
/tooljet/docker-compose.yaml:
--------------------------------------------------------------------------------
1 | version: '3'
2 |
3 | services:
4 | client:
5 | tty: true
6 | stdin_open: true
7 | image: tooljet/tooljet-client-ce:latest
8 | restart: always
9 | env_file: .env
10 | depends_on:
11 | - server
12 | volumes:
13 | - logs:/var/log/openresty/
14 | - certs:/etc/resty-auto-ssl/
15 | - fallbackcerts:/etc/fallback-certs
16 | ports:
17 | - 80:80
18 | - 443:443
19 | command: openresty -g "daemon off;"
20 |
21 | server:
22 | image: tooljet/tooljet-server-ce:latest
23 | tty: true
24 | stdin_open: true
25 | restart: always
26 | ports:
27 | - 3000
28 | env_file: .env
29 | environment:
30 | SERVE_CLIENT: "false"
31 | command: npm run start:prod
32 |
33 | volumes:
34 | certs:
35 | logs:
36 | fallbackcerts:
37 |
--------------------------------------------------------------------------------
/tooljet/.env:
--------------------------------------------------------------------------------
1 | # Create .env from this example file and replace values for the environment.
2 | # The application expects a separate .env.test for test environment configuration
3 | # Get detailed information about each variable here: https://docs.tooljet.com/docs/deployment/env-vars
4 |
5 | TOOLJET_HOST=http://localhost:8082
6 | LOCKBOX_MASTER_KEY=replace_with_lockbox_master_key
7 | SECRET_KEY_BASE=replace_with_secret_key_base
8 |
9 | # DATABASE CONFIG
10 | ORM_LOGGING=all
11 | PG_DB=tooljet_production
12 | PG_USER=postgres
13 | PG_HOST=postgres
14 | PG_PASS=postgres
15 |
16 | # Checks every 24 hours to see if a new version of ToolJet is available
17 | # (Enabled by default. Set 0 to disable)
18 | CHECK_FOR_UPDATES=
19 |
20 | # Checks every 24 hours to update app telemetry data to ToolJet hub.
21 | # (Telemetry is enabled by default. Set value to true to disable.)
22 | # DISABLE_APP_TELEMETRY=false
23 |
24 | GOOGLE_CLIENT_ID=
25 | GOOGLE_CLIENT_SECRET=
26 |
27 | # EMAIL CONFIGURATION
28 | DEFAULT_FROM_EMAIL=hello@tooljet.io
29 | SMTP_USERNAME=
30 | SMTP_PASSWORD=
31 | SMTP_DOMAIN=
32 | SMTP_PORT=
33 |
34 | # DISABLE USER SIGNUPS (true or false). Default: true
35 | DISABLE_SIGNUPS=
36 |
37 | # OBSERVABILITY
38 | APM_VENDOR=
39 | SENTRY_DNS=
40 | SENTRY_DEBUG=
41 |
42 | # FEATURE TOGGLE
43 | COMMENT_FEATURE_ENABLE=
44 |
45 | #SSO
46 | SSO_DISABLE_SIGNUP=
47 | SSO_RESTRICTED_DOMAIN=
48 | SSO_GOOGLE_OAUTH2_CLIENT_ID=
49 | SSO_GIT_OAUTH2_CLIENT_ID=
50 | SSO_GIT_OAUTH2_CLIENT_SECRET=
51 |
--------------------------------------------------------------------------------
/supabase/.env:
--------------------------------------------------------------------------------
1 | ############
2 | # Secrets
3 | # YOU MUST CHANGE THESE BEFORE GOING INTO PRODUCTION
4 | ############
5 |
6 | POSTGRES_PASSWORD=your-super-secret-and-long-postgres-password
7 | JWT_SECRET=your-super-secret-jwt-token-with-at-least-32-characters-long
8 | ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyAgCiAgICAicm9sZSI6ICJhbm9uIiwKICAgICJpc3MiOiAic3VwYWJhc2UtZGVtbyIsCiAgICAiaWF0IjogMTY0MTc2OTIwMCwKICAgICJleHAiOiAxNzk5NTM1NjAwCn0.dc_X5iR_VP_qT0zsiyj_I_OZ2T9FtRU2BBNWN8Bu4GE
9 | SERVICE_ROLE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyAgCiAgICAicm9sZSI6ICJzZXJ2aWNlX3JvbGUiLAogICAgImlzcyI6ICJzdXBhYmFzZS1kZW1vIiwKICAgICJpYXQiOiAxNjQxNzY5MjAwLAogICAgImV4cCI6IDE3OTk1MzU2MDAKfQ.DaYlNEoUrrEn2Ig7tqibS-PHK5vgusbcbo7X36XVt4Q
10 |
11 |
12 | ############
13 | # Database - You can change these to any PostgreSQL database that has logical replication enabled.
14 | ############
15 |
16 | POSTGRES_HOST=db
17 | POSTGRES_DB=postgres
18 | POSTGRES_USER=postgres
19 | POSTGRES_PORT=5432
20 |
21 |
22 | ############
23 | # API Proxy - Configuration for the Kong Reverse proxy.
24 | ############
25 |
26 | KONG_HTTP_PORT=8000
27 | KONG_HTTPS_PORT=8443
28 |
29 |
30 | ############
31 | # API - Configuration for PostgREST.
32 | ############
33 |
34 | PGRST_DB_SCHEMAS=public,storage,graphql_public
35 |
36 |
37 | ############
38 | # Auth - Configuration for the GoTrue authentication server.
39 | ############
40 |
41 | ## General
42 | SITE_URL=http://localhost:3000
43 | ADDITIONAL_REDIRECT_URLS=
44 | JWT_EXPIRY=3600
45 | DISABLE_SIGNUP=false
46 |
47 | ## Email auth
48 | ENABLE_EMAIL_SIGNUP=true
49 | ENABLE_EMAIL_AUTOCONFIRM=false
50 | SMTP_ADMIN_EMAIL=admin@example.com
51 | SMTP_HOST=mail
52 | SMTP_PORT=2500
53 | SMTP_USER=fake_mail_user
54 | SMTP_PASS=fake_mail_password
55 | SMTP_SENDER_NAME=fake_sender
56 |
57 | ## Phone auth
58 | ENABLE_PHONE_SIGNUP=true
59 | ENABLE_PHONE_AUTOCONFIRM=true
60 |
61 |
62 | ############
63 | # Studio - Configuration for the Dashboard
64 | ############
65 |
66 | STUDIO_PORT=3000
67 | PUBLIC_REST_URL=http://localhost:8000/rest/v1/ # replace if you intend to use Studio outside of localhost
68 |
--------------------------------------------------------------------------------
/dashy_conf.yml:
--------------------------------------------------------------------------------
1 | pageInfo:
2 | title: TemplateZ
3 | description: ''
4 | navLinks:
5 | - title: Portainer
6 | path: http://192.168.1.122:9000
7 | target: newtab
8 | footerText: ' '
9 | appConfig:
10 | theme: adventure-basic
11 | layout: vertical
12 | iconSize: medium
13 | language: fr
14 | sections:
15 | - name: Personal
16 | icon: fas fa-rocket
17 | items:
18 | - title: GitHub
19 | description: ''
20 | icon: favicon
21 | url: https://github.com/mehdi-yc
22 | id: 0_836_github
23 | - title: Reddit
24 | description: ''
25 | icon: >-
26 | https://www.freeiconspng.com/thumbs/reddit-icon/red-circle-reddit-icon-1.png
27 | url: https://reddit.vom
28 | id: 1_836_reddit
29 | displayData:
30 | sortBy: default
31 | rows: 1
32 | cols: 1
33 | collapsed: false
34 | hideForGuests: false
35 | - name: Data
36 | icon: fas fa-chart-pie
37 | displayData:
38 | sortBy: default
39 | rows: 1
40 | cols: 1
41 | collapsed: false
42 | hideForGuests: false
43 | items:
44 | - title: Superset
45 | icon: https://superset.apache.org/img/favicon.ico
46 | url: http://192.168.1.122:8088
47 | id: 0_378_superset
48 | - title: Grafana
49 | icon: https://grafana.com/static/assets/img/fav32.png
50 | url: http://192.168.1.122:3333
51 | id: 1_378_grafana
52 | - title: Jupyter
53 | icon: >-
54 | https://jupyter-docker-stacks.readthedocs.io/en/latest/_static/jupyter-logo.svg
55 | url: >-
56 | https://192.168.1.122:8888/lab?token=425a35f9757a1d589e6a0d082e9a4434fcd8aa59e5d7a826
57 | id: 2_378_jupyter
58 | - name: Automation
59 | icon: fas fa-robot
60 | displayData:
61 | sortBy: default
62 | rows: 1
63 | cols: 1
64 | collapsed: false
65 | hideForGuests: false
66 | items:
67 | - title: n8n
68 | icon: >-
69 | https://raw.githubusercontent.com/n8n-io/n8n/master/assets/n8n-logo.png
70 | url: http://192.168.1.122:5678
71 | id: 0_1057_nn
72 | - name: Productivity
73 | icon: fas fa-file-arrow-up
74 | displayData:
75 | sortBy: default
76 | rows: 1
77 | cols: 1
78 | collapsed: false
79 | hideForGuests: false
80 | items:
81 | - title: Vscode-server
82 | icon: >-
83 | https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/openvscode-server-logo.png
84 | url: http://192.168.1.122:3001
85 | id: 0_1302_vscodeserver
86 | - title: OwnCloud
87 | icon: https://nextcloud.com/wp-content/uploads/2021/12/logo.png
88 | url: http://192.168.1.122:81
89 | id: 1_1302_owncloud
90 |
--------------------------------------------------------------------------------
/supabase/docker-compose.yml:
--------------------------------------------------------------------------------
1 | # Usage
2 | # Start: docker-compose up
3 | # With helpers: docker-compose -f docker-compose.yml -f ./dev/docker-compose.dev.yml up
4 | # Stop: docker-compose down
5 | # Destroy: docker-compose -f docker-compose.yml -f ./dev/docker-compose.dev.yml down -v --remove-orphans
6 |
7 | version: "3.8"
8 |
9 | services:
10 | studio:
11 | container_name: supabase-studio
12 | image: supabase/studio:latest
13 | restart: unless-stopped
14 | ports:
15 | - ${STUDIO_PORT}:3000/tcp
16 | environment:
17 | STUDIO_PG_META_URL: http://meta:8080
18 | POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
19 |
20 | SUPABASE_URL: http://kong:8000
21 | SUPABASE_REST_URL: ${PUBLIC_REST_URL}
22 | SUPABASE_ANON_KEY: ${ANON_KEY}
23 | SUPABASE_SERVICE_KEY: ${SERVICE_ROLE_KEY}
24 |
25 | kong:
26 | container_name: supabase-kong
27 | image: kong:2.1
28 | restart: unless-stopped
29 | ports:
30 | - ${KONG_HTTP_PORT}:8000/tcp
31 | - ${KONG_HTTPS_PORT}:8443/tcp
32 | environment:
33 | KONG_DATABASE: "off"
34 | KONG_DECLARATIVE_CONFIG: /var/lib/kong/kong.yml
35 | # https://github.com/supabase/cli/issues/14
36 | KONG_DNS_ORDER: LAST,A,CNAME
37 | KONG_PLUGINS: request-transformer,cors,key-auth,acl
38 | volumes:
39 | - ./volumes/api:/var/lib/kong
40 |
41 | auth:
42 | container_name: supabase-auth
43 | image: supabase/gotrue:v2.7.1
44 | depends_on:
45 | - db # Disable this if you are using an external Postgres database
46 | restart: unless-stopped
47 | environment:
48 | GOTRUE_API_HOST: 0.0.0.0
49 | GOTRUE_API_PORT: 9999
50 |
51 | GOTRUE_DB_DRIVER: postgres
52 | GOTRUE_DB_DATABASE_URL: postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}?search_path=auth
53 |
54 | GOTRUE_SITE_URL: ${SITE_URL}
55 | GOTRUE_URI_ALLOW_LIST: ${ADDITIONAL_REDIRECT_URLS}
56 | GOTRUE_DISABLE_SIGNUP: ${DISABLE_SIGNUP}
57 |
58 | GOTRUE_JWT_ADMIN_ROLES: service_role
59 | GOTRUE_JWT_AUD: authenticated
60 | GOTRUE_JWT_DEFAULT_GROUP_NAME: authenticated
61 | GOTRUE_JWT_EXP: ${JWT_EXPIRY}
62 | GOTRUE_JWT_SECRET: ${JWT_SECRET}
63 |
64 | GOTRUE_EXTERNAL_EMAIL_ENABLED: ${ENABLE_EMAIL_SIGNUP}
65 | GOTRUE_MAILER_AUTOCONFIRM: ${ENABLE_EMAIL_AUTOCONFIRM}
66 | GOTRUE_SMTP_ADMIN_EMAIL: ${SMTP_ADMIN_EMAIL}
67 | GOTRUE_SMTP_HOST: ${SMTP_HOST}
68 | GOTRUE_SMTP_PORT: ${SMTP_PORT}
69 | GOTRUE_SMTP_USER: ${SMTP_USER}
70 | GOTRUE_SMTP_PASS: ${SMTP_PASS}
71 | GOTRUE_SMTP_SENDER_NAME: ${SMTP_SENDER_NAME}
72 | GOTRUE_MAILER_URLPATHS_INVITE: /auth/v1/verify
73 | GOTRUE_MAILER_URLPATHS_CONFIRMATION: /auth/v1/verify
74 | GOTRUE_MAILER_URLPATHS_RECOVERY: /auth/v1/verify
75 | GOTRUE_MAILER_URLPATHS_EMAIL_CHANGE: /auth/v1/verify
76 |
77 | GOTRUE_EXTERNAL_PHONE_ENABLED: ${ENABLE_PHONE_SIGNUP}
78 | GOTRUE_SMS_AUTOCONFIRM: ${ENABLE_PHONE_AUTOCONFIRM}
79 |
80 | rest:
81 | container_name: supabase-rest
82 | image: postgrest/postgrest:v9.0.0
83 | depends_on:
84 | - db # Disable this if you are using an external Postgres database
85 | restart: unless-stopped
86 | environment:
87 | PGRST_DB_URI: postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}
88 | PGRST_DB_SCHEMAS: ${PGRST_DB_SCHEMAS}
89 | PGRST_DB_ANON_ROLE: anon
90 | PGRST_JWT_SECRET: ${JWT_SECRET}
91 | PGRST_DB_USE_LEGACY_GUCS: "false"
92 |
93 | realtime:
94 | container_name: supabase-realtime
95 | image: supabase/realtime:v0.22.4
96 | depends_on:
97 | - db # Disable this if you are using an external Postgres database
98 | restart: unless-stopped
99 | environment:
100 | DB_HOST: ${POSTGRES_HOST}
101 | DB_PORT: ${POSTGRES_PORT}
102 | DB_NAME: ${POSTGRES_DB}
103 | DB_USER: ${POSTGRES_USER}
104 | DB_PASSWORD: ${POSTGRES_PASSWORD}
105 | DB_SSL: "false"
106 | PORT: 4000
107 | JWT_SECRET: ${JWT_SECRET}
108 | REPLICATION_MODE: RLS
109 | REPLICATION_POLL_INTERVAL: 100
110 | SECURE_CHANNELS: "true"
111 | SLOT_NAME: supabase_realtime_rls
112 | TEMPORARY_SLOT: "true"
113 | command: >
114 | bash -c "./prod/rel/realtime/bin/realtime eval Realtime.Release.migrate
115 | && ./prod/rel/realtime/bin/realtime start"
116 |
117 | storage:
118 | container_name: supabase-storage
119 | image: supabase/storage-api:v0.10.0
120 | depends_on:
121 | - db # Disable this if you are using an external Postgres database
122 | - rest
123 | restart: unless-stopped
124 | environment:
125 | ANON_KEY: ${ANON_KEY}
126 | SERVICE_KEY: ${SERVICE_ROLE_KEY}
127 | POSTGREST_URL: http://rest:3000
128 | PGRST_JWT_SECRET: ${JWT_SECRET}
129 | DATABASE_URL: postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}
130 | PGOPTIONS: -c search_path=storage,public
131 | FILE_SIZE_LIMIT: 52428800
132 | STORAGE_BACKEND: file
133 | FILE_STORAGE_BACKEND_PATH: /var/lib/storage
134 | TENANT_ID: stub
135 | # TODO: https://github.com/supabase/storage-api/issues/55
136 | REGION: stub
137 | GLOBAL_S3_BUCKET: stub
138 | volumes:
139 | - ./volumes/storage:/var/lib/storage
140 |
141 | meta:
142 | container_name: supabase-meta
143 | image: supabase/postgres-meta:v0.29.0
144 | depends_on:
145 | - db # Disable this if you are using an external Postgres database
146 | restart: unless-stopped
147 | environment:
148 | PG_META_PORT: 8080
149 | PG_META_DB_HOST: ${POSTGRES_HOST}
150 | PG_META_DB_PASSWORD: ${POSTGRES_PASSWORD}
151 |
152 | # Comment out everything below this point if you are using an external Postgres database
153 | db:
154 | container_name: supabase-db
155 | image: supabase/postgres:14.1.0.21
156 | command: postgres -c config_file=/etc/postgresql/postgresql.conf
157 | restart: unless-stopped
158 | ports:
159 | - ${POSTGRES_PORT}:5432
160 | environment:
161 | POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
162 | volumes:
163 | # - ./volumes/db/data:/var/lib/postgresql/data
164 | - ./volumes/db/init:/docker-entrypoint-initdb.d
165 |
--------------------------------------------------------------------------------
/templates-2.0.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "2",
3 | "templates": [
4 | {
5 | "type": 1,
6 | "title": "Registry",
7 | "description": "Docker image registry",
8 | "categories": ["docker"],
9 | "platform": "linux",
10 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/registry.png",
11 | "image": "registry:latest",
12 | "ports": ["5000/tcp"],
13 | "volumes": [
14 | {
15 | "container": "/var/lib/registry"
16 | }
17 | ]
18 | },
19 | {
20 | "type": 1,
21 | "title": "Ubuntu",
22 | "description": "Debian-based Linux operating system",
23 | "categories": ["operating-system"],
24 | "platform": "linux",
25 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/ubuntu.png",
26 | "image": "ubuntu:latest",
27 | "interactive": true,
28 | "command": "/bin/bash"
29 | },
30 | {
31 | "type": 1,
32 | "title": "NodeJS",
33 | "description": "JavaScript-based platform for server-side and networking applications",
34 | "categories": ["development"],
35 | "platform": "linux",
36 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/node.png",
37 | "image": "node:latest",
38 | "interactive": true,
39 | "command": "/bin/bash"
40 | },
41 | {
42 | "type": 1,
43 | "title": "Nginx",
44 | "description": "High performance web server",
45 | "categories": ["webserver"],
46 | "platform": "linux",
47 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/nginx.png",
48 | "image": "nginx:latest",
49 | "ports": ["80/tcp", "443/tcp"],
50 | "volumes": [
51 | {
52 | "container": "/etc/nginx"
53 | },
54 | {
55 | "container": "/usr/share/nginx/html"
56 | }
57 | ]
58 | },
59 | {
60 | "type": 1,
61 | "title": "Httpd",
62 | "description": "Open-source HTTP server",
63 | "categories": ["webserver"],
64 | "platform": "linux",
65 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/httpd.png",
66 | "image": "httpd:latest",
67 | "ports": ["80/tcp"],
68 | "volumes": [
69 | {
70 | "container": "/usr/local/apache2/htdocs/"
71 | }
72 | ]
73 | },
74 | {
75 | "type": 1,
76 | "title": "Caddy",
77 | "description": "Open-source web server with automatic HTTPS written in Go",
78 | "categories": ["webserver"],
79 | "platform": "linux",
80 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/caddy.png",
81 | "image": "caddy:latest",
82 | "ports": ["80/tcp"],
83 | "volumes": [
84 | {
85 | "container": "/data"
86 | }
87 | ]
88 | },
89 | {
90 | "type": 1,
91 | "title": "MySQL",
92 | "description": "The most popular open-source database",
93 | "categories": ["database"],
94 | "platform": "linux",
95 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/mysql.png",
96 | "image": "mysql/mysql-server:5.7",
97 | "env": [
98 | {
99 | "name": "MYSQL_ROOT_PASSWORD",
100 | "label": "Root password"
101 | },
102 | {
103 | "name": "MYSQL_ROOT_HOST",
104 | "default": "%",
105 | "preset": true
106 | }
107 | ],
108 | "ports": ["3306/tcp"],
109 | "volumes": [
110 | {
111 | "container": "/var/lib/mysql"
112 | }
113 | ]
114 | },
115 | {
116 | "type": 1,
117 | "title": "MariaDB",
118 | "description": "Performance beyond MySQL",
119 | "categories": ["database"],
120 | "platform": "linux",
121 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/mariadb.png",
122 | "image": "mariadb:latest",
123 | "env": [
124 | {
125 | "name": "MYSQL_ROOT_PASSWORD",
126 | "label": "Root password"
127 | }
128 | ],
129 | "ports": ["3306/tcp"],
130 | "volumes": [
131 | {
132 | "container": "/var/lib/mysql"
133 | }
134 | ]
135 | },
136 | {
137 | "type": 1,
138 | "title": "PostgreSQL",
139 | "description": "The most advanced open-source database",
140 | "categories": ["database"],
141 | "platform": "linux",
142 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/postgres.png",
143 | "image": "postgres:latest",
144 | "env": [
145 | {
146 | "name": "POSTGRES_USER",
147 | "label": "Superuser"
148 | },
149 | {
150 | "name": "POSTGRES_PASSWORD",
151 | "label": "Superuser password"
152 | }
153 | ],
154 | "ports": ["5432/tcp"],
155 | "volumes": [
156 | {
157 | "container": "/var/lib/postgresql/data"
158 | }
159 | ]
160 | },
161 | {
162 | "type": 1,
163 | "title": "Mongo",
164 | "description": "Open-source document-oriented database",
165 | "categories": ["database"],
166 | "platform": "linux",
167 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/mongo.png",
168 | "image": "mongo:latest",
169 | "ports": ["27017/tcp"],
170 | "volumes": [
171 | {
172 | "container": "/data/db"
173 | }
174 | ]
175 | },
176 | {
177 | "type": 1,
178 | "title": "CrateDB",
179 | "description": "An open-source distributed SQL database",
180 | "categories": ["database"],
181 | "platform": "linux",
182 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/cratedb.png",
183 | "image": "crate:latest",
184 | "ports": ["4200/tcp", "4300/tcp"],
185 | "volumes": [
186 | {
187 | "container": "/data"
188 | }
189 | ]
190 | },
191 | {
192 | "type": 1,
193 | "title": "Elasticsearch",
194 | "description": "Open-source search and analytics engine",
195 | "categories": ["database"],
196 | "platform": "linux",
197 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/elasticsearch.png",
198 | "image": "docker.elastic.co/elasticsearch/elasticsearch:7.15.1",
199 | "ports": ["9200/tcp", "9300/tcp"],
200 | "volumes": [
201 | {
202 | "container": "/usr/share/elasticsearch/data"
203 | }
204 | ]
205 | },
206 | {
207 | "type": 1,
208 | "title": "Gitlab CE",
209 | "description": "Open-source end-to-end software development platform",
210 | "note": "Default username is root. Check the Gitlab documentation to get started.",
211 | "categories": ["development", "project-management"],
212 | "platform": "linux",
213 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/gitlab_ce.png",
214 | "image": "gitlab/gitlab-ce:latest",
215 | "ports": ["80/tcp", "443/tcp", "22/tcp"],
216 | "volumes": [
217 | {
218 | "container": "/etc/gitlab"
219 | },
220 | {
221 | "container": "/var/log/gitlab"
222 | },
223 | {
224 | "container": "/var/opt/gitlab"
225 | }
226 | ]
227 | },
228 | {
229 | "type": 1,
230 | "title": "Minio",
231 | "description": "A distributed object storage server built for cloud applications and devops",
232 | "categories": ["storage"],
233 | "platform": "linux",
234 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/minio.png",
235 | "image": "quay.io/minio/minio:latest",
236 | "ports": ["9000/tcp", "9001/tcp"],
237 | "env": [
238 | {
239 | "name": "MINIO_ROOT_USER",
240 | "label": "Root user"
241 | },
242 | {
243 | "name": "MINIO_ROOT_PASSWORD",
244 | "label": "Root password"
245 | }
246 | ],
247 | "volumes": [
248 | {
249 | "container": "/data"
250 | },
251 | {
252 | "container": "/root/.minio"
253 | }
254 | ],
255 | "command": "server /data --console-address ':9001'"
256 | },
257 | {
258 | "type": 1,
259 | "title": "Scality S3",
260 | "description": "Standalone AWS S3 protocol server",
261 | "categories": ["storage"],
262 | "platform": "linux",
263 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/scality-s3.png",
264 | "image": "scality/s3server",
265 | "ports": ["8000/tcp"],
266 | "env": [
267 | {
268 | "name": "SCALITY_ACCESS_KEY",
269 | "label": "Scality S3 access key"
270 | },
271 | {
272 | "name": "SCALITY_SECRET_KEY",
273 | "label": "Scality S3 secret key"
274 | }
275 | ],
276 | "volumes": [
277 | {
278 | "container": "/usr/src/app/localData"
279 | },
280 | {
281 | "container": "/usr/src/app/localMetadata"
282 | }
283 | ]
284 | },
285 | {
286 | "type": 1,
287 | "title": "SQL Server",
288 | "description": "Microsoft SQL Server on Linux",
289 | "categories": ["database"],
290 | "platform": "linux",
291 | "note": "Password needs to include at least 8 characters including uppercase, lowercase letters, base-10 digits and/or non-alphanumeric symbols.",
292 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/microsoft.png",
293 | "image": "mcr.microsoft.com/mssql/server:2019-latest",
294 | "ports": ["1433/tcp"],
295 | "env": [
296 | {
297 | "name": "ACCEPT_EULA",
298 | "default": "Y",
299 | "preset": true
300 | },
301 | {
302 | "name": "SA_PASSWORD",
303 | "label": "SA password"
304 | }
305 | ]
306 | },
307 | {
308 | "type": 1,
309 | "title": "SQL Server",
310 | "description": "Microsoft SQL Server Developer for Windows containers",
311 | "categories": ["database"],
312 | "platform": "windows",
313 | "note": "Password needs to include at least 8 characters including uppercase, lowercase letters, base-10 digits and/or non-alphanumeric symbols.",
314 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/microsoft.png",
315 | "image": "microsoft/mssql-server-windows-developer:latest",
316 | "ports": ["1433/tcp"],
317 | "env": [
318 | {
319 | "name": "ACCEPT_EULA",
320 | "default": "Y",
321 | "preset": true
322 | },
323 | {
324 | "name": "sa_password",
325 | "label": "SA password"
326 | }
327 | ],
328 | "volumes": [
329 | {
330 | "container": "C:/temp/"
331 | }
332 | ]
333 | },
334 | {
335 | "type": 1,
336 | "title": "SQL Server Express",
337 | "description": "Microsoft SQL Server Express for Windows containers",
338 | "categories": ["database"],
339 | "platform": "windows",
340 | "note": "Password needs to include at least 8 characters including uppercase, lowercase letters, base-10 digits and/or non-alphanumeric symbols.",
341 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/microsoft.png",
342 | "image": "microsoft/mssql-server-windows-express:latest",
343 | "ports": ["1433/tcp"],
344 | "env": [
345 | {
346 | "name": "ACCEPT_EULA",
347 | "default": "Y",
348 | "preset": true
349 | },
350 | {
351 | "name": "sa_password",
352 | "label": "SA password"
353 | }
354 | ],
355 | "volumes": [
356 | {
357 | "container": "C:/temp/"
358 | }
359 | ]
360 | },
361 | {
362 | "type": 1,
363 | "title": "Solr",
364 | "description": "Open-source enterprise search platform",
365 | "categories": ["search-engine"],
366 | "platform": "linux",
367 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/solr.png",
368 | "image": "solr:latest",
369 | "ports": ["8983/tcp"],
370 | "volumes": [
371 | {
372 | "container": "/opt/solr/mydata"
373 | }
374 | ]
375 | },
376 | {
377 | "type": 1,
378 | "title": "Redis",
379 | "description": "Open-source in-memory data structure store",
380 | "categories": ["database"],
381 | "platform": "linux",
382 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/redis.png",
383 | "image": "redis:latest",
384 | "ports": ["6379/tcp"],
385 | "volumes": [
386 | {
387 | "container": "/data"
388 | }
389 | ]
390 | },
391 | {
392 | "type": 2,
393 | "title": "Redis Cluster",
394 | "description": "Open-source in-memory data structure store - Cluster mode",
395 | "categories": ["database"],
396 | "platform": "linux",
397 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/redis.png",
398 | "repository": {
399 | "url": "https://github.com/portainer/templates",
400 | "stackfile": "stacks/redis-cluster/docker-stack.yaml"
401 | },
402 | "env": [
403 | {
404 | "name": "REDIS_PASSWD",
405 | "label": "Redis password"
406 | }
407 | ]
408 | },
409 |
410 |
411 | {
412 | "type": 1,
413 | "title": "RabbitMQ",
414 | "description": "Highly reliable enterprise messaging system",
415 | "categories": ["messaging"],
416 | "platform": "linux",
417 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/rabbitmq.png",
418 | "image": "rabbitmq:latest",
419 | "ports": ["5671/tcp", "5672/tcp"],
420 | "volumes": [
421 | {
422 | "container": "/var/lib/rabbitmq"
423 | }
424 | ]
425 | },
426 | {
427 | "type": 1,
428 | "title": "Ghost",
429 | "description": "Free and open-source blogging platform",
430 | "categories": ["blog"],
431 | "note": "Access the blog management interface under /ghost/.",
432 | "platform": "linux",
433 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/ghost.png",
434 | "image": "ghost:latest",
435 | "ports": ["2368/tcp"],
436 | "volumes": [
437 | {
438 | "container": "/var/lib/ghost/content"
439 | }
440 | ]
441 | },
442 | {
443 | "type": 1,
444 | "title": "Joomla",
445 | "description": "Another free and open-source CMS",
446 | "categories": ["CMS"],
447 | "platform": "linux",
448 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/joomla.png",
449 | "image": "joomla:latest",
450 | "env": [
451 | {
452 | "name": "JOOMLA_DB_HOST",
453 | "label": "MySQL database host",
454 | "type": "container"
455 | },
456 | {
457 | "name": "JOOMLA_DB_PASSWORD",
458 | "label": "Database password"
459 | }
460 | ],
461 | "ports": ["80/tcp"],
462 | "volumes": [
463 | {
464 | "container": "/var/www/html"
465 | }
466 | ]
467 | },
468 | {
469 | "type": 1,
470 | "title": "Drupal",
471 | "description": "Open-source content management framework",
472 | "categories": ["CMS"],
473 | "platform": "linux",
474 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/drupal.png",
475 | "image": "drupal:latest",
476 | "ports": ["80/tcp"],
477 | "volumes": [
478 | {
479 | "container": "/var/www/html"
480 | }
481 | ]
482 | },
483 | {
484 | "type": 1,
485 | "title": "Plone",
486 | "description": "A free and open-source CMS built on top of Zope",
487 | "note": "Default user and password are admin/admin",
488 | "categories": ["CMS"],
489 | "platform": "linux",
490 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/plone.png",
491 | "image": "plone:latest",
492 | "ports": ["8080/tcp"],
493 | "volumes": [
494 | {
495 | "container": "/data"
496 | }
497 | ]
498 | },
499 | {
500 | "type": 1,
501 | "title": "Sematext Docker Agent",
502 | "description": "Collect logs, metrics and docker events",
503 | "categories": ["Log Management", "Monitoring"],
504 | "platform": "linux",
505 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/sematext_agent.png",
506 | "image": "sematext/sematext-agent-docker:latest",
507 | "name": "sematext-agent",
508 | "privileged": true,
509 | "env": [
510 | {
511 | "name": "LOGSENE_TOKEN",
512 | "label": "Logs token"
513 | },
514 | {
515 | "name": "SPM_TOKEN",
516 | "label": "SPM monitoring token"
517 | }
518 | ],
519 | "volumes": [
520 | {
521 | "container": "/var/run/docker.sock",
522 | "bind": "/var/run/docker.sock"
523 | }
524 | ]
525 | },
526 | {
527 | "type": 1,
528 | "title": "Datadog agent",
529 | "description": "Collect events and metrics",
530 | "categories": ["Monitoring"],
531 | "platform": "linux",
532 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/datadog_agent.png",
533 | "image": "datadog/agent:latest",
534 | "env": [
535 | {
536 | "name": "DD_API_KEY",
537 | "label": "Datadog API key"
538 | }
539 | ],
540 | "volumes": [
541 | {
542 | "container": "/var/run/docker.sock",
543 | "bind": "/var/run/docker.sock",
544 | "readonly": true
545 | },
546 | {
547 | "container": "/host/sys/fs/cgroup",
548 | "bind": "/sys/fs/cgroup",
549 | "readonly": true
550 | },
551 | {
552 | "container": "/host/proc",
553 | "bind": "/proc",
554 | "readonly": true
555 | }
556 | ]
557 | },
558 | {
559 | "type": 1,
560 | "title": "Mautic",
561 | "description": "Open-source marketing automation platform",
562 | "categories": ["marketing"],
563 | "platform": "linux",
564 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/mautic.png",
565 | "image": "mautic/mautic:latest",
566 | "env": [
567 | {
568 | "name": "MAUTIC_DB_HOST",
569 | "label": "MySQL database host",
570 | "type": "container"
571 | },
572 | {
573 | "name": "MAUTIC_DB_PASSWORD",
574 | "label": "Database password"
575 | }
576 | ],
577 | "ports": ["80/tcp"],
578 | "volumes": [
579 | {
580 | "container": "/var/www/html"
581 | }
582 | ]
583 | },
584 | {
585 | "type": 1,
586 | "title": "Jenkins",
587 | "description": "Open-source continuous integration tool",
588 | "categories": ["continuous-integration"],
589 | "platform": "linux",
590 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/jenkins.png",
591 | "image": "jenkins/jenkins:lts-jdk11",
592 | "ports": ["8080/tcp", "50000/tcp"],
593 | "volumes": [
594 | {
595 | "container": "/var/jenkins_home"
596 | }
597 | ]
598 | },
599 | {
600 | "type": 1,
601 | "title": "Redmine",
602 | "description": "Open-source project management tool",
603 | "note": "Default user and password are admin/admin",
604 | "categories": ["project-management"],
605 | "platform": "linux",
606 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/redmine.png",
607 | "image": "redmine:latest",
608 | "ports": ["3000/tcp"],
609 | "volumes": [
610 | {
611 | "container": "/usr/src/redmine/files"
612 | }
613 | ]
614 | },
615 | {
616 | "type": 1,
617 | "title": "File browser",
618 | "description": "A web file manager",
619 | "note": "Default credentials: admin/admin",
620 | "categories": ["filesystem", "storage"],
621 | "platform": "linux",
622 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/filebrowser.png",
623 | "image": "filebrowser/filebrowser:latest",
624 | "ports": ["80/tcp"],
625 | "volumes": [
626 | {
627 | "container": "/data"
628 | },
629 | {
630 | "container": "/srv"
631 | }
632 | ],
633 | "command": "--port 80 --database /data/database.db --root /srv"
634 | },
635 | {
636 | "type": 1,
637 | "title": "CommandBox",
638 | "description": "ColdFusion (CFML) CLI",
639 | "categories": ["development"],
640 | "platform": "linux",
641 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/ortussolutions-commandbox.png",
642 | "image": "ortussolutions/commandbox:latest",
643 | "env": [
644 | {
645 | "name": "CFENGINE",
646 | "default": "lucee@4.5",
647 | "preset": true
648 | }
649 | ],
650 | "ports": ["8080/tcp", "8443/tcp"]
651 | },
652 | {
653 | "type": 1,
654 | "title": "ContentBox",
655 | "description": "Open-source modular CMS",
656 | "categories": ["CMS"],
657 | "platform": "linux",
658 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/ortussolutions-contentbox.png",
659 | "image": "ortussolutions/contentbox:latest",
660 | "env": [
661 | {
662 | "name": "express",
663 | "default": "true",
664 | "preset": true
665 | },
666 | {
667 | "name": "install",
668 | "default": "true",
669 | "preset": true
670 | },
671 | {
672 | "name": "CFENGINE",
673 | "default": "lucee@4.5",
674 | "preset": true
675 | }
676 | ],
677 | "ports": ["8080/tcp", "8443/tcp"],
678 | "volumes": [
679 | {
680 | "container": "/data/contentbox/db"
681 | },
682 | {
683 | "container": "/app/includes/shared/media"
684 | }
685 | ]
686 | },
687 | {
688 | "type": 2,
689 | "title": "Portainer Agent",
690 | "description": "Manage all the resources in your Swarm cluster",
691 | "note": "The agent will be deployed globally inside your cluster and available on port 9001.",
692 | "categories": ["portainer"],
693 | "platform": "linux",
694 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/portainer.png",
695 | "repository": {
696 | "url": "https://github.com/portainer/templates",
697 | "stackfile": "stacks/portainer-agent/docker-stack.yml"
698 | }
699 | },
700 | {
701 | "type": 2,
702 | "title": "OpenFaaS",
703 | "name": "func",
704 | "description": "Serverless functions made simple",
705 | "note": "Deploys the API gateway and sample functions. You can access the UI on port 8080. Warning: the name of the stack must be 'func'.",
706 | "categories": ["serverless"],
707 | "platform": "linux",
708 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/openfaas.png",
709 | "repository": {
710 | "url": "https://github.com/openfaas/faas",
711 | "stackfile": "docker-compose.yml"
712 | }
713 | },
714 | {
715 | "type": 2,
716 | "title": "IronFunctions",
717 | "description": "Open-source serverless computing platform",
718 | "note": "Deploys the IronFunctions API and UI.",
719 | "categories": ["serverless"],
720 | "platform": "linux",
721 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/ironfunctions.png",
722 | "repository": {
723 | "url": "https://github.com/portainer/templates",
724 | "stackfile": "stacks/ironfunctions/docker-stack.yml"
725 | }
726 | },
727 | {
728 | "type": 2,
729 | "title": "CockroachDB",
730 | "description": "CockroachDB cluster",
731 | "note": "Deploys an insecure CockroachDB cluster, please refer to CockroachDB documentation for production deployments.",
732 | "categories": ["database"],
733 | "platform": "linux",
734 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/cockroachdb.png",
735 | "repository": {
736 | "url": "https://github.com/portainer/templates",
737 | "stackfile": "stacks/cockroachdb/docker-stack.yml"
738 | }
739 | },
740 | {
741 | "type": 2,
742 | "title": "WordPress",
743 | "description": "WordPress setup with a MySQL database",
744 | "note": "Deploys a WordPress instance connected to a MySQL database.",
745 | "categories": ["CMS"],
746 | "platform": "linux",
747 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/wordpress.png",
748 | "repository": {
749 | "url": "https://github.com/portainer/templates",
750 | "stackfile": "stacks/wordpress/docker-stack.yml"
751 | },
752 | "env": [
753 | {
754 | "name": "MYSQL_DATABASE_PASSWORD",
755 | "label": "Database root password",
756 | "description": "Password used by the MySQL root user."
757 | }
758 | ]
759 | },
760 | {
761 | "type": 3,
762 | "title": "WordPress",
763 | "description": "WordPress setup with a MySQL database",
764 | "note": "Deploys a WordPress instance connected to a MySQL database.",
765 | "categories": ["CMS"],
766 | "platform": "linux",
767 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/wordpress.png",
768 | "repository": {
769 | "url": "https://github.com/portainer/templates",
770 | "stackfile": "stacks/wordpress/docker-compose.yml"
771 | },
772 | "env": [
773 | {
774 | "name": "MYSQL_DATABASE_PASSWORD",
775 | "label": "Database root password",
776 | "description": "Password used by the MySQL root user."
777 | }
778 | ]
779 | },
780 | {
781 | "type": 3,
782 | "title": "OpenAMT",
783 | "description": "OpenAMT Cloud Toolkit",
784 | "note": "MPS password needs to be 8-32 characters including one uppercase, one lowercase letters, one base-10 digit and one special character.",
785 | "categories": ["Cloud"],
786 | "platform": "linux",
787 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/intel.png",
788 | "repository": {
789 | "url": "https://github.com/portainer/templates",
790 | "stackfile": "stacks/openamt/docker-compose.yml"
791 | },
792 | "env": [
793 | {
794 | "name": "POSTGRES_USER",
795 | "label": "Database user"
796 | },
797 | {
798 | "name": "POSTGRES_PASSWORD",
799 | "label": "Database password"
800 | },
801 | {
802 | "name": "MPS_USER",
803 | "label": "MPS user"
804 | },
805 | {
806 | "name": "MPS_PASSWORD",
807 | "label": "MPS password"
808 | },
809 | {
810 | "name": "MPS_COMMON_NAME",
811 | "label": "MPS URL",
812 | "description": "Used to connect to the MPS API."
813 | },
814 | {
815 | "name": "MPS_SECRET",
816 | "label": "MPS Secret",
817 | "description": "Strong secret key used to log into MPS."
818 | },
819 | {
820 | "name": "VAULT_SECRET",
821 | "label": "Vault secret",
822 | "description": "Secret token used to log into Vault (don't include '.' character)."
823 | }
824 | ]
825 | },
826 | {
827 | "type": 2,
828 | "title": "Microsoft OMS Agent",
829 | "description": "Microsoft Operations Management Suite Linux agent.",
830 | "categories": ["OPS"],
831 | "platform": "linux",
832 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/microsoft.png",
833 | "repository": {
834 | "url": "https://github.com/portainer/templates",
835 | "stackfile": "stacks/microsoft-oms/docker-stack.yml"
836 | },
837 | "env": [
838 | {
839 | "name": "AZURE_WORKSPACE_ID",
840 | "label": "Workspace ID",
841 | "description": "Azure Workspace ID"
842 | },
843 | {
844 | "name": "AZURE_PRIMARY_KEY",
845 | "label": "Primary key",
846 | "description": "Azure primary key"
847 | }
848 | ]
849 | },
850 | {
851 | "title": "Sematext Docker Agent",
852 | "type": 2,
853 | "categories": ["Log Management", "Monitoring"],
854 | "description": "Collect logs, metrics and docker events",
855 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/sematext_agent.png",
856 | "platform": "linux",
857 | "repository": {
858 | "url": "https://github.com/portainer/templates",
859 | "stackfile": "stacks/sematext-agent-docker/docker-stack.yml"
860 | },
861 | "env": [
862 | {
863 | "name": "LOGSENE_TOKEN",
864 | "label": "Logs token"
865 | },
866 | {
867 | "name": "SPM_TOKEN",
868 | "label": "SPM monitoring token"
869 | }
870 | ]
871 | },
872 | {
873 | "title": "Datadog agent",
874 | "type": 2,
875 | "categories": ["Monitoring"],
876 | "description": "Collect events and metrics",
877 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/datadog_agent.png",
878 | "platform": "linux",
879 | "repository": {
880 | "url": "https://github.com/portainer/templates",
881 | "stackfile": "stacks/datadog-agent/docker-stack.yml"
882 | },
883 | "env": [
884 | {
885 | "name": "API_KEY",
886 | "label": "Datadog API key"
887 | }
888 | ]
889 | },
890 | {
891 | "type": 4,
892 | "title": "Wordpress",
893 | "description": "Wordpress setup with a MySQL database",
894 | "note": "Deploys a Wordpress instance connected to a MySQL database.",
895 | "stackfile": "https://raw.githubusercontent.com/portainer/templates/master/stacks/wordpress/edge/docker-stack.yml"
896 | },
897 | {
898 | "type": 4,
899 | "title": "CockroachDB",
900 | "description": "CockroachDB cluster",
901 | "note": "Deploys an insecure CockroachDB cluster, please refer to CockroachDB documentation for production deployments.",
902 | "stackfile": "https://raw.githubusercontent.com/portainer/templates/master/stacks/cockroachdb/edge/docker-stack.yml"
903 | },
904 | {
905 | "type": 3,
906 | "title": "FDO",
907 | "description": "FDO",
908 | "platform": "linux",
909 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/intel.png",
910 | "repository": {
911 | "url": "https://github.com/portainer/templates",
912 | "stackfile": "stacks/fdo/docker-stack.yml"
913 | },
914 | "env": [
915 | {
916 | "name": "owner_api_user",
917 | "label": "API Username"
918 | },
919 | {
920 | "name": "owner_api_password",
921 | "label": "API Password"
922 | }
923 | ]
924 | }
925 | ]
926 | }
927 |
--------------------------------------------------------------------------------
/backup.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "2",
3 | "templates": [
4 |
5 |
6 | {
7 | "categories": [
8 | "data","dashboard"
9 | ],
10 | "description": "Apache Superset is a Data Visualization and Data Exploration Platform. ",
11 |
12 | "image": "apache/superset:latest",
13 | "logo": "https://superset.apache.org/img/favicon.ico",
14 | "platform": "linux",
15 | "ports": [
16 | "8080/tcp"
17 | ],
18 | "title": "Apache superset",
19 | "type": 1
20 | },
21 |
22 | {
23 | "categories": [
24 | "data","dashboard"
25 | ],
26 | "description": "The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.",
27 |
28 | "image": "grafana/grafana:latest",
29 | "logo": "https://grafana.com/static/assets/img/fav32.png",
30 | "platform": "linux",
31 | "ports": [
32 | "3000/tcp"
33 | ],
34 | "title": "Grafana",
35 | "type": 1
36 | },
37 |
38 |
39 | {
40 | "categories": [
41 | "code","pipelines"
42 | ],
43 | "description": "Build powerful pipelines in any programming language. ",
44 |
45 | "image": "gaiapipeline/gaia:latest",
46 | "logo": "https://gist.githubusercontent.com/michelvocks/ef3894f63c3bb004bca1a2fd5f7eb644/raw/40c5799d74a6f28af1874e726083a50a3ebd877d/gaia-logo-text.png",
47 | "platform": "linux",
48 | "ports": [
49 | "8080/tcp"
50 | ],
51 | "title": "Gaia pipeline",
52 | "type": 1
53 | },
54 |
55 |
56 | {
57 | "categories": [
58 | "cms","low-code"
59 | ],
60 | "description": "Open source Node.js Headless CMS to easily build customisable APIs.",
61 |
62 | "image": "strapi/strapi:latest",
63 | "logo": "https://strapi.io/assets/favicon-32x32.png",
64 | "platform": "linux",
65 | "ports": [
66 | "1337/tcp"
67 | ],
68 | "title": "Strapi",
69 | "type": 1
70 | },
71 |
72 |
73 |
74 | {
75 | "categories": [
76 | "coding","datascience"
77 | ],
78 | "description": "Base Jupyter Notebook Stack",
79 |
80 | "image": "jupyter/base-notebook:latest",
81 | "logo": "https://jupyter-docker-stacks.readthedocs.io/en/latest/_static/jupyter-logo.svg",
82 | "platform": "linux",
83 | "ports": [
84 | "8888/tcp"
85 | ],
86 | "title": "Jupyter",
87 | "type": 1
88 |
89 | },
90 | {
91 | "categories": [
92 | "database", "low-code"
93 | ],
94 | "description": "The Open Source Airtable Alternative 🎃Turns any MySQL, PostgreSQL, SQL Server, SQLite & MariaDB into a smart-spreadsheet. .",
95 |
96 | "image": "nocodb/nocodb:latest",
97 | "logo": "https://docs.nocodb.com/favicon-128.png",
98 | "platform": "linux",
99 | "ports": [
100 | "8080/tcp"
101 | ],
102 | "title": "NocoDB",
103 | "type": 1,
104 | "volumes": [{
105 | "container": "/home/node/.n8n"
106 | }],
107 | "env": [{
108 | "label": "use a database first",
109 | "name": "NC_DB",
110 | "default": "pg://host:port?u=user&p=password&d=database"
111 | },
112 | {
113 | "label": "secret token",
114 | "name": "NC_AUTH_JWT_SECRET",
115 | "default": "569a1821-0a93-45e8-87ab-eb857f20a010"
116 | }
117 |
118 | ]
119 | },
120 |
121 |
122 | {
123 | "categories": [
124 | "workflow", "low-code"
125 | ],
126 | "description": "n8n is a free and open fair-code distributed node based Workflow Automation Tool. It can be self-hosted, easily extended, and so also used with internal tools.",
127 |
128 | "image": "n8nio/n8n:latest",
129 | "logo": "https://raw.githubusercontent.com/n8n-io/n8n/master/assets/n8n-logo.png",
130 | "platform": "linux",
131 | "ports": [
132 | "5678/tcp"
133 | ],
134 | "title": "n8n",
135 | "type": 1,
136 | "volumes": [{
137 | "container": "/home/node/.n8n"
138 | }],
139 | "env": [{
140 | "label": "activate user auth",
141 | "name": "N8N_BASIC_AUTH_ACTIVE"
142 | },
143 | {
144 | "label": "access udername",
145 | "name": "N8N_BASIC_AUTH_USER"
146 | },
147 | {
148 | "label": "access password",
149 | "name": "N8N_BASIC_AUTH_PASSWORD"
150 | }
151 | ]
152 | },
153 |
154 |
155 |
156 |
157 | {
158 | "categories": [
159 | "workflow", "low-code"
160 | ],
161 | "description": "Low-code programming for event-driven applications ",
162 |
163 | "image": "nodered/node-red:latest",
164 | "logo": "https://aws1.discourse-cdn.com/business6/uploads/nodered/original/1X/778549404735e222c89ce5449482a189ace8cdae.png",
165 | "platform": "linux",
166 | "ports": [
167 | "1880/tcp"
168 | ],
169 | "title": "Node-red",
170 | "type": 1,
171 | "volumes": [{
172 | "container": "/data"
173 | }]
174 | },
175 | {
176 | "categories": [
177 | "database"
178 | ],
179 | "description": "The most advanced open-source database",
180 | "env": [{
181 | "label": "Superuser",
182 | "name": "POSTGRES_USER"
183 | },
184 | {
185 | "label": "Superuser password",
186 | "name": "POSTGRES_PASSWORD"
187 | }
188 | ],
189 | "image": "postgres:latest",
190 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/postgres.png",
191 | "platform": "linux",
192 | "ports": [
193 | "5432/tcp"
194 | ],
195 | "title": "PostgreSQL",
196 | "type": 1,
197 | "volumes": [{
198 | "container": "/var/lib/postgresql/data"
199 | }]
200 | },
201 |
202 |
203 |
204 |
205 | {
206 | "categories": [
207 | "serverless"
208 | ],
209 | "description": "Serverless functions made simple",
210 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/openfaas.png",
211 | "name": "func",
212 | "note": "Deploys the API gateway and sample functions. You can access the UI on port 8080. Warning: the name of the stack must be 'func'.",
213 | "platform": "linux",
214 | "repository": {
215 | "stackfile": "docker-compose.yml",
216 | "url": "https://github.com/openfaas/faas"
217 | },
218 | "title": "OpenFaaS",
219 | "type": 2
220 | },
221 |
222 |
223 | {
224 | "categories": [
225 | "database"
226 | ],
227 | "description": "Open-source in-memory data structure store",
228 | "image": "redis:latest",
229 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/redis.png",
230 | "platform": "linux",
231 | "ports": [
232 | "6379/tcp"
233 | ],
234 | "title": "Redis",
235 | "type": 1,
236 | "volumes": [{
237 | "container": "/data"
238 | }]
239 | },
240 |
241 |
242 | {
243 | "categories": [
244 | "search-engine"
245 | ],
246 | "description": "Open-source enterprise search platform",
247 | "image": "solr:latest",
248 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/solr.png",
249 | "platform": "linux",
250 | "ports": [
251 | "8983/tcp"
252 | ],
253 | "title": "Solr",
254 | "type": 1,
255 | "volumes": [{
256 | "container": "/opt/solr/mydata"
257 | }]
258 | },
259 |
260 |
261 |
262 | {
263 | "categories": [
264 | "database"
265 | ],
266 | "description": "Microsoft SQL Server on Linux",
267 | "env": [{
268 | "name": "ACCEPT_EULA",
269 | "set": "Y"
270 | },
271 | {
272 | "label": "SA password",
273 | "name": "SA_PASSWORD"
274 | }
275 | ],
276 | "image": "microsoft/mssql-server-linux:2017-GA",
277 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/microsoft.png",
278 | "note": "Password needs to include at least 8 characters including uppercase, lowercase letters, base-10 digits and/or non-alphanumeric symbols.",
279 | "platform": "linux",
280 | "ports": [
281 | "1433/tcp"
282 | ],
283 | "title": "SQL Server",
284 | "type": 1
285 | },
286 |
287 | {
288 | "categories": [
289 | "CMS"
290 | ],
291 | "description": "Wordpress setup with a MySQL database",
292 | "env": [{
293 | "description": "Password used by the MySQL root user.",
294 | "label": "Database root password",
295 | "name": "MYSQL_DATABASE_PASSWORD"
296 | }],
297 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/wordpress.png",
298 | "note": "Deploys a Wordpress instance connected to a MySQL database.",
299 | "platform": "linux",
300 | "repository": {
301 | "stackfile": "stacks/wordpress/docker-stack.yml",
302 | "url": "https://github.com/mikestraney/portainer-templates"
303 | },
304 | "title": "Wordpress",
305 | "type": 3
306 | },
307 |
308 | {
309 | "categories": [
310 | "CMS"
311 | ],
312 | "description": "Wordpress setup with a MySQL database",
313 | "env": [{
314 | "description": "Password used by the MySQL root user.",
315 | "label": "Database root password",
316 | "name": "MYSQL_DATABASE_PASSWORD"
317 | }],
318 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/wordpress.png",
319 | "note": "Deploys a Wordpress instance connected to a MySQL database.",
320 | "platform": "linux",
321 | "repository": {
322 | "stackfile": "stacks/wordpress/docker-stack.yml",
323 | "url": "https://github.com/mikestraney/portainer-templates"
324 | },
325 | "title": "Wordpress",
326 | "type": 3
327 | },
328 | {
329 | "description": "Wordpress setup with a MySQL database",
330 | "note": "Deploys a Wordpress instance connected to a MySQL database.",
331 | "stackfile": "https://raw.githubusercontent.com/mikestraney/portainer-templates/master/stacks/wordpress/edge/docker-stack.yml",
332 | "title": "Wordpress",
333 | "type": 4
334 | },
335 | {
336 | "categories": [
337 | "CMS"
338 | ],
339 | "description": "WebOps platform and hosting control panel",
340 | "image": "plesk/plesk:latest",
341 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/plesk.png",
342 | "note": "Default credentials: admin / changeme",
343 | "platform": "linux",
344 | "ports": [
345 | "21/tcp",
346 | "80/tcp",
347 | "443/tcp",
348 | "8880/tcp",
349 | "8443/tcp",
350 | "8447/tcp"
351 | ],
352 | "title": "Plesk",
353 | "type": 1
354 | },
355 |
356 |
357 |
358 | {
359 | "categories": [
360 | "Other",
361 | "Downloaders"
362 | ],
363 | "description": "YoutubeDL-Material is a Material Design frontend for youtube-dl. It's coded using Angular 9 for the frontend, and Node.js on the backend.",
364 | "image": "tzahi12345/youtubedl-material:latest",
365 | "logo": "https://raw.githubusercontent.com/Qballjos/portainer_templates/master/Images/ytdlm.png",
366 | "name": "youtubedl-material",
367 | "platform": "linux",
368 | "ports": [
369 | "17442:17442/tcp"
370 | ],
371 | "restart_policy": "unless-stopped",
372 | "title": "YouTubeDL-Material",
373 | "type": 1,
374 | "volumes": [{
375 | "bind": "/portainer/Files/AppData/Config/YTDLM",
376 | "container": "/app/appdata"
377 | },
378 | {
379 | "bind": "/portainer/Files/AppData/Youtube/Video",
380 | "container": "/app/video"
381 | },
382 | {
383 | "bind": "/portainer/Files/AppData/Youtube/Subscriptions",
384 | "container": "/app/subscriptions"
385 | },
386 | {
387 | "bind": "/portainer/Files/AppData/Youtube/Users",
388 | "container": "/app/users"
389 | },
390 | {
391 | "bind": "/portainer/Files/AppData/Youtube/Audio",
392 | "container": "/app/audio"
393 | }
394 | ]
395 | },
396 |
397 | {
398 | "description": "[Mariadb](https://mariadb.org/) is one of the most popular database servers. Made by the original developers of MySQL.",
399 | "env": [{
400 | "default": "1024",
401 | "description": "for GroupID",
402 | "label": "PUID",
403 | "name": "PUID"
404 | },
405 | {
406 | "default": "100",
407 | "description": "for UserID",
408 | "label": "PGID",
409 | "name": "PGID"
410 | },
411 | {
412 | "default": "ROOT_ACCESS_PASSWORD",
413 | "description": "Set this to root password for installation (minimum 4 characters).",
414 | "label": "MYSQL_ROOT_PASSWORD",
415 | "name": "MYSQL_ROOT_PASSWORD"
416 | },
417 | {
418 | "default": "Europe/Amsterdam",
419 | "description": "Specify a timezone to use for example Europe/Amsterdam",
420 | "label": "TZ",
421 | "name": "TZ"
422 | },
423 | {
424 | "default": "USER_DB_NAME",
425 | "description": "Specify the name of a database to be created on image startup.",
426 | "label": "MYSQL_DATABASE",
427 | "name": "MYSQL_DATABASE"
428 | },
429 | {
430 | "default": "MYSQL_USER",
431 | "description": "This user will have superuser access to the database specified by MYSQL_DATABASE (do not use root here).",
432 | "label": "MYSQL_USER",
433 | "name": "MYSQL_USER"
434 | },
435 | {
436 | "default": "DATABASE_PASSWORD",
437 | "description": "Set this to the password you want to use for you MYSQL_USER (minimum 4 characters).",
438 | "label": "MYSQL_PASSWORD",
439 | "name": "MYSQL_PASSWORD"
440 | },
441 | {
442 | "default": "http://URL1/your.sql,https://URL2/your.sql",
443 | "description": "Set this to ingest sql files from an http/https endpoint (comma seperated array).",
444 | "label": "REMOTE_SQL",
445 | "name": "REMOTE_SQL"
446 | }
447 | ],
448 | "image": "linuxserver/mariadb:latest",
449 | "logo": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/mariadb-git.png",
450 | "name": "Mariadb",
451 | "note": "Portainer App Templates by Technorabilia based on data provided by LinuxServer.io.
Don't forget to create the volume directories on the host file system.
mkdir -p /volume1/docker/mariadb/config
", 452 | "platform": "linux", 453 | "ports": [ 454 | "3306:3306/tcp" 455 | ], 456 | "restart_policy": "unless-stopped", 457 | "title": "Mariadb", 458 | "type": 1, 459 | "volumes": [{ 460 | "bind": "/volume1/docker/mariadb/config", 461 | "container": "/config" 462 | }] 463 | }, 464 | 465 | 466 | { 467 | "description": "[Nextcloud](https://nextcloud.com/) gives you access to all your files wherever you are. Where are your photos and documents? With Nextcloud you pick a server of your choice, at home, in a data center or at a provider. And that is where your files will be. Nextcloud runs on that server, protecting your data and giving you access from your desktop or mobile devices. Through Nextcloud you also access, sync and share your existing data on that FTP drive at the office, a Dropbox or a NAS you have at home.", 468 | "env": [{ 469 | "default": "1024", 470 | "description": "for GroupID", 471 | "label": "PUID", 472 | "name": "PUID" 473 | }, 474 | { 475 | "default": "100", 476 | "description": "for UserID", 477 | "label": "PGID", 478 | "name": "PGID" 479 | }, 480 | { 481 | "default": "Europe/Amsterdam", 482 | "description": "Specify a timezone to use for example Europe/Amsterdam", 483 | "label": "TZ", 484 | "name": "TZ" 485 | } 486 | ], 487 | "image": "linuxserver/nextcloud:latest", 488 | "logo": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/nextcloud-icon.png", 489 | "name": "Nextcloud", 490 | "note": "Portainer App Templates by Technorabilia based on data provided by LinuxServer.io.Don't forget to create the volume directories on the host file system.
mkdir -p /volume1/docker/nextcloud/config
mkdir -p /volume1/docker/nextcloud/data
Don't forget to create the volume directories on the host file system.
mkdir -p /volume1/docker/nginx/config
", 538 | "platform": "linux", 539 | "ports": [ 540 | "80:80/tcp", 541 | "443:443/tcp" 542 | ], 543 | "restart_policy": "unless-stopped", 544 | "title": "Nginx", 545 | "type": 1, 546 | "volumes": [{ 547 | "bind": "/volume1/docker/nginx/config", 548 | "container": "/config" 549 | }] 550 | }, 551 | 552 | 553 | { 554 | "categories": [ 555 | "webserver" 556 | ], 557 | "description": "Open-source HTTP server", 558 | "image": "httpd:latest", 559 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/httpd.png", 560 | "platform": "linux", 561 | "ports": [ 562 | "80/tcp" 563 | ], 564 | "title": "Httpd", 565 | "type": 1, 566 | "volumes": [{ 567 | "container": "/usr/local/apache2/htdocs/" 568 | }] 569 | }, 570 | 571 | { 572 | "description": "[Syncthing](https://syncthing.net) replaces proprietary sync and cloud services with something open, trustworthy and decentralized. Your data is your data alone and you deserve to choose where it is stored, if it is shared with some third party and how it's transmitted over the Internet.", 573 | "env": [{ 574 | "default": "1024", 575 | "description": "for GroupID", 576 | "label": "PUID", 577 | "name": "PUID" 578 | }, 579 | { 580 | "default": "100", 581 | "description": "for UserID", 582 | "label": "PGID", 583 | "name": "PGID" 584 | }, 585 | { 586 | "default": "Europe/Amsterdam", 587 | "description": "Specify a timezone to use for example Europe/Amsterdam", 588 | "label": "TZ", 589 | "name": "TZ" 590 | } 591 | ], 592 | "image": "linuxserver/syncthing:latest", 593 | "logo": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/syncthing-banner.png", 594 | "name": "Syncthing", 595 | "note": "Portainer App Templates by Technorabilia based on data provided by LinuxServer.io.Don't forget to create the volume directories on the host file system.
mkdir -p /volume1/docker/syncthing/config
mkdir -p /volume1/docker/syncthing/data1
mkdir -p /volume1/docker/syncthing/data2
Don't forget to create the volume directories on the host file system.
mkdir -p /volume1/docker/webtop/config
Don't forget to create the volume directories on the host file system.
mkdir -p /volume1/docker/wireshark/config
", 707 | "platform": "linux", 708 | "ports": [ 709 | "3000:3000/tcp" 710 | ], 711 | "restart_policy": "unless-stopped", 712 | "title": "Wireshark", 713 | "type": 1, 714 | "volumes": [{ 715 | "bind": "/volume1/docker/wireshark/config", 716 | "container": "/config" 717 | }] 718 | }, 719 | 720 | { 721 | "category": [ 722 | "Other" 723 | ], 724 | "description": "OpenVPN Access Server is a full featured secure network tunneling VPN software solution that integrates OpenVPN server capabilities, enterprise management capabilities, simplified OpenVPN Connect UI, and OpenVPN Client software packages that accommodate Windows, MAC, Linux, Android, and iOS environments.", 725 | "env": [{ 726 | "label": "INTERFACE", 727 | "name": "INTERFACE", 728 | "set": "eth0" 729 | }, 730 | { 731 | "label": "PGID", 732 | "name": "PGID", 733 | "set": "1000" 734 | }, 735 | { 736 | "label": "PUID", 737 | "name": "PUID", 738 | "set": "1000" 739 | }, 740 | { 741 | "label": "TZ", 742 | "name": "TZ", 743 | "set": "America/Chicago" 744 | } 745 | ], 746 | "image": "linuxserver/openvpn-as:latest", 747 | "logo": "https://raw.githubusercontent.com/thesugarat/portainer_templates-1/master/Images/openvpn-as-icon.png", 748 | "platform": "linux", 749 | "ports": [ 750 | "943/tcp", 751 | "9443/tcp", 752 | "1194/udp" 753 | ], 754 | "title": "openvpn-as", 755 | "type": 1, 756 | "volumes": [{ 757 | "container": "/config" 758 | }] 759 | }, 760 | 761 | 762 | 763 | { 764 | "description": "[Openvscode-server](https://github.com/gitpod-io/openvscode-server) provides a version of VS Code that runs a server on a remote machine and allows access through a modern web browser.", 765 | "env": [{ 766 | "default": "1024", 767 | "description": "for GroupID", 768 | "label": "PUID", 769 | "name": "PUID" 770 | }, 771 | { 772 | "default": "100", 773 | "description": "for UserID", 774 | "label": "PGID", 775 | "name": "PGID" 776 | }, 777 | { 778 | "default": "Europe/Amsterdam", 779 | "description": "Specify a timezone to use for example Europe/Amsterdam", 780 | "label": "TZ", 781 | "name": "TZ" 782 | }, 783 | { 784 | "default": "supersecrettoken", 785 | "description": "Optional security token for accessing the Web UI.", 786 | "label": "CONNECTION_TOKEN", 787 | "name": "CONNECTION_TOKEN" 788 | }, 789 | { 790 | "default": "", 791 | "description": "Optional path to a file inside the container that contains the security token for accessing the Web UI (ie. `/path/to/file`). Overrides `CONNECTION_TOKEN`.", 792 | "label": "CONNECTION_SECRET", 793 | "name": "CONNECTION_SECRET" 794 | }, 795 | { 796 | "default": "password", 797 | "description": "If this optional variable is set, user will have sudo access in the openvscode-server terminal with the specified password.", 798 | "label": "SUDO_PASSWORD", 799 | "name": "SUDO_PASSWORD" 800 | }, 801 | { 802 | "default": "", 803 | "description": "Optionally set sudo password via hash (takes priority over `SUDO_PASSWORD` var). Format is `$type$salt$hashed`.", 804 | "label": "SUDO_PASSWORD_HASH", 805 | "name": "SUDO_PASSWORD_HASH" 806 | } 807 | ], 808 | "image": "linuxserver/openvscode-server:latest", 809 | "logo": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/openvscode-server-logo.png", 810 | "name": "Openvscode-server", 811 | "note": "Portainer App Templates by Technorabilia based on data provided by LinuxServer.io.Don't forget to create the volume directories on the host file system.
mkdir -p /volume1/docker/openvscode-server/config
", 812 | "platform": "linux", 813 | "ports": [ 814 | "3000:3000/tcp" 815 | ], 816 | "restart_policy": "unless-stopped", 817 | "title": "Openvscode-server", 818 | "type": 1, 819 | "volumes": [{ 820 | "bind": "/volume1/docker/openvscode-server/config", 821 | "container": "/config" 822 | }] 823 | }, 824 | 825 | { 826 | "categories": [ 827 | "Other", 828 | "Tools" 829 | ], 830 | "description": "A dead simple static HOMepage for your servER to keep your s ervices on hand, from a simple yaml configuration file.", 831 | "image": "b4bz/homer:latest", 832 | "logo": "https://raw.githubusercontent.com/Qballjos/portainer_templates/master/Images/homer.png", 833 | "name": "homer", 834 | "note": "This container requires a yml file within the config volume. See the documentation here https://github.com/bastienwirtz/homer", 835 | "platform": "linux", 836 | "ports": [ 837 | "8902:8080/tcp" 838 | ], 839 | "restart_policy": "unless-stopped", 840 | "title": "Homer", 841 | "type": 1, 842 | "volumes": [{ 843 | "bind": "/portainer/Files/AppData/Config/Homer/assets", 844 | "container": "/www/assets" 845 | }, 846 | { 847 | "bind": "/portainer/Files/AppData/Config/Homer", 848 | "container": "/www/config.yml" 849 | } 850 | ] 851 | }, 852 | 853 | 854 | { 855 | "categories": [ 856 | "continuous-integration" 857 | ], 858 | "description": "Open-source continuous integration tool", 859 | "env": [{ 860 | "label": "Jenkins options", 861 | "name": "JENKINS_OPTS" 862 | }], 863 | "image": "jenkins/jenkins:lts", 864 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/jenkins.png", 865 | "platform": "linux", 866 | "ports": [ 867 | "8080/tcp", 868 | "50000/tcp" 869 | ], 870 | "title": "Jenkins", 871 | "type": 1, 872 | "volumes": [{ 873 | "container": "/var/jenkins_home" 874 | }] 875 | }, 876 | 877 | 878 | { 879 | "categories": [ 880 | "marketing" 881 | ], 882 | "description": "Open-source marketing automation platform", 883 | "env": [{ 884 | "label": "MySQL database host", 885 | "name": "MAUTIC_DB_HOST", 886 | "type": "container" 887 | }, 888 | { 889 | "label": "Database password", 890 | "name": "MAUTIC_DB_PASSWORD" 891 | } 892 | ], 893 | "image": "mautic/mautic:latest", 894 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/mautic.png", 895 | "platform": "linux", 896 | "ports": [ 897 | "80/tcp" 898 | ], 899 | "title": "Mautic", 900 | "type": 1, 901 | "volumes": [{ 902 | "container": "/var/www/html" 903 | }] 904 | }, 905 | 906 | 907 | { 908 | "categories": [ 909 | "storage" 910 | ], 911 | "description": "Standalone AWS S3 protocol server", 912 | "env": [{ 913 | "label": "Scality S3 access key", 914 | "name": "SCALITY_ACCESS_KEY" 915 | }, 916 | { 917 | "label": "Scality S3 secret key", 918 | "name": "SCALITY_SECRET_KEY" 919 | } 920 | ], 921 | "image": "scality/s3server", 922 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/scality-s3.png", 923 | "platform": "linux", 924 | "ports": [ 925 | "8000/tcp" 926 | ], 927 | "title": "Scality S3", 928 | "type": 1, 929 | "volumes": [{ 930 | "container": "/usr/src/app/localData" 931 | }, 932 | { 933 | "container": "/usr/src/app/localMetadata" 934 | } 935 | ] 936 | }, 937 | { 938 | "categories": [ 939 | "Other", 940 | "Music" 941 | ], 942 | "description": "Deemix is a deezer downloader built from the ashes of Deezloader Remix.", 943 | "image": "registry.gitlab.com/bockiii/deemix-docker", 944 | "logo": "https://raw.githubusercontent.com/mikestraney/portainer-templates/master/Images/deemix.png", 945 | "name": "deemix", 946 | "note": "Deemix may take a few minutes to install. Be sure to check the logs for details. Refer to \u003ca href='https://notabug.org/RemixDevs/DeezloaderRemix/wiki/Login+via+userToken'\u003ethis page\u003c/a\u003e for userToken details.", 947 | "platform": "linux", 948 | "ports": [ 949 | "9666:9666/tcp" 950 | ], 951 | "restart_policy": "unless-stopped", 952 | "title": "DeeMix", 953 | "type": 1, 954 | "volumes": [ 955 | { 956 | "bind": "/portainer/Files/AppData/Config/DeeMix", 957 | "container": "/config" 958 | }, 959 | { 960 | "bind": "/portainer/Downloads", 961 | "container": "/downloads" 962 | } 963 | ] 964 | }, 965 | { 966 | "type": 1, 967 | "title": "Mongo", 968 | "description": "Open-source document-oriented database", 969 | "categories": [ 970 | "database" 971 | ], 972 | "platform": "linux", 973 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/mongo.png", 974 | "image": "mongo:latest", 975 | "ports": [ 976 | "27017/tcp" 977 | ], 978 | "volumes": [{ 979 | "container": "/data/db" 980 | }] 981 | }, 982 | { 983 | "type": 1, 984 | "title": "MySQL", 985 | "description": "The most popular open-source database", 986 | "categories": [ 987 | "database" 988 | ], 989 | "platform": "linux", 990 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/mysql.png", 991 | "image": "mysql:latest", 992 | "env": [{ 993 | "name": "MYSQL_ROOT_PASSWORD", 994 | "label": "Root password" 995 | }], 996 | "ports": [ 997 | "3306/tcp" 998 | ], 999 | "volumes": [{ 1000 | "container": "/var/lib/mysql" 1001 | }] 1002 | }, 1003 | { 1004 | "type": 1, 1005 | "title": "Odoo", 1006 | "description": "Open-source business apps", 1007 | "categories": [ 1008 | "project-management" 1009 | ], 1010 | "platform": "linux", 1011 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/odoo.png", 1012 | "image": "odoo:latest", 1013 | "env": [{ 1014 | "name": "HOST", 1015 | "label": "PostgreSQL database host", 1016 | "type": "container" 1017 | }, 1018 | { 1019 | "name": "USER", 1020 | "label": "Database user" 1021 | }, 1022 | { 1023 | "name": "PASSWORD", 1024 | "label": "Database password" 1025 | } 1026 | ], 1027 | "ports": [ 1028 | "8069/tcp" 1029 | ], 1030 | "volumes": [{ 1031 | "container": "/var/lib/odoo" 1032 | }, 1033 | { 1034 | "container": "/mnt/extra-addons" 1035 | } 1036 | ] 1037 | }, 1038 | { 1039 | "categories": [ 1040 | "Other", 1041 | "Tools" 1042 | ], 1043 | "description": "A Linux network-level advertisement and Internet tracker blocking application which acts as a DNS sinkhole.", 1044 | "image": "pihole/pihole:latest", 1045 | "logo": "https://raw.githubusercontent.com/mikestraney/portainer-templates/master/Images/pihole.png", 1046 | "name": "pihole", 1047 | "note": "When the installation is complete, navigate to your.ip.goes.here:1010/admin. Follow the article \u003ca href='https://medium.com/@niktrix/getting-rid-of-systemd-resolved-consuming-port-53-605f0234f32f'\u003ehere\u003c/a\u003e if you run into issues binding to port 53.", 1048 | "platform": "linux", 1049 | "ports": [ 1050 | "53:53/tcp", 1051 | "53:53/udp", 1052 | "67:67/udp", 1053 | "1010:80/tcp", 1054 | "4443:443/tcp" 1055 | ], 1056 | "restart_policy": "unless-stopped", 1057 | "title": "Pi-Hole", 1058 | "type": 1, 1059 | "volumes": [ 1060 | { 1061 | "bind": "/portainer/Files/AppData/Config/PiHole", 1062 | "container": "/etc/pihole" 1063 | }, 1064 | { 1065 | "bind": "/portainer/Files/AppData/Config/PiHole/DNS", 1066 | "container": "/etc/dnsmasq.d" 1067 | } 1068 | ] 1069 | }, 1070 | { 1071 | "type": 1, 1072 | "title": "RabbitMQ", 1073 | "description": "Highly reliable enterprise messaging system", 1074 | "categories": [ 1075 | "messaging" 1076 | ], 1077 | "platform": "linux", 1078 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/rabbitmq.png", 1079 | "image": "rabbitmq:latest", 1080 | "ports": [ 1081 | "5671/tcp", 1082 | "5672/tcp" 1083 | ], 1084 | "volumes": [{ 1085 | "container": "/var/lib/rabbitmq" 1086 | }] 1087 | }, 1088 | 1089 | { 1090 | "categories": [ 1091 | "selfhost","tool","onlyoffice" 1092 | ], 1093 | "description": "similar to nextcloud , but better imo , (has nlyoffice integration & more)", 1094 | 1095 | "image": "owncloud:latest", 1096 | "logo": "https://d1q6f0aelx0por.cloudfront.net/product-logos/24f2a51f-4b42-4dea-98c5-6bb9603c1b4e-owncloud.png", 1097 | "platform": "linux", 1098 | "ports": [ 1099 | "8080/tcp", 1100 | "80/tcp" 1101 | ], 1102 | "title": "owncloud", 1103 | "type": 1 1104 | }, 1105 | 1106 | 1107 | { 1108 | "categories": [ 1109 | "backend","lowcode" 1110 | ], 1111 | "description": "Supabase is an open source Firebase alternative.It provides all the backend services you need to build a product. You can use it completely, or just the services you require:", 1112 | "env": [ 1113 | { 1114 | "description": "Password used by the MySQL root user.", 1115 | "label": "Database root password", 1116 | "name": "POSTGRES_PASSWORD" 1117 | ,"default":"your-super-secret-and-long-postgres-password" 1118 | }, 1119 | { 1120 | "description": "Password used by the MySQL root user.", 1121 | "label": "Database root password", 1122 | "name": "JWT_SECRET" 1123 | ,"default":"your-super-secret-jwt-token-with-at-least-32-characters-long" 1124 | }, 1125 | { 1126 | "description": "Password used by the MySQL root user.", 1127 | "label": "Database root password", 1128 | "name": "ANON_KEY" 1129 | ,"default":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyAgCiAgICAicm9sZSI6ICJhbm9uIiwKICAgICJpc3MiOiAic3VwYWJhc2UtZGVtbyIsCiAgICAiaWF0IjogMTY0MTc2OTIwMCwKICAgICJleHAiOiAxNzk5NTM1NjAwCn0.dc_X5iR_VP_qT0zsiyj_I_OZ2T9FtRU2BBNWN8Bu4GE" 1130 | }, 1131 | { 1132 | "description": "Password used by the MySQL root user.", 1133 | "label": "Database root password", 1134 | "name": "SERVICE_ROLE_KEY" 1135 | ,"default":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyAgCiAgICAicm9sZSI6ICJzZXJ2aWNlX3JvbGUiLAogICAgImlzcyI6ICJzdXBhYmFzZS1kZW1vIiwKICAgICJpYXQiOiAxNjQxNzY5MjAwLAogICAgImV4cCI6IDE3OTk1MzU2MDAKfQ.DaYlNEoUrrEn2Ig7tqibS-PHK5vgusbcbo7X36XVt4Q" 1136 | }, 1137 | { 1138 | "description": "Password used by the MySQL root user.", 1139 | "label": "Database root password", 1140 | "name": "POSTGRES_HOST" 1141 | ,"default":"db" 1142 | }, 1143 | { 1144 | "description": "Password used by the MySQL root user.", 1145 | "label": "Database root password", 1146 | "name": "POSTGRES_DB" 1147 | ,"default":"postgres" 1148 | }, 1149 | { 1150 | "description": "Password used by the MySQL root user.", 1151 | "label": "Database root password", 1152 | "name": "POSTGRES_USER" 1153 | ,"default":"postgres" 1154 | }, 1155 | { 1156 | "description": "Password used by the MySQL root user.", 1157 | "label": "Database root password", 1158 | "name": "POSTGRES_PORT" 1159 | ,"default":"5432" 1160 | }, 1161 | { 1162 | "description": "Password used by the MySQL root user.", 1163 | "label": "Database root password", 1164 | "name": "KONG_HTTP_PORT" 1165 | ,"default":"8000" 1166 | }, 1167 | { 1168 | "description": "Password used by the MySQL root user.", 1169 | "label": "Database root password", 1170 | "name": "KONG_HTTPS_PORT" 1171 | ,"default":"8443" 1172 | }, 1173 | { 1174 | "description": "Password used by the MySQL root user.", 1175 | "label": "Database root password", 1176 | "name": "PGRST_DB_SCHEMAS" 1177 | ,"default":"public,storage,graphql_public" 1178 | }, 1179 | { 1180 | "description": "Password used by the MySQL root user.", 1181 | "label": "Database root password", 1182 | "name": "SITE_URL" 1183 | ,"default":"http://localhost:3000" 1184 | }, 1185 | { 1186 | "description": "Password used by the MySQL root user.", 1187 | "label": "Database root password", 1188 | "name": "ADDITIONAL_REDIRECT_URLS" 1189 | ,"default":"" 1190 | }, 1191 | 1192 | { 1193 | "description": "Password used by the MySQL root user.", 1194 | "label": "Database root password", 1195 | "name": "JWT_EXPIRY" 1196 | ,"default":"3600" 1197 | }, { 1198 | "description": "Password used by the MySQL root user.", 1199 | "label": "Database root password", 1200 | "name": "DISABLE_SIGNUP" 1201 | ,"default":"false" 1202 | }, { 1203 | "description": "Password used by the MySQL root user.", 1204 | "label": "Database root password", 1205 | "name": "ENABLE_EMAIL_SIGNUP" 1206 | ,"default":"true" 1207 | }, { 1208 | "description": "Password used by the MySQL root user.", 1209 | "label": "Database root password", 1210 | "name": "ENABLE_EMAIL_AUTOCONFIRM" 1211 | ,"default":"true" 1212 | }, { 1213 | "description": "Password used by the MySQL root user.", 1214 | "label": "Database root password", 1215 | "name": "SMTP_ADMIN_EMAIL" 1216 | ,"default":"admin@example.com" 1217 | }, { 1218 | "description": "Password used by the MySQL root user.", 1219 | "label": "Database root password", 1220 | "name": "SMTP_HOST" 1221 | ,"default":"fake" 1222 | }, { 1223 | "description": "Password used by the MySQL root user.", 1224 | "label": "Database root password", 1225 | "name": "SMTP_PORT" 1226 | ,"default":"fake" 1227 | }, { 1228 | "description": "Password used by the MySQL root user.", 1229 | "label": "Database root password", 1230 | "name": "SMTP_USER" 1231 | ,"default":"fake" 1232 | }, { 1233 | "description": "Password used by the MySQL root user.", 1234 | "label": "Database root password", 1235 | "name": "SMTP_PASS" 1236 | ,"default":"fake" 1237 | }, { 1238 | "description": "Password used by the MySQL root user.", 1239 | "label": "Database root password", 1240 | "name": "SMTP_SENDER_NAME" 1241 | ,"default":"fake" 1242 | }, { 1243 | "description": "Password used by the MySQL root user.", 1244 | "label": "Database root password", 1245 | "name": "ENABLE_PHONE_SIGNUP" 1246 | ,"default":"true" 1247 | }, { 1248 | "description": "Password used by the MySQL root user.", 1249 | "label": "Database root password", 1250 | "name": "ENABLE_PHONE_AUTOCONFIRM" 1251 | ,"default":"true" 1252 | }, { 1253 | "description": "Password used by the MySQL root user.", 1254 | "label": "Database root password", 1255 | "name": "STUDIO_PORT" 1256 | ,"default":"3000" 1257 | }, { 1258 | "description": "Password used by the MySQL root user.", 1259 | "label": "Database root password", 1260 | "name": "PUBLIC_REST_URL" 1261 | ,"default":"http://localhost:8000/rest/v1/" 1262 | } 1263 | 1264 | ], 1265 | "logo": "https://supabase.com/docs/supabase-dark.svg", 1266 | "note": "Deploys a Wordpress instance connected to a MySQL database.", 1267 | "platform": "linux", 1268 | "repository": { 1269 | "stackfile": "supabase/docker-compose.yml", 1270 | "url": "https://github.com/mehdi-yc/goodcontainers" 1271 | }, 1272 | "title": "Supabase", 1273 | "type": 3 1274 | } 1275 | ] 1276 | } 1277 | -------------------------------------------------------------------------------- /templatesZ.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "2", 3 | "templates": [ 4 | 5 | { 6 | "categories": [ 7 | "OLAP" 8 | ], 9 | "description": "MOLAP data visualisation tool", 10 | "image": "magm3333/pentahoserver:latest", 11 | "logo": "https://i.pinimg.com/originals/a4/50/84/a45084beba52027a92462c7b9f1708c5.png", 12 | "platform": "linux", 13 | "ports": [ 14 | "8080/tcp" 15 | ], 16 | "title": "Pantaho server CE", 17 | "type": 1 18 | 19 | }, 20 | 21 | { 22 | "categories": [ 23 | "processing" 24 | ], 25 | "restart_policy": "always", 26 | "description": "Redpanda Console is a developer-friendly UI for managing your Kafka/Redpanda workloads. ", 27 | "image": "docker.redpanda.com/redpandadata/console:latest", 28 | "logo": "https://images.ctfassets.net/paqvtpyf8rwu/5wODDUzLP7teOGDS7M5m39/466f646e44c2ccc4e78236b17d7d68ac/Logo.svg", 29 | "platform": "linux", 30 | "ports": [ 31 | "8080/tcp" 32 | ], 33 | "title": "Redmanda Console (kafka console)", 34 | "type": 1, 35 | "env": [ 36 | { 37 | "default": "host.docker.internal:9092", 38 | "description": "KAFKA_BROKERS", 39 | "label": "KAFKA_BROKERS", 40 | "name": "KAFKA_BROKERS" 41 | } 42 | ] 43 | 44 | }, 45 | { 46 | "categories": [ 47 | "processing" 48 | ], 49 | "description": "A visual tool to define and run real-time decision algorithms. docker run -it --network host -e DEFAULT_SCENARIO_TYPE=streaming-lite-embedded -e KAFKA_ADDRESS=localhost:3032 -e SCHEMA_REGISTRY_URL=http://localhost:3082 touk/nussknacker:latest", 50 | "image": "touk/nussknacker:latest", 51 | "logo": "https://nussknacker.io/wp-content/uploads/2022/07/Twitter-header.png", 52 | "platform": "linux", 53 | "ports": [ 54 | "8181/tcp" 55 | ], 56 | "title": "nussknacker", 57 | "type": 1, 58 | "env": [ 59 | { 60 | "default": "request-response-embedded", 61 | "description": "DEFAULT_SCENARIO_TYPE", 62 | "label": "DEFAULT_SCENARIO_TYPE", 63 | "name": "DEFAULT_SCENARIO_TYPE" 64 | } 65 | ] 66 | 67 | }, 68 | { 69 | "categories": [ 70 | "ETL" 71 | ], 72 | "restart_policy": "always", 73 | "description": "An easy to use, powerful, and reliable system to process and distribute data.", 74 | "image": "apache/nifi:latest", 75 | "logo": "https://upload.wikimedia.org/wikipedia/commons/thumb/f/ff/Apache-nifi-logo.svg/1200px-Apache-nifi-logo.svg.png", 76 | "platform": "linux", 77 | "ports": [ 78 | "8080/tcp" 79 | ], 80 | "title": "APACHE NIFI", 81 | "type": 1, 82 | "env": [ 83 | { 84 | "default": "8080", 85 | "description": "NIFI_WEB_HTTP_PORT", 86 | "label": "NIFI_WEB_HTTP_PORT", 87 | "name": "NIFI_WEB_HTTP_PORT" 88 | } 89 | ] 90 | }, 91 | { 92 | "categories": [ 93 | "Spreadsheet", 94 | "Office suite" 95 | ], 96 | "restart_policy": "always", 97 | "description": "Run your private office with the ONLYOFFICE", 98 | "image": "onlyoffice/documentserver:latest", 99 | "logo": "https://helpcenter.onlyoffice.com/images/logonew.svg", 100 | "platform": "linux", 101 | "ports": [ 102 | "80/tcp" 103 | 104 | ], 105 | "title": "OnlyOffice", 106 | "type": 1, 107 | "env": [ 108 | { 109 | "default": "my_token", 110 | "description": "JWT_SECRET", 111 | "label": "JWT_SECRET", 112 | "name": "JWT_SECRET" 113 | }, 114 | { 115 | "default": "false", 116 | "description": "JWT_ENABLED", 117 | "label": "JWT_ENABLED", 118 | "name": "JWT_ENABLED" 119 | } 120 | ] 121 | }, 122 | 123 | { 124 | "categories": [ 125 | "OLAP", 126 | "Datawarehouse" 127 | ], 128 | "description": "ClickHouse is the fastest and most resource efficient open-source database for real-time apps and analytics.", 129 | "image": "yandex/clickhouse-server:latest", 130 | "logo": "https://clickhouse.com/logos/black-logo.svg", 131 | "platform": "linux", 132 | "ports": [ 133 | "9000/tcp", 134 | "8123/tcp" 135 | ], 136 | "title": "Clickhouse", 137 | "type": 1, 138 | "env": [ 139 | { 140 | "default": "nofile=262144:262144", 141 | "description": "ulimit", 142 | "label": "ulimit", 143 | "name": "ulimit" 144 | } 145 | ] 146 | }, 147 | { 148 | "categories": [ 149 | "Utility" 150 | ], 151 | "description": "Manage your files on the cloud.", 152 | "restart_policy": "unless-stopped", 153 | "image": "lscr.io/linuxserver/papermerge:latest", 154 | "logo": "https://www.papermerge.com/assets/img/papermerge-logo.svg", 155 | "platform": "linux", 156 | "ports": [ 157 | "8000/tcp" 158 | ], 159 | "title": "papermerge", 160 | "type": 1, 161 | "env": [ 162 | { 163 | "default": "1000", 164 | "description": "PUID", 165 | "label": "PUID", 166 | "name": "PUID" 167 | }, 168 | { 169 | "default": "1000", 170 | "description": "PGID", 171 | "label": "PGID", 172 | "name": "PGID" 173 | }, 174 | { 175 | "default": "America/New_York", 176 | "description": "time zone", 177 | "label": "time zone", 178 | "name": "America/New_York" 179 | }, 180 | { 181 | "default": "nofile=262144:262144", 182 | "description": "ulimit", 183 | "label": "ulimit", 184 | "name": "ulimit" 185 | } 186 | ] 187 | }, 188 | { 189 | "categories": [ 190 | "data", 191 | "Logging" 192 | ], 193 | "description": "Collect, search and visualise log data with Elasticsearch, Logstash, and Kibana. ", 194 | "image": "sebp/elk:latest", 195 | "logo": "https://cdn.freebiesupply.com/logos/large/2x/elastic-stack-logo-svg-vector.svg", 196 | "platform": "linux", 197 | "ports": [ 198 | "5601/tcp", 199 | "9200/tcp", 200 | "5044/tcp" 201 | ], 202 | "title": "ELK stack", 203 | "type": 1 204 | }, 205 | { 206 | "categories": [ 207 | "data", 208 | "dashboard" 209 | ], 210 | "description": "Apache Superset is a Data Visualization and Data Exploration Platform. ", 211 | "image": "apache/superset:latest", 212 | "logo": "https://superset.apache.org/img/favicon.ico", 213 | "platform": "linux", 214 | "ports": [ 215 | "8088/tcp" 216 | ], 217 | "title": "Apache superset", 218 | "type": 1 219 | }, 220 | { 221 | "categories": [ 222 | "data", 223 | "dashboard" 224 | ], 225 | "description": "The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.", 226 | "image": "grafana/grafana:latest", 227 | "logo": "https://grafana.com/static/assets/img/fav32.png", 228 | "platform": "linux", 229 | "ports": [ 230 | "3000/tcp" 231 | ], 232 | "title": "Grafana", 233 | "type": 1 234 | }, 235 | { 236 | "categories": [ 237 | "code", 238 | "pipelines" 239 | ], 240 | "description": "Build powerful pipelines in any programming language. ", 241 | "image": "gaiapipeline/gaia:latest", 242 | "logo": "https://gist.githubusercontent.com/michelvocks/ef3894f63c3bb004bca1a2fd5f7eb644/raw/40c5799d74a6f28af1874e726083a50a3ebd877d/gaia-logo-text.png", 243 | "platform": "linux", 244 | "ports": [ 245 | "8080/tcp" 246 | ], 247 | "title": "Gaia pipeline", 248 | "type": 1 249 | }, 250 | { 251 | "categories": [ 252 | "cms", 253 | "low-code" 254 | ], 255 | "description": "Open source Node.js Headless CMS to easily build customisable APIs.", 256 | "image": "strapi/strapi:latest", 257 | "logo": "https://strapi.io/assets/favicon-32x32.png", 258 | "platform": "linux", 259 | "ports": [ 260 | "1337/tcp" 261 | ], 262 | "title": "Strapi", 263 | "type": 1 264 | }, 265 | { 266 | "categories": [ 267 | "coding", 268 | "datascience" 269 | ], 270 | "description": "Base Jupyter Notebook Stack", 271 | "image": "jupyter/base-notebook:latest", 272 | "logo": "https://jupyter-docker-stacks.readthedocs.io/en/latest/_static/jupyter-logo.svg", 273 | "platform": "linux", 274 | "ports": [ 275 | "8888/tcp" 276 | ], 277 | "title": "Jupyter", 278 | "type": 1 279 | }, 280 | { 281 | "categories": [ 282 | "database", 283 | "low-code" 284 | ], 285 | "description": "The Open Source Airtable Alternative 🎃Turns any MySQL, PostgreSQL, SQL Server, SQLite & MariaDB into a smart-spreadsheet. .", 286 | "image": "nocodb/nocodb:latest", 287 | "logo": "https://docs.nocodb.com/favicon-128.png", 288 | "platform": "linux", 289 | "ports": [ 290 | "8080/tcp" 291 | ], 292 | "title": "NocoDB", 293 | "type": 1, 294 | "volumes": [ 295 | { 296 | "container": "/home/node/.nocodb" 297 | } 298 | ], 299 | "env": [ 300 | { 301 | "label": "use a database first", 302 | "name": "NC_DB", 303 | "default": "pg://host:port?u=user&p=password&d=database" 304 | }, 305 | { 306 | "label": "secret token", 307 | "name": "NC_AUTH_JWT_SECRET", 308 | "default": "569a1821-0a93-45e8-87ab-eb857f20a010" 309 | } 310 | ] 311 | }, 312 | { 313 | "categories": [ 314 | "workflow", 315 | "low-code" 316 | ], 317 | "description": "n8n is a free and open fair-code distributed node based Workflow Automation Tool. It can be self-hosted, easily extended, and so also used with internal tools.", 318 | "image": "n8nio/n8n:latest", 319 | "logo": "https://raw.githubusercontent.com/n8n-io/n8n/master/assets/n8n-logo.png", 320 | "platform": "linux", 321 | "ports": [ 322 | "5678/tcp" 323 | ], 324 | "title": "n8n", 325 | "type": 1, 326 | "volumes": [ 327 | { 328 | "container": "/home/node/.n8n" 329 | } 330 | ], 331 | "env": [ 332 | { 333 | "label": "activate user auth", 334 | "name": "N8N_BASIC_AUTH_ACTIVE" 335 | }, 336 | { 337 | "label": "access udername", 338 | "name": "N8N_BASIC_AUTH_USER" 339 | }, 340 | { 341 | "label": "access password", 342 | "name": "N8N_BASIC_AUTH_PASSWORD" 343 | }, 344 | { 345 | "label": "WEBHOOK_URL", 346 | "name": "WEBHOOK_URL" 347 | } 348 | ] 349 | }, 350 | { 351 | "categories": [ 352 | "workflow", 353 | "low-code" 354 | ], 355 | "description": "Low-code programming for event-driven applications ", 356 | "image": "nodered/node-red:latest", 357 | "logo": "https://aws1.discourse-cdn.com/business6/uploads/nodered/original/1X/778549404735e222c89ce5449482a189ace8cdae.png", 358 | "platform": "linux", 359 | "ports": [ 360 | "1880/tcp" 361 | ], 362 | "title": "Node-red", 363 | "type": 1, 364 | "volumes": [ 365 | { 366 | "container": "/data" 367 | } 368 | ] 369 | }, 370 | { 371 | "categories": [ 372 | "database" 373 | ], 374 | "description": "The most advanced open-source database", 375 | "env": [ 376 | { 377 | "label": "Superuser", 378 | "name": "POSTGRES_USER" 379 | }, 380 | { 381 | "label": "Superuser password", 382 | "name": "POSTGRES_PASSWORD" 383 | } 384 | ], 385 | "image": "postgres:latest", 386 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/postgres.png", 387 | "platform": "linux", 388 | "ports": [ 389 | "5432/tcp" 390 | ], 391 | "title": "PostgreSQL", 392 | "type": 1, 393 | "volumes": [ 394 | { 395 | "container": "/var/lib/postgresql/data" 396 | } 397 | ] 398 | }, 399 | { 400 | "categories": [ 401 | "serverless" 402 | ], 403 | "description": "Serverless functions made simple", 404 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/openfaas.png", 405 | "name": "func", 406 | "note": "Deploys the API gateway and sample functions. You can access the UI on port 8080. Warning: the name of the stack must be 'func'.", 407 | "platform": "linux", 408 | "repository": { 409 | "stackfile": "docker-compose.yml", 410 | "url": "https://github.com/openfaas/faas" 411 | }, 412 | "title": "OpenFaaS", 413 | "type": 2 414 | }, 415 | { 416 | "categories": [ 417 | "database" 418 | ], 419 | "description": "Open-source in-memory data structure store", 420 | "image": "redis:latest", 421 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/redis.png", 422 | "platform": "linux", 423 | "ports": [ 424 | "6379/tcp" 425 | ], 426 | "title": "Redis", 427 | "type": 1, 428 | "volumes": [ 429 | { 430 | "container": "/data" 431 | } 432 | ] 433 | }, 434 | { 435 | "categories": [ 436 | "search-engine" 437 | ], 438 | "description": "Open-source enterprise search platform", 439 | "image": "solr:latest", 440 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/solr.png", 441 | "platform": "linux", 442 | "ports": [ 443 | "8983/tcp" 444 | ], 445 | "title": "Solr", 446 | "type": 1, 447 | "volumes": [ 448 | { 449 | "container": "/opt/solr/mydata" 450 | } 451 | ] 452 | }, 453 | { 454 | "categories": [ 455 | "database" 456 | ], 457 | "description": "Microsoft SQL Server on Linux", 458 | "env": [ 459 | { 460 | "name": "ACCEPT_EULA", 461 | "set": "Y" 462 | }, 463 | { 464 | "label": "SA password", 465 | "name": "SA_PASSWORD" 466 | } 467 | ], 468 | "image": "microsoft/mssql-server-linux:2017-GA", 469 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/microsoft.png", 470 | "note": "Password needs to include at least 8 characters including uppercase, lowercase letters, base-10 digits and/or non-alphanumeric symbols.", 471 | "platform": "linux", 472 | "ports": [ 473 | "1433/tcp" 474 | ], 475 | "title": "SQL Server", 476 | "type": 1 477 | }, 478 | { 479 | "categories": [ 480 | "CMS" 481 | ], 482 | "description": "Wordpress setup with a MySQL database", 483 | "env": [ 484 | { 485 | "description": "Password used by the MySQL root user.", 486 | "label": "Database root password", 487 | "name": "MYSQL_DATABASE_PASSWORD" 488 | } 489 | ], 490 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/wordpress.png", 491 | "note": "Deploys a Wordpress instance connected to a MySQL database.", 492 | "platform": "linux", 493 | "repository": { 494 | "stackfile": "stacks/wordpress/docker-stack.yml", 495 | "url": "https://github.com/mikestraney/portainer-templates" 496 | }, 497 | "title": "Wordpress", 498 | "type": 3 499 | }, 500 | { 501 | "categories": [ 502 | "CMS" 503 | ], 504 | "description": "Wordpress setup with a MySQL database", 505 | "env": [ 506 | { 507 | "description": "Password used by the MySQL root user.", 508 | "label": "Database root password", 509 | "name": "MYSQL_DATABASE_PASSWORD" 510 | } 511 | ], 512 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/wordpress.png", 513 | "note": "Deploys a Wordpress instance connected to a MySQL database.", 514 | "platform": "linux", 515 | "repository": { 516 | "stackfile": "stacks/wordpress/docker-stack.yml", 517 | "url": "https://github.com/mikestraney/portainer-templates" 518 | }, 519 | "title": "Wordpress", 520 | "type": 3 521 | }, 522 | { 523 | "description": "Wordpress setup with a MySQL database", 524 | "note": "Deploys a Wordpress instance connected to a MySQL database.", 525 | "stackfile": "https://raw.githubusercontent.com/mikestraney/portainer-templates/master/stacks/wordpress/edge/docker-stack.yml", 526 | "title": "Wordpress", 527 | "type": 4 528 | }, 529 | { 530 | "categories": [ 531 | "CMS" 532 | ], 533 | "description": "WebOps platform and hosting control panel", 534 | "image": "plesk/plesk:latest", 535 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/plesk.png", 536 | "note": "Default credentials: admin / changeme", 537 | "platform": "linux", 538 | "ports": [ 539 | "21/tcp", 540 | "80/tcp", 541 | "443/tcp", 542 | "8880/tcp", 543 | "8443/tcp", 544 | "8447/tcp" 545 | ], 546 | "title": "Plesk", 547 | "type": 1 548 | }, 549 | { 550 | "categories": [ 551 | "Other", 552 | "Downloaders" 553 | ], 554 | "description": "YoutubeDL-Material is a Material Design frontend for youtube-dl. It's coded using Angular 9 for the frontend, and Node.js on the backend.", 555 | "image": "tzahi12345/youtubedl-material:latest", 556 | "logo": "https://raw.githubusercontent.com/Qballjos/portainer_templates/master/Images/ytdlm.png", 557 | "name": "youtubedl-material", 558 | "platform": "linux", 559 | "ports": [ 560 | "17442:17442/tcp" 561 | ], 562 | "restart_policy": "unless-stopped", 563 | "title": "YouTubeDL-Material", 564 | "type": 1, 565 | "volumes": [ 566 | { 567 | "bind": "/portainer/Files/AppData/Config/YTDLM", 568 | "container": "/app/appdata" 569 | }, 570 | { 571 | "bind": "/portainer/Files/AppData/Youtube/Video", 572 | "container": "/app/video" 573 | }, 574 | { 575 | "bind": "/portainer/Files/AppData/Youtube/Subscriptions", 576 | "container": "/app/subscriptions" 577 | }, 578 | { 579 | "bind": "/portainer/Files/AppData/Youtube/Users", 580 | "container": "/app/users" 581 | }, 582 | { 583 | "bind": "/portainer/Files/AppData/Youtube/Audio", 584 | "container": "/app/audio" 585 | } 586 | ] 587 | }, 588 | { 589 | "description": "[Mariadb](https://mariadb.org/) is one of the most popular database servers. Made by the original developers of MySQL.", 590 | "env": [ 591 | { 592 | "default": "1024", 593 | "description": "for GroupID", 594 | "label": "PUID", 595 | "name": "PUID" 596 | }, 597 | { 598 | "default": "100", 599 | "description": "for UserID", 600 | "label": "PGID", 601 | "name": "PGID" 602 | }, 603 | { 604 | "default": "ROOT_ACCESS_PASSWORD", 605 | "description": "Set this to root password for installation (minimum 4 characters).", 606 | "label": "MYSQL_ROOT_PASSWORD", 607 | "name": "MYSQL_ROOT_PASSWORD" 608 | }, 609 | { 610 | "default": "Europe/Amsterdam", 611 | "description": "Specify a timezone to use for example Europe/Amsterdam", 612 | "label": "TZ", 613 | "name": "TZ" 614 | }, 615 | { 616 | "default": "USER_DB_NAME", 617 | "description": "Specify the name of a database to be created on image startup.", 618 | "label": "MYSQL_DATABASE", 619 | "name": "MYSQL_DATABASE" 620 | }, 621 | { 622 | "default": "MYSQL_USER", 623 | "description": "This user will have superuser access to the database specified by MYSQL_DATABASE (do not use root here).", 624 | "label": "MYSQL_USER", 625 | "name": "MYSQL_USER" 626 | }, 627 | { 628 | "default": "DATABASE_PASSWORD", 629 | "description": "Set this to the password you want to use for you MYSQL_USER (minimum 4 characters).", 630 | "label": "MYSQL_PASSWORD", 631 | "name": "MYSQL_PASSWORD" 632 | }, 633 | { 634 | "default": "http://URL1/your.sql,https://URL2/your.sql", 635 | "description": "Set this to ingest sql files from an http/https endpoint (comma seperated array).", 636 | "label": "REMOTE_SQL", 637 | "name": "REMOTE_SQL" 638 | } 639 | ], 640 | "image": "linuxserver/mariadb:latest", 641 | "logo": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/mariadb-git.png", 642 | "name": "Mariadb", 643 | "note": "Portainer App Templates by Technorabilia based on data provided by LinuxServer.io.Don't forget to create the volume directories on the host file system.
mkdir -p /volume1/docker/mariadb/config
", 644 | "platform": "linux", 645 | "ports": [ 646 | "3306:3306/tcp" 647 | ], 648 | "restart_policy": "unless-stopped", 649 | "title": "Mariadb", 650 | "type": 1, 651 | "volumes": [ 652 | { 653 | "bind": "/volume1/docker/mariadb/config", 654 | "container": "/config" 655 | } 656 | ] 657 | }, 658 | { 659 | "description": "[Nextcloud](https://nextcloud.com/) gives you access to all your files wherever you are. Where are your photos and documents? With Nextcloud you pick a server of your choice, at home, in a data center or at a provider. And that is where your files will be. Nextcloud runs on that server, protecting your data and giving you access from your desktop or mobile devices. Through Nextcloud you also access, sync and share your existing data on that FTP drive at the office, a Dropbox or a NAS you have at home.", 660 | "env": [ 661 | { 662 | "default": "1024", 663 | "description": "for GroupID", 664 | "label": "PUID", 665 | "name": "PUID" 666 | }, 667 | { 668 | "default": "100", 669 | "description": "for UserID", 670 | "label": "PGID", 671 | "name": "PGID" 672 | }, 673 | { 674 | "default": "Europe/Amsterdam", 675 | "description": "Specify a timezone to use for example Europe/Amsterdam", 676 | "label": "TZ", 677 | "name": "TZ" 678 | } 679 | ], 680 | "image": "linuxserver/nextcloud:latest", 681 | "logo": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/nextcloud-icon.png", 682 | "name": "Nextcloud", 683 | "note": "Portainer App Templates by Technorabilia based on data provided by LinuxServer.io.Don't forget to create the volume directories on the host file system.
mkdir -p /volume1/docker/nextcloud/config
mkdir -p /volume1/docker/nextcloud/data
Don't forget to create the volume directories on the host file system.
mkdir -p /volume1/docker/nginx/config
", 728 | "platform": "linux", 729 | "ports": [ 730 | "80:80/tcp", 731 | "443:443/tcp" 732 | ], 733 | "restart_policy": "unless-stopped", 734 | "title": "Nginx", 735 | "type": 1, 736 | "volumes": [ 737 | { 738 | "bind": "/volume1/docker/nginx/config", 739 | "container": "/config" 740 | } 741 | ] 742 | }, 743 | { 744 | "categories": [ 745 | "webserver" 746 | ], 747 | "description": "Open-source HTTP server", 748 | "image": "httpd:latest", 749 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/httpd.png", 750 | "platform": "linux", 751 | "ports": [ 752 | "80/tcp" 753 | ], 754 | "title": "Httpd", 755 | "type": 1, 756 | "volumes": [ 757 | { 758 | "container": "/usr/local/apache2/htdocs/" 759 | } 760 | ] 761 | }, 762 | { 763 | "description": "[Syncthing](https://syncthing.net) replaces proprietary sync and cloud services with something open, trustworthy and decentralized. Your data is your data alone and you deserve to choose where it is stored, if it is shared with some third party and how it's transmitted over the Internet.", 764 | "env": [ 765 | { 766 | "default": "1024", 767 | "description": "for GroupID", 768 | "label": "PUID", 769 | "name": "PUID" 770 | }, 771 | { 772 | "default": "100", 773 | "description": "for UserID", 774 | "label": "PGID", 775 | "name": "PGID" 776 | }, 777 | { 778 | "default": "Europe/Amsterdam", 779 | "description": "Specify a timezone to use for example Europe/Amsterdam", 780 | "label": "TZ", 781 | "name": "TZ" 782 | } 783 | ], 784 | "image": "linuxserver/syncthing:latest", 785 | "logo": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/syncthing-banner.png", 786 | "name": "Syncthing", 787 | "note": "Portainer App Templates by Technorabilia based on data provided by LinuxServer.io.Don't forget to create the volume directories on the host file system.
mkdir -p /volume1/docker/syncthing/config
mkdir -p /volume1/docker/syncthing/data1
mkdir -p /volume1/docker/syncthing/data2
Don't forget to create the volume directories on the host file system.
mkdir -p /volume1/docker/webtop/config
Don't forget to create the volume directories on the host file system.
mkdir -p /volume1/docker/wireshark/config
", 894 | "platform": "linux", 895 | "ports": [ 896 | "3000:3000/tcp" 897 | ], 898 | "restart_policy": "unless-stopped", 899 | "title": "Wireshark", 900 | "type": 1, 901 | "volumes": [ 902 | { 903 | "bind": "/volume1/docker/wireshark/config", 904 | "container": "/config" 905 | } 906 | ] 907 | }, 908 | { 909 | "category": [ 910 | "Other" 911 | ], 912 | "description": "OpenVPN Access Server is a full featured secure network tunneling VPN software solution that integrates OpenVPN server capabilities, enterprise management capabilities, simplified OpenVPN Connect UI, and OpenVPN Client software packages that accommodate Windows, MAC, Linux, Android, and iOS environments.", 913 | "env": [ 914 | { 915 | "label": "INTERFACE", 916 | "name": "INTERFACE", 917 | "set": "eth0" 918 | }, 919 | { 920 | "label": "PGID", 921 | "name": "PGID", 922 | "set": "1000" 923 | }, 924 | { 925 | "label": "PUID", 926 | "name": "PUID", 927 | "set": "1000" 928 | }, 929 | { 930 | "label": "TZ", 931 | "name": "TZ", 932 | "set": "America/Chicago" 933 | } 934 | ], 935 | "image": "linuxserver/openvpn-as:latest", 936 | "logo": "https://raw.githubusercontent.com/thesugarat/portainer_templates-1/master/Images/openvpn-as-icon.png", 937 | "platform": "linux", 938 | "ports": [ 939 | "943/tcp", 940 | "9443/tcp", 941 | "1194/udp" 942 | ], 943 | "title": "openvpn-as", 944 | "type": 1, 945 | "volumes": [ 946 | { 947 | "container": "/config" 948 | } 949 | ] 950 | }, 951 | { 952 | "description": "[Openvscode-server](https://github.com/gitpod-io/openvscode-server) provides a version of VS Code that runs a server on a remote machine and allows access through a modern web browser.", 953 | "env": [ 954 | { 955 | "default": "1024", 956 | "description": "for GroupID", 957 | "label": "PUID", 958 | "name": "PUID" 959 | }, 960 | { 961 | "default": "100", 962 | "description": "for UserID", 963 | "label": "PGID", 964 | "name": "PGID" 965 | }, 966 | { 967 | "default": "Europe/Amsterdam", 968 | "description": "Specify a timezone to use for example Europe/Amsterdam", 969 | "label": "TZ", 970 | "name": "TZ" 971 | }, 972 | { 973 | "default": "supersecrettoken", 974 | "description": "Optional security token for accessing the Web UI.", 975 | "label": "CONNECTION_TOKEN", 976 | "name": "CONNECTION_TOKEN" 977 | }, 978 | { 979 | "default": "", 980 | "description": "Optional path to a file inside the container that contains the security token for accessing the Web UI (ie. `/path/to/file`). Overrides `CONNECTION_TOKEN`.", 981 | "label": "CONNECTION_SECRET", 982 | "name": "CONNECTION_SECRET" 983 | }, 984 | { 985 | "default": "password", 986 | "description": "If this optional variable is set, user will have sudo access in the openvscode-server terminal with the specified password.", 987 | "label": "SUDO_PASSWORD", 988 | "name": "SUDO_PASSWORD" 989 | }, 990 | { 991 | "default": "", 992 | "description": "Optionally set sudo password via hash (takes priority over `SUDO_PASSWORD` var). Format is `$type$salt$hashed`.", 993 | "label": "SUDO_PASSWORD_HASH", 994 | "name": "SUDO_PASSWORD_HASH" 995 | } 996 | ], 997 | "image": "linuxserver/openvscode-server:latest", 998 | "logo": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/openvscode-server-logo.png", 999 | "name": "Openvscode-server", 1000 | "note": "Portainer App Templates by Technorabilia based on data provided by LinuxServer.io.Don't forget to create the volume directories on the host file system.
mkdir -p /volume1/docker/openvscode-server/config
", 1001 | "platform": "linux", 1002 | "ports": [ 1003 | "3000:3000/tcp" 1004 | ], 1005 | "restart_policy": "unless-stopped", 1006 | "title": "Openvscode-server", 1007 | "type": 1, 1008 | "volumes": [ 1009 | { 1010 | "bind": "/volume1/docker/openvscode-server/config", 1011 | "container": "/config" 1012 | } 1013 | ] 1014 | }, 1015 | { 1016 | "categories": [ 1017 | "Other", 1018 | "Tools" 1019 | ], 1020 | "description": "A dead simple static HOMepage for your servER to keep your s ervices on hand, from a simple yaml configuration file.", 1021 | "image": "b4bz/homer:latest", 1022 | "logo": "https://raw.githubusercontent.com/Qballjos/portainer_templates/master/Images/homer.png", 1023 | "name": "homer", 1024 | "note": "This container requires a yml file within the config volume. See the documentation here https://github.com/bastienwirtz/homer", 1025 | "platform": "linux", 1026 | "ports": [ 1027 | "8902:8080/tcp" 1028 | ], 1029 | "restart_policy": "unless-stopped", 1030 | "title": "Homer", 1031 | "type": 1, 1032 | "volumes": [ 1033 | { 1034 | "bind": "/portainer/Files/AppData/Config/Homer/assets", 1035 | "container": "/www/assets" 1036 | }, 1037 | { 1038 | "bind": "/portainer/Files/AppData/Config/Homer", 1039 | "container": "/www/config.yml" 1040 | } 1041 | ] 1042 | }, 1043 | { 1044 | "categories": [ 1045 | "continuous-integration" 1046 | ], 1047 | "description": "Open-source continuous integration tool", 1048 | "env": [ 1049 | { 1050 | "label": "Jenkins options", 1051 | "name": "JENKINS_OPTS" 1052 | } 1053 | ], 1054 | "image": "jenkins/jenkins:lts", 1055 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/jenkins.png", 1056 | "platform": "linux", 1057 | "ports": [ 1058 | "8080/tcp", 1059 | "50000/tcp" 1060 | ], 1061 | "title": "Jenkins", 1062 | "type": 1, 1063 | "volumes": [ 1064 | { 1065 | "container": "/var/jenkins_home" 1066 | } 1067 | ] 1068 | }, 1069 | { 1070 | "categories": [ 1071 | "marketing" 1072 | ], 1073 | "description": "Open-source marketing automation platform", 1074 | "env": [ 1075 | { 1076 | "label": "MySQL database host", 1077 | "name": "MAUTIC_DB_HOST", 1078 | "type": "container" 1079 | }, 1080 | { 1081 | "label": "Database password", 1082 | "name": "MAUTIC_DB_PASSWORD" 1083 | } 1084 | ], 1085 | "image": "mautic/mautic:latest", 1086 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/mautic.png", 1087 | "platform": "linux", 1088 | "ports": [ 1089 | "80/tcp" 1090 | ], 1091 | "title": "Mautic", 1092 | "type": 1, 1093 | "volumes": [ 1094 | { 1095 | "container": "/var/www/html" 1096 | } 1097 | ] 1098 | }, 1099 | { 1100 | "categories": [ 1101 | "storage" 1102 | ], 1103 | "description": "Standalone AWS S3 protocol server", 1104 | "env": [ 1105 | { 1106 | "label": "Scality S3 access key", 1107 | "name": "SCALITY_ACCESS_KEY" 1108 | }, 1109 | { 1110 | "label": "Scality S3 secret key", 1111 | "name": "SCALITY_SECRET_KEY" 1112 | } 1113 | ], 1114 | "image": "scality/s3server", 1115 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/scality-s3.png", 1116 | "platform": "linux", 1117 | "ports": [ 1118 | "8000/tcp" 1119 | ], 1120 | "title": "Scality S3", 1121 | "type": 1, 1122 | "volumes": [ 1123 | { 1124 | "container": "/usr/src/app/localData" 1125 | }, 1126 | { 1127 | "container": "/usr/src/app/localMetadata" 1128 | } 1129 | ] 1130 | }, 1131 | { 1132 | "categories": [ 1133 | "Other", 1134 | "Music" 1135 | ], 1136 | "description": "Deemix is a deezer downloader built from the ashes of Deezloader Remix.", 1137 | "image": "registry.gitlab.com/bockiii/deemix-docker", 1138 | "logo": "https://raw.githubusercontent.com/mikestraney/portainer-templates/master/Images/deemix.png", 1139 | "name": "deemix", 1140 | "note": "Deemix may take a few minutes to install. Be sure to check the logs for details. Refer to \u003ca href='https://notabug.org/RemixDevs/DeezloaderRemix/wiki/Login+via+userToken'\u003ethis page\u003c/a\u003e for userToken details.", 1141 | "platform": "linux", 1142 | "ports": [ 1143 | "9666:9666/tcp" 1144 | ], 1145 | "restart_policy": "unless-stopped", 1146 | "title": "DeeMix", 1147 | "type": 1, 1148 | "volumes": [ 1149 | { 1150 | "bind": "/portainer/Files/AppData/Config/DeeMix", 1151 | "container": "/config" 1152 | }, 1153 | { 1154 | "bind": "/portainer/Downloads", 1155 | "container": "/downloads" 1156 | } 1157 | ] 1158 | }, 1159 | { 1160 | "type": 1, 1161 | "title": "Mongo", 1162 | "description": "Open-source document-oriented database", 1163 | "categories": [ 1164 | "database" 1165 | ], 1166 | "platform": "linux", 1167 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/mongo.png", 1168 | "image": "mongo:latest", 1169 | "ports": [ 1170 | "27017/tcp" 1171 | ], 1172 | "volumes": [ 1173 | { 1174 | "container": "/data/db" 1175 | } 1176 | ] 1177 | }, 1178 | { 1179 | "type": 1, 1180 | "title": "MySQL", 1181 | "description": "The most popular open-source database", 1182 | "categories": [ 1183 | "database" 1184 | ], 1185 | "platform": "linux", 1186 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/mysql.png", 1187 | "image": "mysql:latest", 1188 | "env": [ 1189 | { 1190 | "name": "MYSQL_ROOT_PASSWORD", 1191 | "label": "Root password" 1192 | } 1193 | ], 1194 | "ports": [ 1195 | "3306/tcp" 1196 | ], 1197 | "volumes": [ 1198 | { 1199 | "container": "/var/lib/mysql" 1200 | } 1201 | ] 1202 | }, 1203 | { 1204 | "type": 1, 1205 | "title": "Odoo", 1206 | "description": "Open-source business apps", 1207 | "categories": [ 1208 | "project-management" 1209 | ], 1210 | "platform": "linux", 1211 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/odoo.png", 1212 | "image": "odoo:latest", 1213 | "env": [ 1214 | { 1215 | "name": "HOST", 1216 | "label": "PostgreSQL database host", 1217 | "type": "container" 1218 | }, 1219 | { 1220 | "name": "USER", 1221 | "label": "Database user" 1222 | }, 1223 | { 1224 | "name": "PASSWORD", 1225 | "label": "Database password" 1226 | } 1227 | ], 1228 | "ports": [ 1229 | "8069/tcp" 1230 | ], 1231 | "volumes": [ 1232 | { 1233 | "container": "/var/lib/odoo" 1234 | }, 1235 | { 1236 | "container": "/mnt/extra-addons" 1237 | } 1238 | ] 1239 | }, 1240 | { 1241 | "categories": [ 1242 | "Other", 1243 | "Tools" 1244 | ], 1245 | "description": "A Linux network-level advertisement and Internet tracker blocking application which acts as a DNS sinkhole.", 1246 | "image": "pihole/pihole:latest", 1247 | "logo": "https://raw.githubusercontent.com/mikestraney/portainer-templates/master/Images/pihole.png", 1248 | "name": "pihole", 1249 | "note": "When the installation is complete, navigate to your.ip.goes.here:1010/admin. Follow the article \u003ca href='https://medium.com/@niktrix/getting-rid-of-systemd-resolved-consuming-port-53-605f0234f32f'\u003ehere\u003c/a\u003e if you run into issues binding to port 53.", 1250 | "platform": "linux", 1251 | "ports": [ 1252 | "53:53/tcp", 1253 | "53:53/udp", 1254 | "67:67/udp", 1255 | "1010:80/tcp", 1256 | "4443:443/tcp" 1257 | ], 1258 | "restart_policy": "unless-stopped", 1259 | "title": "Pi-Hole", 1260 | "type": 1, 1261 | "volumes": [ 1262 | { 1263 | "bind": "/portainer/Files/AppData/Config/PiHole", 1264 | "container": "/etc/pihole" 1265 | }, 1266 | { 1267 | "bind": "/portainer/Files/AppData/Config/PiHole/DNS", 1268 | "container": "/etc/dnsmasq.d" 1269 | } 1270 | ] 1271 | }, 1272 | { 1273 | "type": 1, 1274 | "title": "RabbitMQ", 1275 | "description": "Highly reliable enterprise messaging system", 1276 | "categories": [ 1277 | "messaging" 1278 | ], 1279 | "platform": "linux", 1280 | "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/rabbitmq.png", 1281 | "image": "rabbitmq:latest", 1282 | "ports": [ 1283 | "5671/tcp", 1284 | "5672/tcp" 1285 | ], 1286 | "volumes": [ 1287 | { 1288 | "container": "/var/lib/rabbitmq" 1289 | } 1290 | ] 1291 | }, 1292 | { 1293 | "categories": [ 1294 | "Other", 1295 | "Tools" 1296 | ], 1297 | "description": "A web interface for managing docker containers with an emphasis on templating to provide 1 click deployments. Think of it like a decentralized app store for servers that anyone can make packages for.", 1298 | "image": "selfhostedpro/yacht:latest", 1299 | "logo": "https://raw.githubusercontent.com/SelfhostedPro/Yacht/master/readme_media/Yacht_logo_1_dark.png", 1300 | "name": "yacht", 1301 | "platform": "linux", 1302 | "ports": [ 1303 | "8001:8000/tcp" 1304 | ], 1305 | "restart_policy": "unless-stopped", 1306 | "title": "Yacht", 1307 | "type": 1, 1308 | "volumes": [ 1309 | { 1310 | "bind": "yacht", 1311 | "container": "/config" 1312 | }, 1313 | { 1314 | "bind": "/var/run/docker.sock", 1315 | "container": "/var/run/docker.sock" 1316 | } 1317 | ] 1318 | }, 1319 | { 1320 | "categories": [ 1321 | "backend", 1322 | "lowcode" 1323 | ], 1324 | "description": "Supabase is an open source Firebase alternative.It provides all the backend services you need to build a product. You can use it completely, or just the services you require:", 1325 | "env": [ 1326 | { 1327 | "description": "Password used by the MySQL root user.", 1328 | "label": "Database root password", 1329 | "name": "POSTGRES_PASSWORD", 1330 | "default": "your-super-secret-and-long-postgres-password" 1331 | }, 1332 | { 1333 | "description": "Password used by the MySQL root user.", 1334 | "label": "Database root password", 1335 | "name": "JWT_SECRET", 1336 | "default": "your-super-secret-jwt-token-with-at-least-32-characters-long" 1337 | }, 1338 | { 1339 | "description": "Password used by the MySQL root user.", 1340 | "label": "Database root password", 1341 | "name": "ANON_KEY", 1342 | "default": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyAgCiAgICAicm9sZSI6ICJhbm9uIiwKICAgICJpc3MiOiAic3VwYWJhc2UtZGVtbyIsCiAgICAiaWF0IjogMTY0MTc2OTIwMCwKICAgICJleHAiOiAxNzk5NTM1NjAwCn0.dc_X5iR_VP_qT0zsiyj_I_OZ2T9FtRU2BBNWN8Bu4GE" 1343 | }, 1344 | { 1345 | "description": "Password used by the MySQL root user.", 1346 | "label": "Database root password", 1347 | "name": "SERVICE_ROLE_KEY", 1348 | "default": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyAgCiAgICAicm9sZSI6ICJzZXJ2aWNlX3JvbGUiLAogICAgImlzcyI6ICJzdXBhYmFzZS1kZW1vIiwKICAgICJpYXQiOiAxNjQxNzY5MjAwLAogICAgImV4cCI6IDE3OTk1MzU2MDAKfQ.DaYlNEoUrrEn2Ig7tqibS-PHK5vgusbcbo7X36XVt4Q" 1349 | }, 1350 | { 1351 | "description": "Password used by the MySQL root user.", 1352 | "label": "Database root password", 1353 | "name": "POSTGRES_HOST", 1354 | "default": "db" 1355 | }, 1356 | { 1357 | "description": "Password used by the MySQL root user.", 1358 | "label": "Database root password", 1359 | "name": "POSTGRES_DB", 1360 | "default": "postgres" 1361 | }, 1362 | { 1363 | "description": "Password used by the MySQL root user.", 1364 | "label": "Database root password", 1365 | "name": "POSTGRES_USER", 1366 | "default": "postgres" 1367 | }, 1368 | { 1369 | "description": "Password used by the MySQL root user.", 1370 | "label": "Database root password", 1371 | "name": "POSTGRES_PORT", 1372 | "default": "5432" 1373 | }, 1374 | { 1375 | "description": "Password used by the MySQL root user.", 1376 | "label": "Database root password", 1377 | "name": "KONG_HTTP_PORT", 1378 | "default": "8000" 1379 | }, 1380 | { 1381 | "description": "Password used by the MySQL root user.", 1382 | "label": "Database root password", 1383 | "name": "KONG_HTTPS_PORT", 1384 | "default": "8443" 1385 | }, 1386 | { 1387 | "description": "Password used by the MySQL root user.", 1388 | "label": "Database root password", 1389 | "name": "PGRST_DB_SCHEMAS", 1390 | "default": "public,storage,graphql_public" 1391 | }, 1392 | { 1393 | "description": "Password used by the MySQL root user.", 1394 | "label": "Database root password", 1395 | "name": "SITE_URL", 1396 | "default": "http://localhost:3000" 1397 | }, 1398 | { 1399 | "description": "Password used by the MySQL root user.", 1400 | "label": "Database root password", 1401 | "name": "ADDITIONAL_REDIRECT_URLS", 1402 | "default": "" 1403 | }, 1404 | { 1405 | "description": "Password used by the MySQL root user.", 1406 | "label": "Database root password", 1407 | "name": "JWT_EXPIRY", 1408 | "default": "3600" 1409 | }, 1410 | { 1411 | "description": "Password used by the MySQL root user.", 1412 | "label": "Database root password", 1413 | "name": "DISABLE_SIGNUP", 1414 | "default": "false" 1415 | }, 1416 | { 1417 | "description": "Password used by the MySQL root user.", 1418 | "label": "Database root password", 1419 | "name": "ENABLE_EMAIL_SIGNUP", 1420 | "default": "true" 1421 | }, 1422 | { 1423 | "description": "Password used by the MySQL root user.", 1424 | "label": "Database root password", 1425 | "name": "ENABLE_EMAIL_AUTOCONFIRM", 1426 | "default": "true" 1427 | }, 1428 | { 1429 | "description": "Password used by the MySQL root user.", 1430 | "label": "Database root password", 1431 | "name": "SMTP_ADMIN_EMAIL", 1432 | "default": "admin@example.com" 1433 | }, 1434 | { 1435 | "description": "Password used by the MySQL root user.", 1436 | "label": "Database root password", 1437 | "name": "SMTP_HOST", 1438 | "default": "fake" 1439 | }, 1440 | { 1441 | "description": "Password used by the MySQL root user.", 1442 | "label": "Database root password", 1443 | "name": "SMTP_PORT", 1444 | "default": "fake" 1445 | }, 1446 | { 1447 | "description": "Password used by the MySQL root user.", 1448 | "label": "Database root password", 1449 | "name": "SMTP_USER", 1450 | "default": "fake" 1451 | }, 1452 | { 1453 | "description": "Password used by the MySQL root user.", 1454 | "label": "Database root password", 1455 | "name": "SMTP_PASS", 1456 | "default": "fake" 1457 | }, 1458 | { 1459 | "description": "Password used by the MySQL root user.", 1460 | "label": "Database root password", 1461 | "name": "SMTP_SENDER_NAME", 1462 | "default": "fake" 1463 | }, 1464 | { 1465 | "description": "Password used by the MySQL root user.", 1466 | "label": "Database root password", 1467 | "name": "ENABLE_PHONE_SIGNUP", 1468 | "default": "true" 1469 | }, 1470 | { 1471 | "description": "Password used by the MySQL root user.", 1472 | "label": "Database root password", 1473 | "name": "ENABLE_PHONE_AUTOCONFIRM", 1474 | "default": "true" 1475 | }, 1476 | { 1477 | "description": "Password used by the MySQL root user.", 1478 | "label": "Database root password", 1479 | "name": "STUDIO_PORT", 1480 | "default": "3000" 1481 | }, 1482 | { 1483 | "description": "Password used by the MySQL root user.", 1484 | "label": "Database root password", 1485 | "name": "PUBLIC_REST_URL", 1486 | "default": "http://localhost:8000/rest/v1/" 1487 | } 1488 | ], 1489 | "logo": "https://supabase.com/docs/supabase-dark.svg", 1490 | "note": "Deploys a Wordpress instance connected to a MySQL database.", 1491 | "platform": "linux", 1492 | "repository": { 1493 | "stackfile": "supabase/docker-compose.yml", 1494 | "url": "https://github.com/mehdi-yc/goodcontainers" 1495 | }, 1496 | "title": "Supabase", 1497 | "type": 3 1498 | }, 1499 | 1500 | 1501 | 1502 | 1503 | 1504 | 1505 | { 1506 | "type": 1, 1507 | "title": "Rdesktop", 1508 | "name": "Rdesktop", 1509 | "note": "Portainer App Templates by Technorabilia based on data provided by LinuxServer.io.Don't forget to create the volume directories on the host file system.
mkdir -p /volume1/docker/rdesktop/config