Added formatter

This commit is contained in:
Kasra Bigdeli 2020-06-23 18:57:05 -04:00
parent f431362499
commit b0dd2e829f
84 changed files with 2422 additions and 2549 deletions

8
.prettierrc Normal file
View File

@ -0,0 +1,8 @@
{
"trailingComma": "es5",
"tabWidth": 4,
"semi": false,
"arrowParens": "always",
"bracketSpacing": true,
"singleQuote": true
}

5
package-lock.json generated
View File

@ -349,6 +349,11 @@
"resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
"integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw="
},
"prettier": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.0.5.tgz",
"integrity": "sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg=="
},
"query-string": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz",

View File

@ -3,6 +3,8 @@
"version": "1.0.0",
"description": "One Click App Repository for CapRover",
"scripts": {
"formatter": "prettier --check './public/**/*.json'",
"formatter-write": "prettier --write './public/**/*.json'",
"build": "rm -rf ./dist/ && mkdir -p dist && node ./scripts/build_one_click_apps.js",
"validate_json": "node ./scripts/validate_json.js",
"publish": "npm run build && ./scripts/publish-from-actions.sh"
@ -19,6 +21,7 @@
"homepage": "https://github.com/caprover/one-click-apps",
"dependencies": {
"fs-extra": "^9.0.1",
"gh-pages": "^3.1.0"
"gh-pages": "^3.1.0",
"prettier": "^2.0.5"
}
}

View File

@ -21,7 +21,8 @@
"start": "Adminer (formerly phpMinAdmin) is a full-featured database management tool written in PHP. Conversely to phpMyAdmin, it consist of a single file ready to deploy to the target server. Adminer is available for MySQL, PostgreSQL, SQLite, MS SQL, Oracle, Firebird, SimpleDB, Elasticsearch and MongoDB. \n\n For more details, see: https://github.com/vrana/adminer\n\n Enter your Adminer Configuration parameters and click on next. It will take about a minute for the process to finish.",
"end": "Adminer is deployed and available as $$cap_appname"
},
"variables": [{
"variables": [
{
"id": "$$cap_adminer_version",
"label": "Adminer Version Tag",
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/library/adminer/tags/",
@ -41,5 +42,4 @@
"validRegex": "/^([a-zA-Z0-9-.\\s])*$/"
}
]
}

View File

@ -24,7 +24,8 @@
"start": "ArangoDB is a multi-model, open-source database with flexible data models for documents, graphs, and key-values. Build high performance applications using a convenient SQL-like query language or JavaScript extensions. Use ACID transactions if you require them. Scale horizontally and vertically with a few mouse clicks.",
"end": "ArangoDB is deployed and available as srv-captain--$$cap_appname-db:8529 to other apps."
},
"variables": [{
"variables": [
{
"id": "$$cap_arango_version",
"label": "ArangoDB Version",
"defaultValue": "3.4",

View File

@ -9,9 +9,7 @@
"$$cap_appname": {
"image": "bitwardenrs/server:$$cap_bitwardenrs_version",
"containerHttpPort": "80",
"volumes": [
"$$cap_appname-data:/data"
],
"volumes": ["$$cap_appname-data:/data"],
"restart": "always"
}
}
@ -20,7 +18,8 @@
"start": "This is a Bitwarden server API implementation written in Rust compatible with upstream Bitwarden clients, perfect for self-hosted deployment where running the official resource-heavy service might not be ideal.",
"end": "Bitwarden_rs is deployed and available as $$cap_appname. Please give it a few minutes to boot, otherwise you will see a 502 error.\nPlease activate https and https redirect otherwise you will have error on account creation."
},
"variables": [{
"variables": [
{
"id": "$$cap_bitwardenrs_version",
"label": "Bitwarden_rs Version",
"defaultValue": "1.15.1",

View File

@ -10,13 +10,13 @@
"image": "postgres:11.6",
"notExposeAsWebApp": "true",
"volumes": [
"$$cap_appname-postgres-data:/var/lib/postgresql/data"
"$$cap_appname-postgres-data:/var/lib/postgresql/data"
],
"restart": "always",
"environment": {
"POSTGRES_USER": "chatwoot",
"POSTGRES_PASSWORD": "$$cap_chatwoot_postgres_password",
"POSTGRES_DB": "chatwoot"
"POSTGRES_USER": "chatwoot",
"POSTGRES_PASSWORD": "$$cap_chatwoot_postgres_password",
"POSTGRES_DB": "chatwoot"
}
},
"$$cap_appname-redis": {
@ -25,9 +25,7 @@
"CMD exec redis-server --requirepass \"$$cap_chatwoot_redis_password\""
],
"notExposeAsWebApp": "true",
"volumes": [
"$$cap_appname-redis-data:/data"
],
"volumes": ["$$cap_appname-redis-data:/data"],
"restart": "always",
"environment": {
"REDIS_PASSWORD": "$$cap_chatwoot_redis_password"
@ -96,16 +94,16 @@
"validRegex": "/^[^\\@]{26,}$/"
},
{
"id": "$$cap_chatwoot_postgres_password",
"label": "Postgres Password",
"description": "Password must be at least 12 characters. Please use a random string.",
"validRegex": "/^[^\\@]{12,}$/"
"id": "$$cap_chatwoot_postgres_password",
"label": "Postgres Password",
"description": "Password must be at least 12 characters. Please use a random string.",
"validRegex": "/^[^\\@]{12,}$/"
},
{
"id": "$$cap_chatwoot_redis_password",
"label": "Redis Password",
"description": "Password must be at least 12 characters. Please use a random string.",
"validRegex": "/^[^\\@]{12,}$/"
"id": "$$cap_chatwoot_redis_password",
"label": "Redis Password",
"description": "Password must be at least 12 characters. Please use a random string.",
"validRegex": "/^[^\\@]{12,}$/"
}
]
}
}

View File

@ -1,31 +1,29 @@
{
"captainVersion": "2",
"documentation": "Read the documentation @ https://github.com/agentejo/cockpit-docker",
"displayName": "Cockpit",
"description": "Cockpit is Simple Content Platform to manage any structured content. A self-hosted headless and api-driven CMS.",
"dockerCompose": {
"version": "3.7",
"services": {
"$$cap_appname": {
"image": "agentejo/cockpit:$$cap_cockpit_version",
"containerHttpPort": "80",
"volumes": [
"$$cap_appname-storage:/var/www/html/storage"
],
"restart": "always"
}
}
},
"instructions": {
"start": "Cockpit is Simple Content Platform to manage any structured content. A self-hosted headless and api-driven CMS.",
"end": "Cockpit is deployed and available as $$cap_appname. \n\n IMPORTANT: Navigate to /install to finish the installation and to create an admin user!"
},
"variables": [
{
"id": "$$cap_cockpit_version",
"label": "cockpit version tag",
"description": "Checkout their docker page for the valid tags @ https://hub.docker.com/r/agentejo/cockpit/tags",
"defaultValue": "0.9.3"
}
]
"captainVersion": "2",
"documentation": "Read the documentation @ https://github.com/agentejo/cockpit-docker",
"displayName": "Cockpit",
"description": "Cockpit is Simple Content Platform to manage any structured content. A self-hosted headless and api-driven CMS.",
"dockerCompose": {
"version": "3.7",
"services": {
"$$cap_appname": {
"image": "agentejo/cockpit:$$cap_cockpit_version",
"containerHttpPort": "80",
"volumes": ["$$cap_appname-storage:/var/www/html/storage"],
"restart": "always"
}
}
},
"instructions": {
"start": "Cockpit is Simple Content Platform to manage any structured content. A self-hosted headless and api-driven CMS.",
"end": "Cockpit is deployed and available as $$cap_appname. \n\n IMPORTANT: Navigate to /install to finish the installation and to create an admin user!"
},
"variables": [
{
"id": "$$cap_cockpit_version",
"label": "cockpit version tag",
"description": "Checkout their docker page for the valid tags @ https://hub.docker.com/r/agentejo/cockpit/tags",
"defaultValue": "0.9.3"
}
]
}

View File

@ -1,55 +1,56 @@
{
"captainVersion": "2",
"documentation": "Inspired by https://github.com/caprover/one-click-apps/pull/111 and from https://www.collaboraoffice.com/code/docker/",
"displayName": "Collabora Online",
"description": "Collabora Online is an online and collaborating office suite",
"dockerCompose": {
"version": "1",
"services": {
"$$cap_appname": {
"image": "collabora/code:$$cap_collabora_version",
"containerHttpPort": "9980",
"restart": "always",
"environment": {
"domain": "$$cap_wopihost_domain",
"cert_domain": "$$cap_appname.$$cap_root_domain",
"server_name": "$$cap_appname.$$cap_root_domain",
"extra_params": "--o:ssl.enable=false --o:ssl.termination=true",
"username": "$$cap_admin_user",
"password": "$$cap_admin_pass"
"captainVersion": "2",
"documentation": "Inspired by https://github.com/caprover/one-click-apps/pull/111 and from https://www.collaboraoffice.com/code/docker/",
"displayName": "Collabora Online",
"description": "Collabora Online is an online and collaborating office suite",
"dockerCompose": {
"version": "1",
"services": {
"$$cap_appname": {
"image": "collabora/code:$$cap_collabora_version",
"containerHttpPort": "9980",
"restart": "always",
"environment": {
"domain": "$$cap_wopihost_domain",
"cert_domain": "$$cap_appname.$$cap_root_domain",
"server_name": "$$cap_appname.$$cap_root_domain",
"extra_params": "--o:ssl.enable=false --o:ssl.termination=true",
"username": "$$cap_admin_user",
"password": "$$cap_admin_pass"
}
}
}
}
}
},
"instructions": {
"start": "Collabora CODE version is an online Office Suite. \nWhen you are using Nextcloud or ownCloud you can use it to enhance your online office document experience.\nThe install will take about a minute for the process to finish.",
"end": "Collabora is deployed and available as $$cap_appname.\n\nIMPORTANT: You need do 5 manual steps before access.\n\n 1 - enable websocket on HTTP settings tab\n\n 2 - add the \"proxy_read_timeout 36000s;\" instruction below \"proxy_http_version 1.1;\"\n\n3 - Enable and force HTTPS and wait few minutes.\n\n4 - add the Collabora Online extension for Nextcloud (3.7.0 for now)\n\n5 - go to your Nextcloud plugin configuration > collabora online > use your own server > paste the FQDN of your new instance of collabora > save\n\nThat's all, you can use collabora online to all your Nextcloud instance."
},
"variables": [{
"id": "$$cap_admin_user",
"label": "Admin user",
"description": "permit access to the web admin interface",
"defaultValue": "adminuser",
"validRegex": "/^([a-zA-Z0-9])+$/"
},
{
"id": "$$cap_admin_pass",
"label": "Admin password",
"description": "admin password",
"validRegex": "/.{1,}/"
},
{
"id": "$$cap_collabora_version",
"label": "Collabora CODE Version",
"defaultValue": "4.2.4.4",
"description": "Checkout their docker page for the valid tags https://hub.docker.com/r/collabora/code/tags/",
"validRegex": "/^([^\\s^\\/])+$/"
"instructions": {
"start": "Collabora CODE version is an online Office Suite. \nWhen you are using Nextcloud or ownCloud you can use it to enhance your online office document experience.\nThe install will take about a minute for the process to finish.",
"end": "Collabora is deployed and available as $$cap_appname.\n\nIMPORTANT: You need do 5 manual steps before access.\n\n 1 - enable websocket on HTTP settings tab\n\n 2 - add the \"proxy_read_timeout 36000s;\" instruction below \"proxy_http_version 1.1;\"\n\n3 - Enable and force HTTPS and wait few minutes.\n\n4 - add the Collabora Online extension for Nextcloud (3.7.0 for now)\n\n5 - go to your Nextcloud plugin configuration > collabora online > use your own server > paste the FQDN of your new instance of collabora > save\n\nThat's all, you can use collabora online to all your Nextcloud instance."
},
{
"id": "$$cap_wopihost_domain",
"label": "WOPI host domain - yournextcloud.your.rootdomain.com",
"description": "Your Nextcloud host domain.\nCaution ! you must add a backslash before each dot of the url",
"validRegex": "/^([^\\s^\\/])+$/"
}
]
"variables": [
{
"id": "$$cap_admin_user",
"label": "Admin user",
"description": "permit access to the web admin interface",
"defaultValue": "adminuser",
"validRegex": "/^([a-zA-Z0-9])+$/"
},
{
"id": "$$cap_admin_pass",
"label": "Admin password",
"description": "admin password",
"validRegex": "/.{1,}/"
},
{
"id": "$$cap_collabora_version",
"label": "Collabora CODE Version",
"defaultValue": "4.2.4.4",
"description": "Checkout their docker page for the valid tags https://hub.docker.com/r/collabora/code/tags/",
"validRegex": "/^([^\\s^\\/])+$/"
},
{
"id": "$$cap_wopihost_domain",
"label": "WOPI host domain - yournextcloud.your.rootdomain.com",
"description": "Your Nextcloud host domain.\nCaution ! you must add a backslash before each dot of the url",
"validRegex": "/^([^\\s^\\/])+$/"
}
]
}

View File

@ -25,7 +25,8 @@
"start": "CouchDB is a database that uses JSON for documents, an HTTP API, & JavaScript/declarative indexing.\n\n After installation on CapRover, it will be available as srv-captain--YOUR_CONTAINER_NAME at port 5984 to other CapRover apps.\n\nEnter your CouchDB Configuration parameters and click on next. It will take about a minute for the process to finish.",
"end": "CouchDB is deployed and available as $$cap_appname at port 5984 to other apps"
},
"variables": [{
"variables": [
{
"id": "$$cap_couchdb_version",
"label": "CouchDB Version Tag",
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/library/couchdb/tags/",
@ -45,5 +46,4 @@
"validRegex": "/.{1,}/"
}
]
}

View File

@ -8,9 +8,7 @@
"services": {
"$$cap_appname": {
"image": "countly/countly-server:$$cap_countly_version",
"volumes": [
"$$cap_appname-data:/var/lib/mongodb"
],
"volumes": ["$$cap_appname-data:/var/lib/mongodb"],
"restart": "always",
"environment": {}
}
@ -20,7 +18,8 @@
"start": "Countly. This will only work over HTTPS, so enable plz :) | Product Analytics for Mobile, Web, Desktop and IoT | https://count.ly",
"end": "Countly is deployed and available as $$cap_appname"
},
"variables": [{
"variables": [
{
"id": "$$cap_countly_version",
"label": "What version/tag do you want?",
"description": "Go here to see all versions https://hub.docker.com/r/countly/countly-server/tags",

View File

@ -1,121 +1,118 @@
{
"captainVersion": "2",
"documentation": "Taken from https://github.com/directus/docker.",
"displayName": "",
"description": "Directus is an open-source tool for managing content across all your omni-channel digital experiences",
"dockerCompose": {
"version": "7",
"services": {
"$$cap_appname-db": {
"image": "mysql:5.7",
"notExposeAsWebApp": "true",
"volumes": [
"$$cap_appname-db-data:/var/lib/mysql/"
],
"environment": {
"MYSQL_DATABASE": "$$cap_mysql_database_name",
"MYSQL_ROOT_PASSWORD": "$$cap_mysql_root_passwd",
"MYSQL_USER": "$$cap_mysql_user",
"MYSQL_PASSWORD": "$$cap_mysql_passwd"
},
"healthcheck": {
"test": "mysql -u$$cap_mysql_user -p$$cap_mysql_passwd -e \"SHOW DATABASES;\"",
"interval": "10s",
"timeout": "6s",
"retries": "10"
},
"restart": "always"
},
"$$cap_appname-api": {
"depends_on": {
"$$cap_appname-db": {
"condition" : "service_healthy"
}
},
"image": "directus/api:2.0.18",
"volumes": [
"$$cap_appname-db-uploads:/var/www/html/public/uploads"
],
"containerHttpPort":"80",
"restart": "always",
"environment": {
"DATABASE_HOST": "srv-captain--$$cap_appname-db",
"DATABASE_NAME": "$$cap_mysql_database_name",
"DATABASE_USERNAME": "$$cap_mysql_user",
"DATABASE_PASSWORD":"$$cap_mysql_passwd",
"ADMIN_EMAIL":"$$cap_directus_admin_username",
"ADMIN_PASSWORD":"$$cap_directus_admin_passwd"
}
},
"$$cap_appname-app": {
"depends_on": {
"$$cap_appname-db": {
"condition" : "service_healthy"
},
"$$cap_appname-api" : {}
"captainVersion": "2",
"documentation": "Taken from https://github.com/directus/docker.",
"displayName": "",
"description": "Directus is an open-source tool for managing content across all your omni-channel digital experiences",
"dockerCompose": {
"version": "7",
"services": {
"$$cap_appname-db": {
"image": "mysql:5.7",
"notExposeAsWebApp": "true",
"volumes": ["$$cap_appname-db-data:/var/lib/mysql/"],
"environment": {
"MYSQL_DATABASE": "$$cap_mysql_database_name",
"MYSQL_ROOT_PASSWORD": "$$cap_mysql_root_passwd",
"MYSQL_USER": "$$cap_mysql_user",
"MYSQL_PASSWORD": "$$cap_mysql_passwd"
},
"healthcheck": {
"test": "mysql -u$$cap_mysql_user -p$$cap_mysql_passwd -e \"SHOW DATABASES;\"",
"interval": "10s",
"timeout": "6s",
"retries": "10"
},
"restart": "always"
},
"image": "directus/app:7.0.18",
"containerHttpPort":"80",
"restart": "always",
"environment": {
"API_ENDPOINT": "API; $$cap_api_endpoint/_/"
"$$cap_appname-api": {
"depends_on": {
"$$cap_appname-db": {
"condition": "service_healthy"
}
},
"image": "directus/api:2.0.18",
"volumes": [
"$$cap_appname-db-uploads:/var/www/html/public/uploads"
],
"containerHttpPort": "80",
"restart": "always",
"environment": {
"DATABASE_HOST": "srv-captain--$$cap_appname-db",
"DATABASE_NAME": "$$cap_mysql_database_name",
"DATABASE_USERNAME": "$$cap_mysql_user",
"DATABASE_PASSWORD": "$$cap_mysql_passwd",
"ADMIN_EMAIL": "$$cap_directus_admin_username",
"ADMIN_PASSWORD": "$$cap_directus_admin_passwd"
}
},
"$$cap_appname-app": {
"depends_on": {
"$$cap_appname-db": {
"condition": "service_healthy"
},
"$$cap_appname-api": {}
},
"image": "directus/app:7.0.18",
"containerHttpPort": "80",
"restart": "always",
"environment": {
"API_ENDPOINT": "API; $$cap_api_endpoint/_/"
}
}
}
}
},
"instructions":{
"end":"Directus is deployed and available as $$cap_appname-app. \n\n It may take a few minutes for Directus to initialize.\n",
"start":"Directus is a free and open souce content management system and API wrapper for SQL databases. The API instance provides a realtime REST API for interacting with your database, while the App instance provides a web based CMS for managaging the database. \n For more information and available options, see https://github.com/directus/docker."
},
"variables":[
{
"description":"Name of the Directus backing database instance.",
"defaultValue" : "directus",
"id":"$$cap_mysql_database_name",
"label":"mySQL Database Name",
"validRegex": "/.{1,}/"
},
{
"description":"Master password for the Directus backing database instance.",
"defaultValue" : "ultr@s3curep@ssword",
"id":"$$cap_mysql_root_passwd",
"label":"mySQL Root Password",
"validRegex":"/^(?=.*\\d).{10,}$/"
},
{
"description":"User for the Directus backing database instance.",
"defaultValue" : "directus",
"id":"$$cap_mysql_user",
"label":"mySQL User",
"validRegex": "/.{1,}/"
},
{
"description":"User password for the Directus backing database instance.",
"defaultValue" : "s3curep@ssword",
"id":"$$cap_mysql_passwd",
"label":"mySQL User Password",
"validRegex":"/^(?=.*\\d).{10,}$/"
},
{
"description":"Admin login email for the Directus app.",
"defaultValue" : "admin@example.com",
"id":"$$cap_directus_admin_username",
"label":"Directus App Admin Email",
"validRegex": "/.{1,}/"
},
{
"description":"Admin login password for the Directus app.",
"defaultValue" : "s3curep@ssword",
"id":"$$cap_directus_admin_passwd",
"label":"Directus App Admin Password",
"validRegex":"/^(?=.*\\d).{10,}$/"
},
{
"description":"A URL in the format of http://appname-api.rootdomain.com. \n The admin web app will connect to the endpoint using this URL.",
"id":"$$cap_api_endpoint",
"label":"Directus API Endpoint URL",
"validRegex": "/.{1,}/"
}
]
},
"instructions": {
"end": "Directus is deployed and available as $$cap_appname-app. \n\n It may take a few minutes for Directus to initialize.\n",
"start": "Directus is a free and open souce content management system and API wrapper for SQL databases. The API instance provides a realtime REST API for interacting with your database, while the App instance provides a web based CMS for managaging the database. \n For more information and available options, see https://github.com/directus/docker."
},
"variables": [
{
"description": "Name of the Directus backing database instance.",
"defaultValue": "directus",
"id": "$$cap_mysql_database_name",
"label": "mySQL Database Name",
"validRegex": "/.{1,}/"
},
{
"description": "Master password for the Directus backing database instance.",
"defaultValue": "ultr@s3curep@ssword",
"id": "$$cap_mysql_root_passwd",
"label": "mySQL Root Password",
"validRegex": "/^(?=.*\\d).{10,}$/"
},
{
"description": "User for the Directus backing database instance.",
"defaultValue": "directus",
"id": "$$cap_mysql_user",
"label": "mySQL User",
"validRegex": "/.{1,}/"
},
{
"description": "User password for the Directus backing database instance.",
"defaultValue": "s3curep@ssword",
"id": "$$cap_mysql_passwd",
"label": "mySQL User Password",
"validRegex": "/^(?=.*\\d).{10,}$/"
},
{
"description": "Admin login email for the Directus app.",
"defaultValue": "admin@example.com",
"id": "$$cap_directus_admin_username",
"label": "Directus App Admin Email",
"validRegex": "/.{1,}/"
},
{
"description": "Admin login password for the Directus app.",
"defaultValue": "s3curep@ssword",
"id": "$$cap_directus_admin_passwd",
"label": "Directus App Admin Password",
"validRegex": "/^(?=.*\\d).{10,}$/"
},
{
"description": "A URL in the format of http://appname-api.rootdomain.com. \n The admin web app will connect to the endpoint using this URL.",
"id": "$$cap_api_endpoint",
"label": "Directus API Endpoint URL",
"validRegex": "/.{1,}/"
}
]
}

View File

@ -1,56 +1,54 @@
{
"captainVersion": "2",
"documentation": "Taken from https://hub.docker.com/r/linuxserver/dokuwiki/tags",
"displayName": "DokuWiki",
"description": "Dokuwiki is a simple to use and highly versatile Open Source wiki software that doesn't require a database.",
"dockerCompose": {
"version": "3.1",
"services": {
"$$cap_appname": {
"image": "linuxserver/dokuwiki:$$cap_dokuwiki_version",
"environment": {
"TZ": "$$cap_tz",
"PUID": "$$cap_puid",
"PGID": "$$cap_guid"
"captainVersion": "2",
"documentation": "Taken from https://hub.docker.com/r/linuxserver/dokuwiki/tags",
"displayName": "DokuWiki",
"description": "Dokuwiki is a simple to use and highly versatile Open Source wiki software that doesn't require a database.",
"dockerCompose": {
"version": "3.1",
"services": {
"$$cap_appname": {
"image": "linuxserver/dokuwiki:$$cap_dokuwiki_version",
"environment": {
"TZ": "$$cap_tz",
"PUID": "$$cap_puid",
"PGID": "$$cap_guid"
},
"volumes": ["$$cap_appname-config:/config"]
}
}
},
"instructions": {
"start": "Dokuwiki is a simple to use and highly versatile Open Source wiki software that doesn't require a database. It is loved by users for its clean and readable syntax. The ease of maintenance, backup and integration makes it an administrator's favorite. Built in access controls and authentication connectors make DokuWiki especially useful in the enterprise context and the large number of plugins contributed by its vibrant community allow for a broad range of use cases beyond a traditional wiki.",
"end": "Dokuwiki has been successfully deployed. Please wait about 2 minutes before accessing Dokuwiki.\n\nNavigate to /install.php to finish the installation! More details: https://github.com/linuxserver/docker-dokuwiki#application-setup"
},
"variables": [
{
"id": "$$cap_dokuwiki_version",
"label": "DokuWiki Version",
"defaultValue": "2018-04-22c-ls37",
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/linuxserver/dokuwiki/tags",
"validRegex": "/^([^\\s^\\/])+$/"
},
"volumes": [
"$$cap_appname-config:/config"
]
}
}
},
"instructions": {
"start": "Dokuwiki is a simple to use and highly versatile Open Source wiki software that doesn't require a database. It is loved by users for its clean and readable syntax. The ease of maintenance, backup and integration makes it an administrator's favorite. Built in access controls and authentication connectors make DokuWiki especially useful in the enterprise context and the large number of plugins contributed by its vibrant community allow for a broad range of use cases beyond a traditional wiki.",
"end": "Dokuwiki has been successfully deployed. Please wait about 2 minutes before accessing Dokuwiki.\n\nNavigate to /install.php to finish the installation! More details: https://github.com/linuxserver/docker-dokuwiki#application-setup"
},
"variables": [
{
"id": "$$cap_dokuwiki_version",
"label": "DokuWiki Version",
"defaultValue": "2018-04-22c-ls37",
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/linuxserver/dokuwiki/tags",
"validRegex": "/^([^\\s^\\/])+$/"
},
{
"id": "$$cap_puid",
"label": "User ID",
"defaultValue": "1000",
"description": "User ID that the process uses",
"validRegex": "/.{1,}/"
},
{
"id": "$$cap_guid",
"label": "Group ID",
"defaultValue": "1000",
"description": "Group ID that the process uses",
"validRegex": "/.{1,}/"
},
{
"id": "$$cap_tz",
"label": "Time Zone",
"defaultValue": "America/New_York",
"description": "Get yours from https://en.wikipedia.org/wiki/List_of_tz_database_time_zones",
"validRegex": "/.{1,}/"
}
]
{
"id": "$$cap_puid",
"label": "User ID",
"defaultValue": "1000",
"description": "User ID that the process uses",
"validRegex": "/.{1,}/"
},
{
"id": "$$cap_guid",
"label": "Group ID",
"defaultValue": "1000",
"description": "Group ID that the process uses",
"validRegex": "/.{1,}/"
},
{
"id": "$$cap_tz",
"label": "Time Zone",
"defaultValue": "America/New_York",
"description": "Get yours from https://en.wikipedia.org/wiki/List_of_tz_database_time_zones",
"validRegex": "/.{1,}/"
}
]
}

View File

@ -16,15 +16,12 @@
}
},
"$$cap_appname-server": {
"depends_on": [
"$$cap_appname-agent"
],
"depends_on": ["$$cap_appname-agent"],
"image": "drone/drone:$$cap_drone_version",
"containerHttpPort": "80",
"volumes": [
"/var/run/docker.sock:/var/run/docker.sock",
"$$cap_appname-server:/data"
],
"restart": "always",
"environment": {

View File

@ -1,32 +1,32 @@
{
"captainVersion": "2",
"documentation": "Read the documentation @ https://github.com/silverwind/droppy",
"displayName": "",
"description": "droppy is a self-hosted file storage server with a web interface",
"dockerCompose": {
"version": "3.7",
"services": {
"$$cap_appname": {
"image": "silverwind/droppy:$$cap_droppy_version",
"containerHttpPort": "8989",
"volumes": [
"$$cap_appname-config:/config",
"$$cap_appname-files:/files"
],
"restart": "always"
}
}
},
"instructions": {
"start": "droppy is a self-hosted file storage server with a web interface.",
"end": "droppy is deployed and available as $$cap_appname. \n\n IMPORTANT: It will take up to 2 minutes for droppy to be ready. Before that, you might see 502 error page."
},
"variables": [
{
"id": "$$cap_droppy_version",
"label": "droppy version tag",
"description": "Checkout their docker page for the valid tags @ https://hub.docker.com/r/silverwind/droppy/tags",
"defaultValue": "11.1.0"
}
]
"captainVersion": "2",
"documentation": "Read the documentation @ https://github.com/silverwind/droppy",
"displayName": "",
"description": "droppy is a self-hosted file storage server with a web interface",
"dockerCompose": {
"version": "3.7",
"services": {
"$$cap_appname": {
"image": "silverwind/droppy:$$cap_droppy_version",
"containerHttpPort": "8989",
"volumes": [
"$$cap_appname-config:/config",
"$$cap_appname-files:/files"
],
"restart": "always"
}
}
},
"instructions": {
"start": "droppy is a self-hosted file storage server with a web interface.",
"end": "droppy is deployed and available as $$cap_appname. \n\n IMPORTANT: It will take up to 2 minutes for droppy to be ready. Before that, you might see 502 error page."
},
"variables": [
{
"id": "$$cap_droppy_version",
"label": "droppy version tag",
"description": "Checkout their docker page for the valid tags @ https://hub.docker.com/r/silverwind/droppy/tags",
"defaultValue": "11.1.0"
}
]
}

View File

@ -7,7 +7,7 @@
"version": "3.3",
"services": {
"$$cap_appname": {
"image" : "docker.elastic.co/elasticsearch/elasticsearch:$$cap_elasticsearch_version",
"image": "docker.elastic.co/elasticsearch/elasticsearch:$$cap_elasticsearch_version",
"volumes": [
"$$cap_appname-elasticsearch-data:/usr/share/elasticsearch/data"
],
@ -29,43 +29,50 @@
"start": "Elasticsearch is a distributed, RESTful search and analytics engine. This image can be used for single nodes and cluster setups. Be sure to extend the virtual memory on all your hosts! (increase \"echo 'vm.max_map_count=262144' >> /etc/sysctl.conf\" and restart \"sysctl -p\")",
"end": "Deployment of Elasticsearch is finished. You might see 502 errors for the next 2 minutes. Goto <YOUR-APP-URL>/_cat/health to check the health of your cluster."
},
"variables": [{
"variables": [
{
"id": "$$cap_elasticsearch_version",
"label": "Elasticsearch Version Tag ",
"description": "Checkout the releases overview: https://www.elastic.co/de/downloads/elasticsearch",
"defaultValue": "6.7.1",
"validRegex": "/^([^\\s^\\/])+$/"
},{
},
{
"id": "$$cap_elasticsearch_cluster_name",
"label": "Cluster Name",
"description": "Only nodes within the same cluster name can be combined",
"defaultValue": "elasticsearch-cluster",
"validRegex": "/^([^\\s^\\/])+$/"
},{
},
{
"id": "$$cap_elasticsearch_unicast_hosts",
"label": "Unicasts hosts",
"description": "References to other node to attach to. (for example: srv-captain--XXX)",
"defaultValue": "false",
"validRegex": "/^([^\\s^\\/])+$/"
},{
},
{
"id": "$$cap_elasticsearch_node_data",
"label": "Node Data",
"description": "Should the node used for storing data? (true / false)",
"defaultValue": "true",
"validRegex": "/^([^\\s^\\/])+$/"
},{
},
{
"id": "$$cap_elasticsearch_node_master",
"label": "Node Master",
"description": "Define node as master-eligible (usual first node YES, others NO).",
"defaultValue": "true",
"validRegex": "/^([^\\s^\\/])+$/"
},{
},
{
"id": "$$cap_elasticsearch_minimum_master_nodes",
"label": "Minimum Master Nodes",
"description": "Define minimum amount of master (N) ( best practice: ceil(N/2 + 1) ).",
"defaultValue": "1",
"validRegex": "/^([0-9])+$/"
},{
},
{
"id": "$$cap_container_port",
"label": "Container TCP Port",
"defaultValue": "9200",
@ -73,4 +80,4 @@
"validRegex": "/^([0-9])+$/"
}
]
}
}

View File

@ -9,9 +9,7 @@
"$$cap_appname": {
"image": "grburst/etesync:$$cap_version",
"containerHttpPort": "3735",
"volumes": [
"$$cap_appname-data:/data"
],
"volumes": ["$$cap_appname-data:/data"],
"restart": "always",
"environment": {
"SUPER_USER": "$$cap_SUPER_USER",
@ -35,7 +33,7 @@
{
"id": "$$cap_SUPER_USER",
"label": "user name",
"description": "etesync super user name",
"description": "etesync super user name",
"defaultValue": "root"
},
{

View File

@ -1,68 +1,64 @@
{
"captainVersion": "2",
"documentation": "https://github.com/ether/etherpad-lite/blob/develop/doc/docker.md ",
"displayName": "Etherpad",
"description": "Etherpad is a real-time collaborative editor for the web",
"dockerCompose": {
"version": "3.8",
"services": {
"$$cap_appname": {
"image": "etherpad/etherpad:$$cap_etherpad_version",
"containerHttpPort": "9001",
"depends_on": [
"$$cap_appname-db"
],
"environment": {
"NODE_ENV": "production",
"DB_TYPE": "mysql",
"DB_HOST": "srv-captain--$$cap_appname-db",
"DB_PORT": "3306",
"DB_NAME": "etherpad",
"DB_USER": "etherpad",
"DB_PASS": "$$cap_db_pass",
"DB_CHARSET": "utf8mb4",
"TRUST_PROXY": "true"
}
},
"$$cap_appname-db": {
"image": "mysql:$$cap_mysql_version",
"notExposeAsWebApp": "true",
"volumes": [
"$$cap_appname-db-data:/var/lib/mysql"
],
"restart": "always",
"environment": {
"MYSQL_ROOT_PASSWORD": "$$cap_db_pass",
"MYSQL_DATABASE": "etherpad",
"MYSQL_USER": "etherpad",
"MYSQL_PASSWORD": "$$cap_db_pass"
}
}
}
},
"instructions": {
"start": "Etherpad is a real-time collaborative editor for the web",
"end": "Etherpad is a real-time collaborative editor for the web is deployed and available as srv-captain--$$cap_appname. Note that the application may take some time to become available."
},
"variables": [
{
"id": "$$cap_etherpad_version",
"label": "Etherpad Docker Image",
"defaultValue": "1.8.0",
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/etherpad/etherpad/tags - default is 1.8.0 as of 2020-04-09"
},
{
"id": "$$cap_db_pass",
"label": "Database password",
"description": "",
"validRegex": "/.{1,}/"
},
{
"id": "$$cap_mysql_version",
"label": "MySQL Version",
"defaultValue": "5.7",
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/library/mysql/tags/",
"validRegex": "/^([^\\s^\\/])+$/"
}
]
}
{
"captainVersion": "2",
"documentation": "https://github.com/ether/etherpad-lite/blob/develop/doc/docker.md ",
"displayName": "Etherpad",
"description": "Etherpad is a real-time collaborative editor for the web",
"dockerCompose": {
"version": "3.8",
"services": {
"$$cap_appname": {
"image": "etherpad/etherpad:$$cap_etherpad_version",
"containerHttpPort": "9001",
"depends_on": ["$$cap_appname-db"],
"environment": {
"NODE_ENV": "production",
"DB_TYPE": "mysql",
"DB_HOST": "srv-captain--$$cap_appname-db",
"DB_PORT": "3306",
"DB_NAME": "etherpad",
"DB_USER": "etherpad",
"DB_PASS": "$$cap_db_pass",
"DB_CHARSET": "utf8mb4",
"TRUST_PROXY": "true"
}
},
"$$cap_appname-db": {
"image": "mysql:$$cap_mysql_version",
"notExposeAsWebApp": "true",
"volumes": ["$$cap_appname-db-data:/var/lib/mysql"],
"restart": "always",
"environment": {
"MYSQL_ROOT_PASSWORD": "$$cap_db_pass",
"MYSQL_DATABASE": "etherpad",
"MYSQL_USER": "etherpad",
"MYSQL_PASSWORD": "$$cap_db_pass"
}
}
}
},
"instructions": {
"start": "Etherpad is a real-time collaborative editor for the web",
"end": "Etherpad is a real-time collaborative editor for the web is deployed and available as srv-captain--$$cap_appname. Note that the application may take some time to become available."
},
"variables": [
{
"id": "$$cap_etherpad_version",
"label": "Etherpad Docker Image",
"defaultValue": "1.8.0",
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/etherpad/etherpad/tags - default is 1.8.0 as of 2020-04-09"
},
{
"id": "$$cap_db_pass",
"label": "Database password",
"description": "",
"validRegex": "/.{1,}/"
},
{
"id": "$$cap_mysql_version",
"label": "MySQL Version",
"defaultValue": "5.7",
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/library/mysql/tags/",
"validRegex": "/^([^\\s^\\/])+$/"
}
]
}

View File

@ -19,8 +19,7 @@
"$$cap_appname-files:/srv"
],
"restart": "always",
"environment": {
}
"environment": {}
}
}
},

View File

@ -9,9 +9,7 @@
"$$cap_appname": {
"image": "machines/filestash:$$cap_filestash_version",
"containerHttpPort": "8334",
"volumes": [
"$$cap_appname-app-data-state:/app/data/state"
],
"volumes": ["$$cap_appname-app-data-state:/app/data/state"],
"restart": "always"
}
}
@ -20,7 +18,8 @@
"start": "Filestash is a modern web client for SFTP, S3, FTP, WebDAV, Git, Minio, LDAP, CalDAV, CardDAV, Mysql, Backblaze, ...",
"end": "Filestash is deployed and available as srv-captain--$$cap_appname-db:8334 to other apps."
},
"variables": [{
"variables": [
{
"id": "$$cap_filestash_version",
"label": "Filestash Version",
"defaultValue": "b7b45f2",

View File

@ -1,168 +1,171 @@
{
"captainVersion": "2",
"documentation": "Adapted from: https://github.com/FusionAuth/fusionauth-containers",
"displayName": "FusionAuth",
"description": "FusionAuth is a scalable, identity and user management platform built for devs",
"dockerCompose": {
"version": "3.3",
"services": {
"$$cap_appname-db": {
"image": "postgres:$$cap_postgres_version",
"notExposeAsWebApp": "true",
"environment": {
"POSTGRES_USER": "$$cap_db_user",
"POSTGRES_PASSWORD": "$$cap_db_pass",
"POSTGRES_DB": "fusionauth"
"captainVersion": "2",
"documentation": "Adapted from: https://github.com/FusionAuth/fusionauth-containers",
"displayName": "FusionAuth",
"description": "FusionAuth is a scalable, identity and user management platform built for devs",
"dockerCompose": {
"version": "3.3",
"services": {
"$$cap_appname-db": {
"image": "postgres:$$cap_postgres_version",
"notExposeAsWebApp": "true",
"environment": {
"POSTGRES_USER": "$$cap_db_user",
"POSTGRES_PASSWORD": "$$cap_db_pass",
"POSTGRES_DB": "fusionauth"
},
"restart": "unless-stopped",
"volumes": ["$$cap_appname-db-data:/var/lib/postgresql/data"]
},
"$$cap_appname-elasticsearch": {
"image": "docker.elastic.co/elasticsearch/elasticsearch:$$cap_elasticsearch_version",
"volumes": [
"$$cap_appname-elasticsearch-data:/usr/share/elasticsearch/data"
],
"restart": "always",
"environment": {
"ES_JAVA_OPTS": "-Xms512m -Xmx512m",
"cluster.name": "$$cap_elasticsearch_cluster_name",
"http.port": "$$cap_container_search_port",
"node.master": "$$cap_elasticsearch_node_master",
"node.data": "$$cap_elasticsearch_node_data",
"discovery.type": "single-node",
"discovery.zen.minimum_master_nodes": "$$cap_elasticsearch_minimum_master_nodes",
"discovery.zen.ping.unicast.hosts": "$$cap_elasticsearch_unicast_hosts"
},
"containerHttpPort": "$$cap_container_search_port"
},
"$$cap_appname-fusionauth": {
"image": "fusionauth/fusionauth-app:$$cap_fusionauth_version",
"depends_on": [
"$$cap_appname-db",
"$$cap_appname-elasticsearch"
],
"environment": {
"DATABASE_URL": "jdbc:postgresql://srv-captain--$$cap_appname-db:5432/fusionauth",
"DATABASE_ROOT_USER": "$$cap_db_user",
"DATABASE_ROOT_PASSWORD": "$$cap_db_pass",
"DATABASE_USER": "$$cap_db_user",
"DATABASE_PASSWORD": "$$cap_db_pass",
"FUSIONAUTH_MEMORY": "$$cap_fusion_memory",
"FUSIONAUTH_SEARCH_SERVERS": "http://srv-captain--$$cap_appname-elasticsearch:9200",
"FUSIONAUTH_URL": "http://srv-captain--$$cap_appname-fusionauth:9011"
},
"containerHttpPort": "$$cap_container_port",
"restart": "unless-stopped",
"volumes": [
"$$cap_appname-fusionauth-config:/usr/local/fusionauth/config"
]
}
},
"restart": "unless-stopped",
"volumes": [
"$$cap_appname-db-data:/var/lib/postgresql/data"
]
},
"$$cap_appname-elasticsearch": {
"image" : "docker.elastic.co/elasticsearch/elasticsearch:$$cap_elasticsearch_version",
"volumes": [
"$$cap_appname-elasticsearch-data:/usr/share/elasticsearch/data"
],
"restart": "always",
"environment": {
"ES_JAVA_OPTS": "-Xms512m -Xmx512m",
"cluster.name": "$$cap_elasticsearch_cluster_name",
"http.port": "$$cap_container_search_port",
"node.master": "$$cap_elasticsearch_node_master",
"node.data": "$$cap_elasticsearch_node_data",
"discovery.type": "single-node",
"discovery.zen.minimum_master_nodes": "$$cap_elasticsearch_minimum_master_nodes",
"discovery.zen.ping.unicast.hosts": "$$cap_elasticsearch_unicast_hosts"
"networks": {
"db": {
"driver": "bridge"
},
"search": {
"driver": "bridge"
}
},
"containerHttpPort": "$$cap_container_search_port"
},
"$$cap_appname-fusionauth": {
"image": "fusionauth/fusionauth-app:$$cap_fusionauth_version",
"depends_on": [
"$$cap_appname-db",
"$$cap_appname-elasticsearch"
],
"environment": {
"DATABASE_URL": "jdbc:postgresql://srv-captain--$$cap_appname-db:5432/fusionauth",
"DATABASE_ROOT_USER": "$$cap_db_user",
"DATABASE_ROOT_PASSWORD": "$$cap_db_pass",
"DATABASE_USER": "$$cap_db_user",
"DATABASE_PASSWORD": "$$cap_db_pass",
"FUSIONAUTH_MEMORY": "$$cap_fusion_memory",
"FUSIONAUTH_SEARCH_SERVERS": "http://srv-captain--$$cap_appname-elasticsearch:9200",
"FUSIONAUTH_URL": "http://srv-captain--$$cap_appname-fusionauth:9011"
},
"containerHttpPort": "$$cap_container_port",
"restart": "unless-stopped",
"volumes": [
"$$cap_appname-fusionauth-config:/usr/local/fusionauth/config"
]
}
"volumes": {
"db_data": null,
"es_data": null,
"fa_config": null
}
},
"networks": {
"db": {
"driver": "bridge"
},
"search": {
"driver": "bridge"
}
"instructions": {
"start": "NOTE: This app requires at least 4GB of RAM. Without this requirement it fails to start up. \n\nFusionAuth is a modern platform for Customer Identity and Access Management (CIAM). FusionAuth provides APIs and a responsive web user interface to support login, registration, localized email, multi-factor authentication, reporting and much more. See: https://fusionauth.io/docs/v1/tech/getting-started/ and https://github.com/FusionAuth/fusionauth-containers",
"end": "FusionAuth is deployed and available as srv-captain--$$cap_appname-fusionauth:9011 to other apps"
},
"volumes": {
"db_data": null,
"es_data": null,
"fa_config": null
}
},
"instructions": {
"start": "NOTE: This app requires at least 4GB of RAM. Without this requirement it fails to start up. \n\nFusionAuth is a modern platform for Customer Identity and Access Management (CIAM). FusionAuth provides APIs and a responsive web user interface to support login, registration, localized email, multi-factor authentication, reporting and much more. See: https://fusionauth.io/docs/v1/tech/getting-started/ and https://github.com/FusionAuth/fusionauth-containers",
"end": "FusionAuth is deployed and available as srv-captain--$$cap_appname-fusionauth:9011 to other apps"
},
"variables": [{
"id": "$$cap_db_user",
"label": "Database user",
"defaultValue": "fusion",
"validRegex": "/^([a-zA-Z0-9])+$/"
},
{
"id": "$$cap_db_pass",
"label": "Database password",
"description": "",
"validRegex": "/.{1,}/"
},
{
"id": "$$cap_fusionauth_version",
"label": "FusionAuth Version",
"defaultValue": "1.7.2",
"description": "See tags at: https://hub.docker.com/r/fusionauth/fusionauth-app/tags",
"validRegex": "/^([^\\s^\\/])+$/"
},
{
"id": "$$cap_fusion_memory",
"label": "Fusion Memory",
"defaultValue": "256M",
"description": "",
"validRegex": "/^([a-zA-Z0-9])+$/"
},
{
"id": "$$cap_postgres_version",
"label": "Postgres Version",
"defaultValue": "9.6",
"description": "",
"validRegex": "/^([^\\s^\\/])+$/"
},
{
"id": "$$cap_container_port",
"label": "Container TCP Port",
"defaultValue": "9011",
"description": "Internal port for Fusion Auth container to listens to.",
"validRegex": "/^([0-9])+$/"
},
{
"id": "$$cap_container_search_port",
"label": "Container TCP Port",
"defaultValue": "9200",
"description": "Internal port for Elasticsearch the container listens to.",
"validRegex": "/^([0-9])+$/"
},
{
"id": "$$cap_elasticsearch_version",
"label": "Elasticsearch Version Tag ",
"description": "Checkout the releases overview: https://www.elastic.co/de/downloads/elasticsearch",
"defaultValue": "6.7.1",
"validRegex": "/^([^\\s^\\/])+$/"
},{
"id": "$$cap_elasticsearch_cluster_name",
"label": "Cluster Name",
"description": "Only nodes within the same cluster name can be combined",
"defaultValue": "elasticsearch-cluster",
"validRegex": "/^([^\\s^\\/])+$/"
},{
"id": "$$cap_elasticsearch_unicast_hosts",
"label": "Unicasts hosts",
"description": "References to other node to attach to. (for example: srv-captain--XXX)",
"defaultValue": "false",
"validRegex": "/^([^\\s^\\/])+$/"
},{
"id": "$$cap_elasticsearch_node_data",
"label": "Node Data",
"description": "Should the node used for storing data? (true / false)",
"defaultValue": "true",
"validRegex": "/^([^\\s^\\/])+$/"
},{
"id": "$$cap_elasticsearch_node_master",
"label": "Node Master",
"description": "Define node as master-eligible (usual first node YES, others NO).",
"defaultValue": "true",
"validRegex": "/^([^\\s^\\/])+$/"
},{
"id": "$$cap_elasticsearch_minimum_master_nodes",
"label": "Minimum Master Nodes",
"description": "Define minimum amount of master (N) ( best practice: ceil(N/2 + 1) ).",
"defaultValue": "1",
"validRegex": "/^([0-9])+$/"
}
]
"variables": [
{
"id": "$$cap_db_user",
"label": "Database user",
"defaultValue": "fusion",
"validRegex": "/^([a-zA-Z0-9])+$/"
},
{
"id": "$$cap_db_pass",
"label": "Database password",
"description": "",
"validRegex": "/.{1,}/"
},
{
"id": "$$cap_fusionauth_version",
"label": "FusionAuth Version",
"defaultValue": "1.7.2",
"description": "See tags at: https://hub.docker.com/r/fusionauth/fusionauth-app/tags",
"validRegex": "/^([^\\s^\\/])+$/"
},
{
"id": "$$cap_fusion_memory",
"label": "Fusion Memory",
"defaultValue": "256M",
"description": "",
"validRegex": "/^([a-zA-Z0-9])+$/"
},
{
"id": "$$cap_postgres_version",
"label": "Postgres Version",
"defaultValue": "9.6",
"description": "",
"validRegex": "/^([^\\s^\\/])+$/"
},
{
"id": "$$cap_container_port",
"label": "Container TCP Port",
"defaultValue": "9011",
"description": "Internal port for Fusion Auth container to listens to.",
"validRegex": "/^([0-9])+$/"
},
{
"id": "$$cap_container_search_port",
"label": "Container TCP Port",
"defaultValue": "9200",
"description": "Internal port for Elasticsearch the container listens to.",
"validRegex": "/^([0-9])+$/"
},
{
"id": "$$cap_elasticsearch_version",
"label": "Elasticsearch Version Tag ",
"description": "Checkout the releases overview: https://www.elastic.co/de/downloads/elasticsearch",
"defaultValue": "6.7.1",
"validRegex": "/^([^\\s^\\/])+$/"
},
{
"id": "$$cap_elasticsearch_cluster_name",
"label": "Cluster Name",
"description": "Only nodes within the same cluster name can be combined",
"defaultValue": "elasticsearch-cluster",
"validRegex": "/^([^\\s^\\/])+$/"
},
{
"id": "$$cap_elasticsearch_unicast_hosts",
"label": "Unicasts hosts",
"description": "References to other node to attach to. (for example: srv-captain--XXX)",
"defaultValue": "false",
"validRegex": "/^([^\\s^\\/])+$/"
},
{
"id": "$$cap_elasticsearch_node_data",
"label": "Node Data",
"description": "Should the node used for storing data? (true / false)",
"defaultValue": "true",
"validRegex": "/^([^\\s^\\/])+$/"
},
{
"id": "$$cap_elasticsearch_node_master",
"label": "Node Master",
"description": "Define node as master-eligible (usual first node YES, others NO).",
"defaultValue": "true",
"validRegex": "/^([^\\s^\\/])+$/"
},
{
"id": "$$cap_elasticsearch_minimum_master_nodes",
"label": "Minimum Master Nodes",
"description": "Define minimum amount of master (N) ( best practice: ceil(N/2 + 1) ).",
"defaultValue": "1",
"validRegex": "/^([0-9])+$/"
}
]
}

View File

@ -1,156 +1,151 @@
{
"captainVersion": "2",
"documentation":"Taken from https://docs.ghost.org/",
"displayName": "Ghost - No Database",
"description": "This will create a Ghost blog without a database. After installation you will need to change config.production.json, theres a bug where the port number is in the url.",
"dockerCompose":{
"services":{
"$$cap_appname":{
"containerHttpPort":"2368",
"environment":{
"GHOST_DATABASE_NAME":"$$cap_ghost_database_name",
"GHOST_DATABASE_PASSWORD":"$$cap_ghost_database_password",
"GHOST_DATABASE_USER":"$$cap_ghost_database_user",
"GHOST_EMAIL":"$$cap_ghost_email",
"GHOST_HOST":"$$cap_ghost_host",
"GHOST_PASSWORD":"$$cap_ghost_password",
"GHOST_PROTOCOL":"$$cap_ghost_protocol",
"GHOST_PORT_NUMBER": "$$cap_ghost_port",
"MARIADB_HOST":"$$cap_mariadb_host",
"MARIADB_PORT_NUMBER":"$$cap_mariadb_port_number",
"SMTP_FROM_ADDRESS":"$$cap_ghost_smtp_from",
"SMTP_HOST":"$$cap_ghost_smtp_host",
"SMTP_PASSWORD":"$$cap_ghost_smtp_password",
"SMTP_PORT":"$$cap_ghost_smtp_port",
"SMTP_SERVICE":"$$cap_ghost_smtp_service",
"SMTP_USER":"$$cap_ghost_smtp_user"
},
"image":"bitnami/ghost:$$cap_ghost_version",
"restart":"always",
"volumes":[
"$$cap_appname-data:/bitnami"
]
}
},
"version":"2",
"volumes":{
"$$cap_appname-data":{
"captainVersion": "2",
"documentation": "Taken from https://docs.ghost.org/",
"displayName": "Ghost - No Database",
"description": "This will create a Ghost blog without a database. After installation you will need to change config.production.json, theres a bug where the port number is in the url.",
"dockerCompose": {
"services": {
"$$cap_appname": {
"containerHttpPort": "2368",
"environment": {
"GHOST_DATABASE_NAME": "$$cap_ghost_database_name",
"GHOST_DATABASE_PASSWORD": "$$cap_ghost_database_password",
"GHOST_DATABASE_USER": "$$cap_ghost_database_user",
"GHOST_EMAIL": "$$cap_ghost_email",
"GHOST_HOST": "$$cap_ghost_host",
"GHOST_PASSWORD": "$$cap_ghost_password",
"GHOST_PROTOCOL": "$$cap_ghost_protocol",
"GHOST_PORT_NUMBER": "$$cap_ghost_port",
"MARIADB_HOST": "$$cap_mariadb_host",
"MARIADB_PORT_NUMBER": "$$cap_mariadb_port_number",
"SMTP_FROM_ADDRESS": "$$cap_ghost_smtp_from",
"SMTP_HOST": "$$cap_ghost_smtp_host",
"SMTP_PASSWORD": "$$cap_ghost_smtp_password",
"SMTP_PORT": "$$cap_ghost_smtp_port",
"SMTP_SERVICE": "$$cap_ghost_smtp_service",
"SMTP_USER": "$$cap_ghost_smtp_user"
},
"image": "bitnami/ghost:$$cap_ghost_version",
"restart": "always",
"volumes": ["$$cap_appname-data:/bitnami"]
}
},
"version": "2",
"volumes": {
"$$cap_appname-data": {}
}
},
"instructions": {
"end": "Ghost is deployed and available as $$cap_appname. \n\n IMPORTANT: It will take up to 2 minutes for Ghost to be ready. Before that, you might see 502 error page.\n",
"start": "Ghost is a fully open source, adaptable platform for building and running a modern online publication. We power blogs, magazines and journalists from Zappos to Sky News."
},
"variables": [
{
"defaultValue": "3.4.0",
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/bitnami/ghost/tags",
"id": "$$cap_ghost_version",
"label": "Ghost Version",
"validRegex": "/^([^\\s^\\/])+$/"
},
{
"description": "Maria DB Host",
"defaultValue": "localhost",
"id": "$$cap_mariadb_host",
"label": "Maria DB Host"
},
{
"description": "Maria DB port",
"defaultValue": "3306",
"id": "$$cap_mariadb_port_number",
"label": "MariaDB user"
},
{
"description": "Database name",
"defaultValue": "ghost",
"id": "$$cap_ghost_database_name",
"label": "MariaDB Database name",
"validRegex": "/^([^\\s^\\/])+$/"
},
{
"description": "User for database",
"id": "$$cap_ghost_database_user",
"label": "MariaDB User",
"validRegex": "/^([^\\s^\\/])+$/"
},
{
"description": "Password for database",
"id": "$$cap_ghost_database_password",
"label": "MariaDB Ghost password",
"validRegex": "/^(?=.*\\d).{10,}$/"
},
}
}
},
"instructions":{
"end":"Ghost is deployed and available as $$cap_appname. \n\n IMPORTANT: It will take up to 2 minutes for Ghost to be ready. Before that, you might see 502 error page.\n",
"start":"Ghost is a fully open source, adaptable platform for building and running a modern online publication. We power blogs, magazines and journalists from Zappos to Sky News."
},
"variables":[
{
"defaultValue":"3.4.0",
"description":"Check out their Docker page for the valid tags https://hub.docker.com/r/bitnami/ghost/tags",
"id":"$$cap_ghost_version",
"label":"Ghost Version",
"validRegex":"/^([^\\s^\\/])+$/"
},
{
"description":"Maria DB Host",
"defaultValue":"localhost",
"id":"$$cap_mariadb_host",
"label":"Maria DB Host"
},
{
"description":"Maria DB port",
"defaultValue":"3306",
"id":"$$cap_mariadb_port_number",
"label":"MariaDB user"
},
{
"description":"Database name",
"defaultValue":"ghost",
"id":"$$cap_ghost_database_name",
"label":"MariaDB Database name",
"validRegex":"/^([^\\s^\\/])+$/"
},
{
"description":"User for database",
"id":"$$cap_ghost_database_user",
"label":"MariaDB User",
"validRegex":"/^([^\\s^\\/])+$/"
},
{
"description":"Password for database",
"id":"$$cap_ghost_database_password",
"label":"MariaDB Ghost password",
"validRegex":"/^(?=.*\\d).{10,}$/"
},
{
"defaultValue":"youremail@example.com",
"description":"Ghost application email, you will use it to login",
"id":"$$cap_ghost_email",
"label":"Ghost email",
"validRegex":"/^([^\\s^\\/])+$/"
},
{
"description":"The admin password must be at least 10 characters, and at least one number and letter",
"id":"$$cap_ghost_password",
"label":"Ghost password",
"validRegex":"/^(?=.*\\d).{10,}$/"
},
{
"defaultValue":"blog.example.com",
"description":"Enter the URL that is used to access your publication",
"id":"$$cap_ghost_host",
"label":"Ghost Host",
"validRegex":"/^([^\\s^\\/])+$/"
},
{
"defaultValue":"http",
"description":"Protocol that you will be using",
"id":"$$cap_ghost_protocol",
"label":"Ghost Protocol",
"validRegex":"/^([^\\s^\\/])+$/"
},
{
"defaultValue":"80",
"description":"Port that you will be using",
"id":"$$cap_ghost_port",
"label":"Ghost Port"
},
{
"defaultValue":"GMail",
"description":"Ghost uses node mailer, check this docs https://docs.ghost.org/concepts/config/#mail",
"id":"$$cap_ghost_smtp_service",
"label":"STMP service to use"
},
{
"defaultValue":"smtp.gmail.com",
"description":"The STMP host you will be using",
"id":"$$cap_ghost_smtp_host",
"label":"STMP host"
},
{
"defaultValue":"465",
"description":"The SMTP port you will be using",
"id":"$$cap_ghost_smtp_port",
"label":"SMTP port"
},
{
"defaultValue":"your_email@gmail.com",
"description":"Your user on the SMTP service",
"id":"$$cap_ghost_smtp_user",
"label":"SMTP user"
},
{
"description":"Your password on the SMTP service",
"id":"$$cap_ghost_smtp_password",
"label":"SMTP password"
},
{
"defaultValue":"your_email@gmail.com",
"description":"SMTP from address",
"id":"$$cap_ghost_smtp_from",
"label":"SMTP from address"
}
]
{
"defaultValue": "youremail@example.com",
"description": "Ghost application email, you will use it to login",
"id": "$$cap_ghost_email",
"label": "Ghost email",
"validRegex": "/^([^\\s^\\/])+$/"
},
{
"description": "The admin password must be at least 10 characters, and at least one number and letter",
"id": "$$cap_ghost_password",
"label": "Ghost password",
"validRegex": "/^(?=.*\\d).{10,}$/"
},
{
"defaultValue": "blog.example.com",
"description": "Enter the URL that is used to access your publication",
"id": "$$cap_ghost_host",
"label": "Ghost Host",
"validRegex": "/^([^\\s^\\/])+$/"
},
{
"defaultValue": "http",
"description": "Protocol that you will be using",
"id": "$$cap_ghost_protocol",
"label": "Ghost Protocol",
"validRegex": "/^([^\\s^\\/])+$/"
},
{
"defaultValue": "80",
"description": "Port that you will be using",
"id": "$$cap_ghost_port",
"label": "Ghost Port"
},
{
"defaultValue": "GMail",
"description": "Ghost uses node mailer, check this docs https://docs.ghost.org/concepts/config/#mail",
"id": "$$cap_ghost_smtp_service",
"label": "STMP service to use"
},
{
"defaultValue": "smtp.gmail.com",
"description": "The STMP host you will be using",
"id": "$$cap_ghost_smtp_host",
"label": "STMP host"
},
{
"defaultValue": "465",
"description": "The SMTP port you will be using",
"id": "$$cap_ghost_smtp_port",
"label": "SMTP port"
},
{
"defaultValue": "your_email@gmail.com",
"description": "Your user on the SMTP service",
"id": "$$cap_ghost_smtp_user",
"label": "SMTP user"
},
{
"description": "Your password on the SMTP service",
"id": "$$cap_ghost_smtp_password",
"label": "SMTP password"
},
{
"defaultValue": "your_email@gmail.com",
"description": "SMTP from address",
"id": "$$cap_ghost_smtp_from",
"label": "SMTP from address"
}
]
}

View File

@ -1,160 +1,152 @@
{
"captainVersion": "2",
"documentation":"Taken from https://docs.ghost.org/",
"displayName": "",
"description": "Ghost is a free and open source blogging platform written in JavaScript and distributed under the MIT License",
"dockerCompose":{
"services":{
"$$cap_appname":{
"containerHttpPort":"2368",
"environment":{
"GHOST_DATABASE_NAME":"ghost",
"GHOST_DATABASE_PASSWORD":"$$cap_db_ghost_password",
"GHOST_DATABASE_USER":"ghost",
"GHOST_EMAIL":"$$cap_ghost_email",
"GHOST_HOST":"$$cap_ghost_host",
"GHOST_PASSWORD":"$$cap_ghost_password",
"GHOST_PROTOCOL":"$$cap_ghost_protocol",
"GHOST_PORT_NUMBER": "$$cap_ghost_port",
"MARIADB_HOST":"srv-captain--$$cap_appname-db",
"MARIADB_PORT_NUMBER":"3306",
"SMTP_FROM_ADDRESS":"$$cap_ghost_smtp_from",
"SMTP_HOST":"$$cap_ghost_smtp_host",
"SMTP_PASSWORD":"$$cap_ghost_smtp_password",
"SMTP_PORT":"$$cap_ghost_smtp_port",
"SMTP_SERVICE":"$$cap_ghost_smtp_service",
"SMTP_USER":"$$cap_ghost_smtp_user"
"captainVersion": "2",
"documentation": "Taken from https://docs.ghost.org/",
"displayName": "",
"description": "Ghost is a free and open source blogging platform written in JavaScript and distributed under the MIT License",
"dockerCompose": {
"services": {
"$$cap_appname": {
"containerHttpPort": "2368",
"environment": {
"GHOST_DATABASE_NAME": "ghost",
"GHOST_DATABASE_PASSWORD": "$$cap_db_ghost_password",
"GHOST_DATABASE_USER": "ghost",
"GHOST_EMAIL": "$$cap_ghost_email",
"GHOST_HOST": "$$cap_ghost_host",
"GHOST_PASSWORD": "$$cap_ghost_password",
"GHOST_PROTOCOL": "$$cap_ghost_protocol",
"GHOST_PORT_NUMBER": "$$cap_ghost_port",
"MARIADB_HOST": "srv-captain--$$cap_appname-db",
"MARIADB_PORT_NUMBER": "3306",
"SMTP_FROM_ADDRESS": "$$cap_ghost_smtp_from",
"SMTP_HOST": "$$cap_ghost_smtp_host",
"SMTP_PASSWORD": "$$cap_ghost_smtp_password",
"SMTP_PORT": "$$cap_ghost_smtp_port",
"SMTP_SERVICE": "$$cap_ghost_smtp_service",
"SMTP_USER": "$$cap_ghost_smtp_user"
},
"image": "bitnami/ghost:$$cap_ghost_version",
"restart": "always",
"volumes": ["$$cap_appname-data:/bitnami"]
},
"image":"bitnami/ghost:$$cap_ghost_version",
"restart":"always",
"volumes":[
"$$cap_appname-data:/bitnami"
]
},
"$$cap_appname-db":{
"environment":{
"MARIADB_DATABASE":"ghost",
"MARIADB_PASSWORD":"$$cap_db_ghost_password",
"MARIADB_ROOT_PASSWORD":"$$cap_db_password",
"MARIADB_ROOT_USER":"$$cap_db_user",
"MARIADB_USER":"ghost"
},
"notExposeAsWebApp": "true",
"image":"bitnami/mariadb:10.1",
"restart":"always",
"volumes":[
"$$cap_appname-mariadb-data:/bitnami"
]
}
},
"version":"2",
"volumes":{
"$$cap_appname-data":{
},
"$$cap_appname-mariadb-data":{
}
}
},
"instructions":{
"end":"Ghost is deployed and available as $$cap_appname. \n\n IMPORTANT: It will take up to 2 minutes for Ghost to be ready. Before that, you might see 502 error page.\n",
"start":"Ghost is a fully open source, adaptable platform for building and running a modern online publication. We power blogs, magazines and journalists from Zappos to Sky News."
},
"variables":[
{
"defaultValue":"2.16.4",
"description":"Check out their Docker page for the valid tags https://hub.docker.com/r/bitnami/ghost/tags",
"id":"$$cap_ghost_version",
"label":"Ghost Version",
"validRegex":"/^([^\\s^\\/])+$/"
},
{
"defaultValue":"admin",
"description":"Root user that will be created on MariaDB",
"id":"$$cap_db_user",
"label":"MariaDB root user",
"validRegex":"/^([^\\s^\\/])+$/"
},
{
"description":"Root password that will be created on MariaDB",
"id":"$$cap_db_password",
"label":"MariaDB root password",
"validRegex":"/^(?=.*\\d).{10,}$/"
},
{
"description":"Password for database user named `ghost`",
"id":"$$cap_db_ghost_password",
"label":"MariaDB Ghost password",
"validRegex":"/^(?=.*\\d).{10,}$/"
},
{
"defaultValue":"youremail@example.com",
"description":"Ghost application email, you will use it to login",
"id":"$$cap_ghost_email",
"label":"Ghost email",
"validRegex":"/^([^\\s^\\/])+$/"
},
{
"description":"The admin password must be at least 10 characters, and at least one number and letter",
"id":"$$cap_ghost_password",
"label":"Ghost password",
"validRegex":"/^(?=.*\\d).{10,}$/"
},
{
"defaultValue":"blog.example.com",
"description":"Enter the URL that is used to access your publication",
"id":"$$cap_ghost_host",
"label":"Ghost Host",
"validRegex":"/^([^\\s^\\/])+$/"
},
{
"defaultValue":"http",
"description":"Protocol that you will be using",
"id":"$$cap_ghost_protocol",
"label":"Ghost Protocol",
"validRegex":"/^([^\\s^\\/])+$/"
},
{
"defaultValue":"80",
"description":"Port that you will be using",
"id":"$$cap_ghost_port",
"label":"Ghost Port"
},
{
"defaultValue":"GMail",
"description":"Ghost uses node mailer, check this docs https://docs.ghost.org/concepts/config/#mail",
"id":"$$cap_ghost_smtp_service",
"label":"STMP service to use"
},
{
"defaultValue":"smtp.gmail.com",
"description":"The STMP host you will be using",
"id":"$$cap_ghost_smtp_host",
"label":"STMP host"
},
{
"defaultValue":"465",
"description":"The STMP port you will be using",
"id":"$$cap_ghost_smtp_port",
"label":"STMP port"
},
{
"defaultValue":"your_email@gmail.com",
"description":"Your user on the SMTP service",
"id":"$$cap_ghost_smtp_user",
"label":"STMP user"
},
{
"description":"Your password on the SMTP service",
"id":"$$cap_ghost_smtp_password",
"label":"STMP password"
},
{
"defaultValue":"your_email@gmail.com",
"description":"STMP from address",
"id":"$$cap_ghost_smtp_from",
"label":"STMP from address"
}
]
"$$cap_appname-db": {
"environment": {
"MARIADB_DATABASE": "ghost",
"MARIADB_PASSWORD": "$$cap_db_ghost_password",
"MARIADB_ROOT_PASSWORD": "$$cap_db_password",
"MARIADB_ROOT_USER": "$$cap_db_user",
"MARIADB_USER": "ghost"
},
"notExposeAsWebApp": "true",
"image": "bitnami/mariadb:10.1",
"restart": "always",
"volumes": ["$$cap_appname-mariadb-data:/bitnami"]
}
},
"version": "2",
"volumes": {
"$$cap_appname-data": {},
"$$cap_appname-mariadb-data": {}
}
},
"instructions": {
"end": "Ghost is deployed and available as $$cap_appname. \n\n IMPORTANT: It will take up to 2 minutes for Ghost to be ready. Before that, you might see 502 error page.\n",
"start": "Ghost is a fully open source, adaptable platform for building and running a modern online publication. We power blogs, magazines and journalists from Zappos to Sky News."
},
"variables": [
{
"defaultValue": "2.16.4",
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/bitnami/ghost/tags",
"id": "$$cap_ghost_version",
"label": "Ghost Version",
"validRegex": "/^([^\\s^\\/])+$/"
},
{
"defaultValue": "admin",
"description": "Root user that will be created on MariaDB",
"id": "$$cap_db_user",
"label": "MariaDB root user",
"validRegex": "/^([^\\s^\\/])+$/"
},
{
"description": "Root password that will be created on MariaDB",
"id": "$$cap_db_password",
"label": "MariaDB root password",
"validRegex": "/^(?=.*\\d).{10,}$/"
},
{
"description": "Password for database user named `ghost`",
"id": "$$cap_db_ghost_password",
"label": "MariaDB Ghost password",
"validRegex": "/^(?=.*\\d).{10,}$/"
},
{
"defaultValue": "youremail@example.com",
"description": "Ghost application email, you will use it to login",
"id": "$$cap_ghost_email",
"label": "Ghost email",
"validRegex": "/^([^\\s^\\/])+$/"
},
{
"description": "The admin password must be at least 10 characters, and at least one number and letter",
"id": "$$cap_ghost_password",
"label": "Ghost password",
"validRegex": "/^(?=.*\\d).{10,}$/"
},
{
"defaultValue": "blog.example.com",
"description": "Enter the URL that is used to access your publication",
"id": "$$cap_ghost_host",
"label": "Ghost Host",
"validRegex": "/^([^\\s^\\/])+$/"
},
{
"defaultValue": "http",
"description": "Protocol that you will be using",
"id": "$$cap_ghost_protocol",
"label": "Ghost Protocol",
"validRegex": "/^([^\\s^\\/])+$/"
},
{
"defaultValue": "80",
"description": "Port that you will be using",
"id": "$$cap_ghost_port",
"label": "Ghost Port"
},
{
"defaultValue": "GMail",
"description": "Ghost uses node mailer, check this docs https://docs.ghost.org/concepts/config/#mail",
"id": "$$cap_ghost_smtp_service",
"label": "STMP service to use"
},
{
"defaultValue": "smtp.gmail.com",
"description": "The STMP host you will be using",
"id": "$$cap_ghost_smtp_host",
"label": "STMP host"
},
{
"defaultValue": "465",
"description": "The STMP port you will be using",
"id": "$$cap_ghost_smtp_port",
"label": "STMP port"
},
{
"defaultValue": "your_email@gmail.com",
"description": "Your user on the SMTP service",
"id": "$$cap_ghost_smtp_user",
"label": "STMP user"
},
{
"description": "Your password on the SMTP service",
"id": "$$cap_ghost_smtp_password",
"label": "STMP password"
},
{
"defaultValue": "your_email@gmail.com",
"description": "STMP from address",
"id": "$$cap_ghost_smtp_from",
"label": "STMP from address"
}
]
}

View File

@ -9,9 +9,7 @@
"$$cap_appname-db": {
"image": "mysql:$$cap_mysql_version",
"notExposeAsWebApp": "true",
"volumes": [
"$$cap_appname-db-data:/var/lib/mysql"
],
"volumes": ["$$cap_appname-db-data:/var/lib/mysql"],
"restart": "always",
"environment": {
"MYSQL_ROOT_PASSWORD": "$$cap_db_pass",
@ -21,14 +19,10 @@
}
},
"$$cap_appname-gitea": {
"depends_on": [
"$$cap_appname-db"
],
"depends_on": ["$$cap_appname-db"],
"image": "gitea/gitea:$$cap_gitea_version",
"containerHttpPort": "3000",
"volumes": [
"$$cap_appname-data:/data"
],
"volumes": ["$$cap_appname-data:/data"],
"restart": "always",
"environment": {
"RUN_MODE": "prod",
@ -44,7 +38,8 @@
"start": "A painless self-hosted Git service. Gitea is a community managed fork of Gogs.\n\n Enter your Gitea Configuration parameters and click on next. A MySQL (database) and a Gitea container will be created for you. The process will take about a minute to finish.",
"end": "Gitea is deployed and available as $$cap_appname-gitea.\n\n Since Gitea is running inside a container, you can optionally map a port (not 22) of the host to port 22 of the container, if you want to use git commands over SSH. You can perform port mapping in your CapRover dashboard, in App Config section.\n\n IMPORTANT: It will take up to 2 minutes for Gitea to be ready. Before that, you might see 502 error page.\n"
},
"variables": [{
"variables": [
{
"id": "$$cap_db_pass",
"label": "MySQL Root password",
"description": "",
@ -65,4 +60,4 @@
"validRegex": "/^([^\\s^\\/])+$/"
}
]
}
}

View File

@ -25,7 +25,8 @@
"start": "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security. \n\n More about this container:\n https://hub.docker.com/r/gitlab/gitlab-ce/ \n\n Hardware and Software requeriments can be found here:\n https://docs.gitlab.com/ce/install/requirements.html\n\n For security reasons, no port mapping is created, those can be created after deploying the app.\n More information about Caprover's Firewall & Port Forwarding and configuration can be found here:\nhttps://caprover.com/docs/firewall.html \n\nMore information about gitlab's docker configuration can be found here:\n https://docs.gitlab.com/omnibus/docker/#configure-gitlab\n\n It can take some time (2-3 minutes) for the service to launch in a new container. Check the \"Deployment\" tab logs to determine once GitLab is ready.",
"end": "Gitlab-CE is deployed and available as srv-captain--$$cap_appname:80 to other apps."
},
"variables": [{
"variables": [
{
"id": "$$cap_gitlab_version",
"label": "Gitlab-CE Version Tag",
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/gitlab/gitlab-ce/tags",
@ -38,4 +39,4 @@
"description": "More information here: https://docs.gitlab.com/omnibus/docker/#pre-configure-docker-container"
}
]
}
}

View File

@ -6,22 +6,23 @@
"dockerCompose": {
"version": "3",
"services": {
"$$cap_appname": {
"image": "gitlab/gitlab-runner:$$cap_gitlab-runner_version",
"notExposeAsWebApp": "true",
"volumes": [
"$$cap_appname-data:/etc/gitlab-runner",
"/var/run/docker.sock:/var/run/docker.sock"
],
"restart": "always"
}
"$$cap_appname": {
"image": "gitlab/gitlab-runner:$$cap_gitlab-runner_version",
"notExposeAsWebApp": "true",
"volumes": [
"$$cap_appname-data:/etc/gitlab-runner",
"/var/run/docker.sock:/var/run/docker.sock"
],
"restart": "always"
}
}
},
"instructions": {
"start": "GitLab CI/CD is the CI/CD solution integrated into GitLab. With this one-click-app, you receive a self-hosted runner for your pipelines. To enable you to build Docker Images in your pipelines, we mount /var/run/docker.sock into the container of the runner (see https://docs.gitlab.com/ee/ci/docker/using_docker_build.html#use-docker-socket-binding for more info). As a consequence, this container will have full access to all your other containers. If you don't need this functionality, feel free to manually remove the mounted Docker socket from the volumes.",
"start": "GitLab CI/CD is the CI/CD solution integrated into GitLab. With this one-click-app, you receive a self-hosted runner for your pipelines. To enable you to build Docker Images in your pipelines, we mount /var/run/docker.sock into the container of the runner (see https://docs.gitlab.com/ee/ci/docker/using_docker_build.html#use-docker-socket-binding for more info). As a consequence, this container will have full access to all your other containers. If you don't need this functionality, feel free to manually remove the mounted Docker socket from the volumes.",
"end": "Head over to https://docs.gitlab.com/runner/register/ to register your newly installed runner. You can run 'docker exec -ti <runner-image-name> /bin/sh' to connect to the newly created container and follow the tutorial."
},
"variables": [{
"variables": [
{
"id": "$$cap_gitlab-runner_version",
"label": "GitLab-Runner Version",
"defaultValue": "v11.11.0",

View File

@ -17,7 +17,7 @@
},
"$$cap_appname-elasticsearch": {
"notExposeAsWebApp": "true",
"image" : "docker.elastic.co/elasticsearch/elasticsearch:$$cap_elasticsearch_version",
"image": "docker.elastic.co/elasticsearch/elasticsearch:$$cap_elasticsearch_version",
"volumes": [
"$$cap_appname-elasticsearch-data:/usr/share/elasticsearch/data"
],
@ -41,10 +41,10 @@
"containerHttpPort": "9000",
"restart": "always",
"environment": {
"GRAYLOG_MONGODB_URI": "mongodb://srv-captain--$$cap_appname-mongodb/graylog",
"GRAYLOG_ELASTICSEARCH_HOSTS": "http://srv-captain--$$cap_appname-elasticsearch:$$cap_container_port",
"GRAYLOG_HTTP_EXTERNAL_URI": "//$$cap_appname.$$cap_root_domain/",
"GRAYLOG_ROOT_PASSWORD_SHA2": "$$cap_graylog_password"
"GRAYLOG_MONGODB_URI": "mongodb://srv-captain--$$cap_appname-mongodb/graylog",
"GRAYLOG_ELASTICSEARCH_HOSTS": "http://srv-captain--$$cap_appname-elasticsearch:$$cap_container_port",
"GRAYLOG_HTTP_EXTERNAL_URI": "//$$cap_appname.$$cap_root_domain/",
"GRAYLOG_ROOT_PASSWORD_SHA2": "$$cap_graylog_password"
}
}
}
@ -53,19 +53,22 @@
"start": "Graylog Log Management. \n\nNOTICE!:\n Be sure to extend the virtual memory on all your hosts! \n 1. echo 'vm.max_map_count=262144' >> /etc/sysctl.conf\n 2. sysctl -p",
"end": "Deployment of Graylog if finished. You will see 502 errors for the next 5+ minutes while Graylog starts up. Goto <YOUR-APP-URL> and login as \"admin\" with your unhashed password."
},
"variables": [{
"variables": [
{
"id": "$$cap_graylog_version",
"label": "Graylog Version",
"defaultValue": "3.1",
"description": "Checkout their docker page for the valid tags https://hub.docker.com/r/graylog/graylog/tags",
"validRegex": "/^([^\\s^\\/])+$/"
}, {
},
{
"id": "$$cap_graylog_password",
"label": "Graylog Admin Password",
"defaultValue": "",
"description": "Admin password SHA256 encoded. Generate with: echo -n \"<password>\" | shasum -a 256 | cut -d\" \" -f1",
"validRegex": "/^([^\\s^\\/])+$/"
}, {
},
{
"id": "$$cap_mongo_version",
"label": "MongoDB Version",
"defaultValue": "4",
@ -78,37 +81,43 @@
"description": "Checkout the releases overview: https://www.elastic.co/de/downloads/elasticsearch",
"defaultValue": "6.7.1",
"validRegex": "/^([^\\s^\\/])+$/"
},{
},
{
"id": "$$cap_elasticsearch_cluster_name",
"label": "Elasticsearch Cluster Name",
"description": "Only nodes within the same cluster name can be combined",
"defaultValue": "elasticsearch-cluster",
"validRegex": "/^([^\\s^\\/])+$/"
},{
},
{
"id": "$$cap_elasticsearch_unicast_hosts",
"label": "Elasticsearch Unicasts hosts",
"description": "References to other node to attach to. (for example: srv-captain--XXX)",
"defaultValue": "false",
"validRegex": "/^([^\\s^\\/])+$/"
},{
},
{
"id": "$$cap_elasticsearch_node_data",
"label": "Elasticsearch Node Data",
"description": "Should the node used for storing data? (true / false)",
"defaultValue": "true",
"validRegex": "/^([^\\s^\\/])+$/"
},{
},
{
"id": "$$cap_elasticsearch_node_master",
"label": "Elasticsearch Node Master",
"description": "Define node as master-eligible (usual first node YES, others NO).",
"defaultValue": "true",
"validRegex": "/^([^\\s^\\/])+$/"
},{
},
{
"id": "$$cap_elasticsearch_minimum_master_nodes",
"label": "Elasticsearch Minimum Master Nodes",
"description": "Define minimum amount of master (N) ( best practice: ceil(N/2 + 1) ).",
"defaultValue": "1",
"validRegex": "/^([0-9])+$/"
},{
},
{
"id": "$$cap_container_port",
"label": "Elasticsearch Container TCP Port",
"defaultValue": "9200",

View File

@ -1,56 +1,54 @@
{
"captainVersion": "2",
"documentation": "Taken from https://hub.docker.com/r/linuxserver/grocy/tags",
"displayName": "Grocy",
"description": "Grocy is an ERP system for your kitchen and groceries! Cut down on food waste, and manage your chores with this brilliant utulity.",
"dockerCompose": {
"version": "3.1",
"services": {
"$$cap_appname": {
"image": "linuxserver/grocy:$$cap_grocy_version",
"environment": {
"TZ": "$$cap_tz",
"PUID": "$$cap_puid",
"PGID": "$$cap_guid"
"captainVersion": "2",
"documentation": "Taken from https://hub.docker.com/r/linuxserver/grocy/tags",
"displayName": "Grocy",
"description": "Grocy is an ERP system for your kitchen and groceries! Cut down on food waste, and manage your chores with this brilliant utulity.",
"dockerCompose": {
"version": "3.1",
"services": {
"$$cap_appname": {
"image": "linuxserver/grocy:$$cap_grocy_version",
"environment": {
"TZ": "$$cap_tz",
"PUID": "$$cap_puid",
"PGID": "$$cap_guid"
},
"volumes": ["$$cap_appname-config:/config"]
}
}
},
"instructions": {
"start": "Grocy is an ERP system for your kitchen and groceries! Cut down on food waste, and manage your chores with this brilliant utulity. Keep track of your purchaes, how much food you are wasting, what chores need doing and what batteries need charging with this proudly Open Source tool.",
"end": "Grocy has been successfully deployed. Please wait about 2-5 minutes before accessing Grocy.\n\n\nUsername and password are both admin."
},
"variables": [
{
"id": "$$cap_grocy_version",
"label": "Grocy Version",
"defaultValue": "v2.7.1-ls58",
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/linuxserver/grocy/tags",
"validRegex": "/^([^\\s^\\/])+$/"
},
"volumes": [
"$$cap_appname-config:/config"
]
}
}
},
"instructions": {
"start": "Grocy is an ERP system for your kitchen and groceries! Cut down on food waste, and manage your chores with this brilliant utulity. Keep track of your purchaes, how much food you are wasting, what chores need doing and what batteries need charging with this proudly Open Source tool.",
"end": "Grocy has been successfully deployed. Please wait about 2-5 minutes before accessing Grocy.\n\n\nUsername and password are both admin."
},
"variables": [
{
"id": "$$cap_grocy_version",
"label": "Grocy Version",
"defaultValue": "v2.7.1-ls58",
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/linuxserver/grocy/tags",
"validRegex": "/^([^\\s^\\/])+$/"
},
{
"id": "$$cap_puid",
"label": "User ID",
"defaultValue": "1000",
"description": "User ID that the process uses",
"validRegex": "/.{1,}/"
},
{
"id": "$$cap_guid",
"label": "Group ID",
"defaultValue": "1000",
"description": "Group ID that the process uses",
"validRegex": "/.{1,}/"
},
{
"id": "$$cap_tz",
"label": "Time Zone",
"defaultValue": "America/New_York",
"description": "Get yours from https://en.wikipedia.org/wiki/List_of_tz_database_time_zones",
"validRegex": "/.{1,}/"
}
]
{
"id": "$$cap_puid",
"label": "User ID",
"defaultValue": "1000",
"description": "User ID that the process uses",
"validRegex": "/.{1,}/"
},
{
"id": "$$cap_guid",
"label": "Group ID",
"defaultValue": "1000",
"description": "Group ID that the process uses",
"validRegex": "/.{1,}/"
},
{
"id": "$$cap_tz",
"label": "Time Zone",
"defaultValue": "America/New_York",
"description": "Get yours from https://en.wikipedia.org/wiki/List_of_tz_database_time_zones",
"validRegex": "/.{1,}/"
}
]
}

View File

@ -9,11 +9,9 @@
"$$cap_appname-db": {
"image": "postgres:$$cap_postgres_version",
"notExposeAsWebApp": "true",
"volumes": [
"$$cap_appname-db-data:/var/lib/postgresql/data"
],
"volumes": ["$$cap_appname-db-data:/var/lib/postgresql/data"],
"restart": "always",
"environment": {
"environment": {
"POSTGRES_USER": "$$cap_pg_user",
"POSTGRES_PASSWORD": "$$cap_pg_pass",
"POSTGRES_DB": "$$cap_pg_db",
@ -22,45 +20,43 @@
},
"$$cap_appname": {
"image": "hasura/graphql-engine:$$cap_hasura_version",
"containerHttpPort":"8080",
"depends_on": [
"$$cap_appname-db"
],
"containerHttpPort": "8080",
"depends_on": ["$$cap_appname-db"],
"restart": "always",
"environment": {
"HASURA_GRAPHQL_DATABASE_URL": "postgres://$$cap_pg_user:$$cap_pg_pass@srv-captain--$$cap_appname-db:5432/$$cap_pg_db",
"HASURA_GRAPHQL_ENABLE_CONSOLE": "true",
"HASURA_GRAPHQL_ADMIN_SECRET":"$$cap_admin_secret",
"HASURA_GRAPHQL_ADMIN_SECRET": "$$cap_admin_secret",
"HASURA_GRAPHQL_ENABLED_LOG_TYPES": "startup, http-log, webhook-log, websocket-log, query-log"
}
}
}
},
"instructions":{
"end":"Hasura is deployed and available as $$cap_appname. \n\n IMPORTANT: It will take up to 2 minutes for Hasura to be ready. Before that, you might see 502 error page.\n",
"start":"Instant Realtime GraphQL on Postgres with web admin cosole. This Docker Compose setup runs Hasura GraphQL Engine along with a Postgres database with the PostGIS extension."
},
"variables":[
"instructions": {
"end": "Hasura is deployed and available as $$cap_appname. \n\n IMPORTANT: It will take up to 2 minutes for Hasura to be ready. Before that, you might see 502 error page.\n",
"start": "Instant Realtime GraphQL on Postgres with web admin cosole. This Docker Compose setup runs Hasura GraphQL Engine along with a Postgres database with the PostGIS extension."
},
"variables": [
{
"defaultValue":"v1.2.2",
"description":"Check out their GitHub page for their latest version https://github.com/hasura/graphql-engine",
"id":"$$cap_hasura_version",
"label":"Hasura Version",
"validRegex":"/^([^\\s^\\/])+$/"
"defaultValue": "v1.2.2",
"description": "Check out their GitHub page for their latest version https://github.com/hasura/graphql-engine",
"id": "$$cap_hasura_version",
"label": "Hasura Version",
"validRegex": "/^([^\\s^\\/])+$/"
},
{
"defaultValue":"12",
"id":"$$cap_postgres_version",
"label":"Postgres Version",
"validRegex":"/^([^\\s^\\/])+$/"
},
{
"description":"The admin secret gives you access to the console.",
"id":"$$cap_admin_secret",
"label":"Hasura admin secret(password)",
"validRegex":"/^(?=.*\\d).{10,}$/"
"defaultValue": "12",
"id": "$$cap_postgres_version",
"label": "Postgres Version",
"validRegex": "/^([^\\s^\\/])+$/"
},
{
{
"description": "The admin secret gives you access to the console.",
"id": "$$cap_admin_secret",
"label": "Hasura admin secret(password)",
"validRegex": "/^(?=.*\\d).{10,}$/"
},
{
"id": "$$cap_pg_user",
"label": "Postgres Username",
"description": "",
@ -84,6 +80,5 @@
"description": "For example, --data-checksums",
"validRegex": "/.{0,}/"
}
]
}
]
}

View File

@ -10,9 +10,7 @@
"image": "jenkins/jenkins:$$cap_jenkins_version",
"containerHttpPort": "8080",
"restart": "always",
"volumes": [
"$$cap_appname-jenkins-home:/var/jenkins_home"
]
"volumes": ["$$cap_appname-jenkins-home:/var/jenkins_home"]
}
}
},
@ -29,4 +27,4 @@
"validRegex": "/^([^\\s^\\/])+$/"
}
]
}
}

View File

@ -4,208 +4,211 @@
"displayName": "Jitsi",
"description": "Free open-source video conferencing for web & mobile",
"dockerCompose": {
"version": "3",
"services": {
"$$cap_appname-web": {
"image": "jitsi/web:$$cap_tag_version",
"restart": "unless-stopped",
"ports": ["$$cap_https_port:443", "$$cap_http_port:80"],
"volumes": [
"$$cap_appname-web:/config",
"$$cap_appname-web-transcripts:/usr/share/jitsi-meet/transcripts"
],
"environment": {
"JICOFO_COMPONENT_SECRET": "$$cap_password",
"JICOFO_AUTH_PASSWORD": "$$cap_password",
"JVB_AUTH_PASSWORD": "$$cap_password",
"JIGASI_XMPP_PASSWORD": "$$cap_password",
"JIBRI_RECORDER_PASSWORD": "$$cap_password",
"JIBRI_XMPP_PASSWORD": "$$cap_password",
"HTTP_PORT": "$$cap_http_port",
"HTTPS_PORT": "$$cap_https_port",
"TZ": "$$cap_timezone",
"XMPP_DOMAIN": "meet.jitsi",
"XMPP_SERVER": "srv-captain--$$cap_appname-prosody",
"XMPP_BOSH_URL_BASE": "http://srv-captain--$$cap_appname-prosody:5280",
"XMPP_AUTH_DOMAIN": "auth.meet.jitsi",
"XMPP_MUC_DOMAIN": "muc.meet.jitsi",
"XMPP_INTERNAL_MUC_DOMAIN": "internal-muc.meet.jitsi",
"XMPP_GUEST_DOMAIN": "guest.meet.jitsi",
"XMPP_MODULES": "",
"XMPP_MUC_MODULES": "",
"XMPP_INTERNAL_MUC_MODULES": "",
"JVB_BREWERY_MUC": "jvbbrewery",
"JVB_AUTH_USER": "jvb",
"JVB_STUN_SERVERS": "meet-jit-si-turnrelay.jitsi.net:443",
"JVB_PORT": "$$cap_jvb_udp",
"JVB_TCP_HARVESTER_DISABLED": "true",
"JVB_TCP_PORT": "$$cap_jvb_tcp",
"JICOFO_AUTH_USER": "focus",
"JIGASI_XMPP_USER": "jigasi",
"JIGASI_BREWERY_MUC": "jigasibrewery",
"JIGASI_PORT_MIN": "20000",
"JIGASI_PORT_MAX": "20050",
"XMPP_RECORDER_DOMAIN": "recorder.meet.jitsi",
"JIBRI_RECORDER_USER": "recorder",
"JIBRI_RECORDING_DIR": "/config/recordings",
"JIBRI_FINALIZE_RECORDING_SCRIPT_PATH": "/config/finalize.sh",
"JIBRI_XMPP_USER": "jibri",
"JIBRI_BREWERY_MUC": "jibribrewery",
"JIBRI_PENDING_TIMEOUT": "90",
"JIBRI_STRIP_DOMAIN_JID": "muc",
"JIBRI_LOGS_DIR": "/config/logs"
}
},
"$$cap_appname-prosody": {
"image": "jitsi/prosody:$$cap_tag_version",
"notExposeAsWebApp": "true",
"restart": "unless-stopped",
"expose": ["5222", "5347","5280"],
"volumes": ["$$cap_appname-prosody:/config"],
"environment": {
"JICOFO_COMPONENT_SECRET": "$$cap_password",
"JICOFO_AUTH_PASSWORD": "$$cap_password",
"JVB_AUTH_PASSWORD": "$$cap_password",
"JIGASI_XMPP_PASSWORD": "$$cap_password",
"JIBRI_RECORDER_PASSWORD": "$$cap_password",
"JIBRI_XMPP_PASSWORD": "$$cap_password",
"HTTP_PORT": "$$cap_http_port",
"HTTPS_PORT": "$$cap_https_port",
"TZ": "$$cap_timezone",
"XMPP_DOMAIN": "meet.jitsi",
"XMPP_SERVER": "srv-captain--$$cap_appname-prosody",
"XMPP_BOSH_URL_BASE": "http://srv-captain--$$cap_appname-prosody:5280",
"XMPP_AUTH_DOMAIN": "auth.meet.jitsi",
"XMPP_MUC_DOMAIN": "muc.meet.jitsi",
"XMPP_INTERNAL_MUC_DOMAIN": "internal-muc.meet.jitsi",
"XMPP_GUEST_DOMAIN": "guest.meet.jitsi",
"XMPP_MODULES": "",
"XMPP_MUC_MODULES": "",
"XMPP_INTERNAL_MUC_MODULES": "",
"JVB_BREWERY_MUC": "jvbbrewery",
"JVB_AUTH_USER": "jvb",
"JVB_STUN_SERVERS": "meet-jit-si-turnrelay.jitsi.net:443",
"JVB_PORT": "$$cap_jvb_udp",
"JVB_TCP_HARVESTER_DISABLED": "true",
"JVB_TCP_PORT": "$$cap_jvb_tcp",
"JICOFO_AUTH_USER": "focus",
"JIGASI_XMPP_USER": "jigasi",
"JIGASI_BREWERY_MUC": "jigasibrewery",
"JIGASI_PORT_MIN": "20000",
"JIGASI_PORT_MAX": "20050",
"XMPP_RECORDER_DOMAIN": "recorder.meet.jitsi",
"JIBRI_RECORDER_USER": "recorder",
"JIBRI_RECORDING_DIR": "/config/recordings",
"JIBRI_FINALIZE_RECORDING_SCRIPT_PATH": "/config/finalize.sh",
"JIBRI_XMPP_USER": "jibri",
"JIBRI_BREWERY_MUC": "jibribrewery",
"JIBRI_PENDING_TIMEOUT": "90",
"JIBRI_STRIP_DOMAIN_JID": "muc",
"JIBRI_LOGS_DIR": "/config/logs"
}
},
"$$cap_appname-jicofo": {
"image": "jitsi/jicofo:$$cap_tag_version",
"notExposeAsWebApp": "true",
"restart": "unless-stopped",
"volumes": ["$$cap_appname-jicofo:/config"],
"environment": {
"JICOFO_COMPONENT_SECRET": "$$cap_password",
"JICOFO_AUTH_PASSWORD": "$$cap_password",
"JVB_AUTH_PASSWORD": "$$cap_password",
"JIGASI_XMPP_PASSWORD": "$$cap_password",
"JIBRI_RECORDER_PASSWORD": "$$cap_password",
"JIBRI_XMPP_PASSWORD": "$$cap_password",
"HTTP_PORT": "$$cap_http_port",
"HTTPS_PORT": "$$cap_https_port",
"TZ": "$$cap_timezone",
"XMPP_DOMAIN": "meet.jitsi",
"XMPP_SERVER": "srv-captain--$$cap_appname-prosody",
"XMPP_BOSH_URL_BASE": "http://srv-captain--$$cap_appname-prosody:5280",
"XMPP_AUTH_DOMAIN": "auth.meet.jitsi",
"XMPP_MUC_DOMAIN": "muc.meet.jitsi",
"XMPP_INTERNAL_MUC_DOMAIN": "internal-muc.meet.jitsi",
"XMPP_GUEST_DOMAIN": "guest.meet.jitsi",
"XMPP_MODULES": "",
"XMPP_MUC_MODULES": "",
"XMPP_INTERNAL_MUC_MODULES": "",
"JVB_BREWERY_MUC": "jvbbrewery",
"JVB_AUTH_USER": "jvb",
"JVB_STUN_SERVERS": "meet-jit-si-turnrelay.jitsi.net:443",
"JVB_PORT": "$$cap_jvb_udp",
"JVB_TCP_HARVESTER_DISABLED": "true",
"JVB_TCP_PORT": "$$cap_jvb_tcp",
"JICOFO_AUTH_USER": "focus",
"JIGASI_XMPP_USER": "jigasi",
"JIGASI_BREWERY_MUC": "jigasibrewery",
"JIGASI_PORT_MIN": "20000",
"JIGASI_PORT_MAX": "20050",
"XMPP_RECORDER_DOMAIN": "recorder.meet.jitsi",
"JIBRI_RECORDER_USER": "recorder",
"JIBRI_RECORDING_DIR": "/config/recordings",
"JIBRI_FINALIZE_RECORDING_SCRIPT_PATH": "/config/finalize.sh",
"JIBRI_XMPP_USER": "jibri",
"JIBRI_BREWERY_MUC": "jibribrewery",
"JIBRI_PENDING_TIMEOUT": "90",
"JIBRI_STRIP_DOMAIN_JID": "muc",
"JIBRI_LOGS_DIR": "/config/logs"
},
"depends_on": ["$$cap_appname-prosody"]
},
"$$cap_appname-jvb": {
"image": "jitsi/jvb:$$cap_tag_version",
"notExposeAsWebApp": "true",
"restart": "unless-stopped",
"ports": ["$$cap_jvb_udp:$$cap_jvb_udp", "$$cap_jvb_tcp:$$cap_jvb_tcp"],
"volumes": ["$$cap_appname-jvb:/config"],
"environment": {
"JICOFO_COMPONENT_SECRET": "$$cap_password",
"JICOFO_AUTH_PASSWORD": "$$cap_password",
"JVB_AUTH_PASSWORD": "$$cap_password",
"JIGASI_XMPP_PASSWORD": "$$cap_password",
"JIBRI_RECORDER_PASSWORD": "$$cap_password",
"JIBRI_XMPP_PASSWORD": "$$cap_password",
"HTTP_PORT": "$$cap_http_port",
"HTTPS_PORT": "$$cap_https_port",
"TZ": "$$cap_timezone",
"XMPP_DOMAIN": "meet.jitsi",
"XMPP_SERVER": "srv-captain--$$cap_appname-prosody",
"XMPP_BOSH_URL_BASE": "http://srv-captain--$$cap_appname-prosody:5280",
"XMPP_AUTH_DOMAIN": "auth.meet.jitsi",
"XMPP_MUC_DOMAIN": "muc.meet.jitsi",
"XMPP_INTERNAL_MUC_DOMAIN": "internal-muc.meet.jitsi",
"XMPP_GUEST_DOMAIN": "guest.meet.jitsi",
"XMPP_MODULES": "",
"XMPP_MUC_MODULES": "",
"XMPP_INTERNAL_MUC_MODULES": "",
"JVB_BREWERY_MUC": "jvbbrewery",
"JVB_AUTH_USER": "jvb",
"JVB_STUN_SERVERS": "meet-jit-si-turnrelay.jitsi.net:443",
"JVB_PORT": "$$cap_jvb_udp",
"JVB_TCP_HARVESTER_DISABLED": "true",
"JVB_TCP_PORT": "$$cap_jvb_tcp",
"JICOFO_AUTH_USER": "focus",
"JIGASI_XMPP_USER": "jigasi",
"JIGASI_BREWERY_MUC": "jigasibrewery",
"JIGASI_PORT_MIN": "20000",
"JIGASI_PORT_MAX": "20050",
"XMPP_RECORDER_DOMAIN": "recorder.meet.jitsi",
"JIBRI_RECORDER_USER": "recorder",
"JIBRI_RECORDING_DIR": "/config/recordings",
"JIBRI_FINALIZE_RECORDING_SCRIPT_PATH": "/config/finalize.sh",
"JIBRI_XMPP_USER": "jibri",
"JIBRI_BREWERY_MUC": "jibribrewery",
"JIBRI_PENDING_TIMEOUT": "90",
"JIBRI_STRIP_DOMAIN_JID": "muc",
"JIBRI_LOGS_DIR": "/config/logs"
},
"depends_on": ["$$cap_appname-prosody"]
"version": "3",
"services": {
"$$cap_appname-web": {
"image": "jitsi/web:$$cap_tag_version",
"restart": "unless-stopped",
"ports": ["$$cap_https_port:443", "$$cap_http_port:80"],
"volumes": [
"$$cap_appname-web:/config",
"$$cap_appname-web-transcripts:/usr/share/jitsi-meet/transcripts"
],
"environment": {
"JICOFO_COMPONENT_SECRET": "$$cap_password",
"JICOFO_AUTH_PASSWORD": "$$cap_password",
"JVB_AUTH_PASSWORD": "$$cap_password",
"JIGASI_XMPP_PASSWORD": "$$cap_password",
"JIBRI_RECORDER_PASSWORD": "$$cap_password",
"JIBRI_XMPP_PASSWORD": "$$cap_password",
"HTTP_PORT": "$$cap_http_port",
"HTTPS_PORT": "$$cap_https_port",
"TZ": "$$cap_timezone",
"XMPP_DOMAIN": "meet.jitsi",
"XMPP_SERVER": "srv-captain--$$cap_appname-prosody",
"XMPP_BOSH_URL_BASE": "http://srv-captain--$$cap_appname-prosody:5280",
"XMPP_AUTH_DOMAIN": "auth.meet.jitsi",
"XMPP_MUC_DOMAIN": "muc.meet.jitsi",
"XMPP_INTERNAL_MUC_DOMAIN": "internal-muc.meet.jitsi",
"XMPP_GUEST_DOMAIN": "guest.meet.jitsi",
"XMPP_MODULES": "",
"XMPP_MUC_MODULES": "",
"XMPP_INTERNAL_MUC_MODULES": "",
"JVB_BREWERY_MUC": "jvbbrewery",
"JVB_AUTH_USER": "jvb",
"JVB_STUN_SERVERS": "meet-jit-si-turnrelay.jitsi.net:443",
"JVB_PORT": "$$cap_jvb_udp",
"JVB_TCP_HARVESTER_DISABLED": "true",
"JVB_TCP_PORT": "$$cap_jvb_tcp",
"JICOFO_AUTH_USER": "focus",
"JIGASI_XMPP_USER": "jigasi",
"JIGASI_BREWERY_MUC": "jigasibrewery",
"JIGASI_PORT_MIN": "20000",
"JIGASI_PORT_MAX": "20050",
"XMPP_RECORDER_DOMAIN": "recorder.meet.jitsi",
"JIBRI_RECORDER_USER": "recorder",
"JIBRI_RECORDING_DIR": "/config/recordings",
"JIBRI_FINALIZE_RECORDING_SCRIPT_PATH": "/config/finalize.sh",
"JIBRI_XMPP_USER": "jibri",
"JIBRI_BREWERY_MUC": "jibribrewery",
"JIBRI_PENDING_TIMEOUT": "90",
"JIBRI_STRIP_DOMAIN_JID": "muc",
"JIBRI_LOGS_DIR": "/config/logs"
}
},
"$$cap_appname-prosody": {
"image": "jitsi/prosody:$$cap_tag_version",
"notExposeAsWebApp": "true",
"restart": "unless-stopped",
"expose": ["5222", "5347", "5280"],
"volumes": ["$$cap_appname-prosody:/config"],
"environment": {
"JICOFO_COMPONENT_SECRET": "$$cap_password",
"JICOFO_AUTH_PASSWORD": "$$cap_password",
"JVB_AUTH_PASSWORD": "$$cap_password",
"JIGASI_XMPP_PASSWORD": "$$cap_password",
"JIBRI_RECORDER_PASSWORD": "$$cap_password",
"JIBRI_XMPP_PASSWORD": "$$cap_password",
"HTTP_PORT": "$$cap_http_port",
"HTTPS_PORT": "$$cap_https_port",
"TZ": "$$cap_timezone",
"XMPP_DOMAIN": "meet.jitsi",
"XMPP_SERVER": "srv-captain--$$cap_appname-prosody",
"XMPP_BOSH_URL_BASE": "http://srv-captain--$$cap_appname-prosody:5280",
"XMPP_AUTH_DOMAIN": "auth.meet.jitsi",
"XMPP_MUC_DOMAIN": "muc.meet.jitsi",
"XMPP_INTERNAL_MUC_DOMAIN": "internal-muc.meet.jitsi",
"XMPP_GUEST_DOMAIN": "guest.meet.jitsi",
"XMPP_MODULES": "",
"XMPP_MUC_MODULES": "",
"XMPP_INTERNAL_MUC_MODULES": "",
"JVB_BREWERY_MUC": "jvbbrewery",
"JVB_AUTH_USER": "jvb",
"JVB_STUN_SERVERS": "meet-jit-si-turnrelay.jitsi.net:443",
"JVB_PORT": "$$cap_jvb_udp",
"JVB_TCP_HARVESTER_DISABLED": "true",
"JVB_TCP_PORT": "$$cap_jvb_tcp",
"JICOFO_AUTH_USER": "focus",
"JIGASI_XMPP_USER": "jigasi",
"JIGASI_BREWERY_MUC": "jigasibrewery",
"JIGASI_PORT_MIN": "20000",
"JIGASI_PORT_MAX": "20050",
"XMPP_RECORDER_DOMAIN": "recorder.meet.jitsi",
"JIBRI_RECORDER_USER": "recorder",
"JIBRI_RECORDING_DIR": "/config/recordings",
"JIBRI_FINALIZE_RECORDING_SCRIPT_PATH": "/config/finalize.sh",
"JIBRI_XMPP_USER": "jibri",
"JIBRI_BREWERY_MUC": "jibribrewery",
"JIBRI_PENDING_TIMEOUT": "90",
"JIBRI_STRIP_DOMAIN_JID": "muc",
"JIBRI_LOGS_DIR": "/config/logs"
}
},
"$$cap_appname-jicofo": {
"image": "jitsi/jicofo:$$cap_tag_version",
"notExposeAsWebApp": "true",
"restart": "unless-stopped",
"volumes": ["$$cap_appname-jicofo:/config"],
"environment": {
"JICOFO_COMPONENT_SECRET": "$$cap_password",
"JICOFO_AUTH_PASSWORD": "$$cap_password",
"JVB_AUTH_PASSWORD": "$$cap_password",
"JIGASI_XMPP_PASSWORD": "$$cap_password",
"JIBRI_RECORDER_PASSWORD": "$$cap_password",
"JIBRI_XMPP_PASSWORD": "$$cap_password",
"HTTP_PORT": "$$cap_http_port",
"HTTPS_PORT": "$$cap_https_port",
"TZ": "$$cap_timezone",
"XMPP_DOMAIN": "meet.jitsi",
"XMPP_SERVER": "srv-captain--$$cap_appname-prosody",
"XMPP_BOSH_URL_BASE": "http://srv-captain--$$cap_appname-prosody:5280",
"XMPP_AUTH_DOMAIN": "auth.meet.jitsi",
"XMPP_MUC_DOMAIN": "muc.meet.jitsi",
"XMPP_INTERNAL_MUC_DOMAIN": "internal-muc.meet.jitsi",
"XMPP_GUEST_DOMAIN": "guest.meet.jitsi",
"XMPP_MODULES": "",
"XMPP_MUC_MODULES": "",
"XMPP_INTERNAL_MUC_MODULES": "",
"JVB_BREWERY_MUC": "jvbbrewery",
"JVB_AUTH_USER": "jvb",
"JVB_STUN_SERVERS": "meet-jit-si-turnrelay.jitsi.net:443",
"JVB_PORT": "$$cap_jvb_udp",
"JVB_TCP_HARVESTER_DISABLED": "true",
"JVB_TCP_PORT": "$$cap_jvb_tcp",
"JICOFO_AUTH_USER": "focus",
"JIGASI_XMPP_USER": "jigasi",
"JIGASI_BREWERY_MUC": "jigasibrewery",
"JIGASI_PORT_MIN": "20000",
"JIGASI_PORT_MAX": "20050",
"XMPP_RECORDER_DOMAIN": "recorder.meet.jitsi",
"JIBRI_RECORDER_USER": "recorder",
"JIBRI_RECORDING_DIR": "/config/recordings",
"JIBRI_FINALIZE_RECORDING_SCRIPT_PATH": "/config/finalize.sh",
"JIBRI_XMPP_USER": "jibri",
"JIBRI_BREWERY_MUC": "jibribrewery",
"JIBRI_PENDING_TIMEOUT": "90",
"JIBRI_STRIP_DOMAIN_JID": "muc",
"JIBRI_LOGS_DIR": "/config/logs"
},
"depends_on": ["$$cap_appname-prosody"]
},
"$$cap_appname-jvb": {
"image": "jitsi/jvb:$$cap_tag_version",
"notExposeAsWebApp": "true",
"restart": "unless-stopped",
"ports": [
"$$cap_jvb_udp:$$cap_jvb_udp",
"$$cap_jvb_tcp:$$cap_jvb_tcp"
],
"volumes": ["$$cap_appname-jvb:/config"],
"environment": {
"JICOFO_COMPONENT_SECRET": "$$cap_password",
"JICOFO_AUTH_PASSWORD": "$$cap_password",
"JVB_AUTH_PASSWORD": "$$cap_password",
"JIGASI_XMPP_PASSWORD": "$$cap_password",
"JIBRI_RECORDER_PASSWORD": "$$cap_password",
"JIBRI_XMPP_PASSWORD": "$$cap_password",
"HTTP_PORT": "$$cap_http_port",
"HTTPS_PORT": "$$cap_https_port",
"TZ": "$$cap_timezone",
"XMPP_DOMAIN": "meet.jitsi",
"XMPP_SERVER": "srv-captain--$$cap_appname-prosody",
"XMPP_BOSH_URL_BASE": "http://srv-captain--$$cap_appname-prosody:5280",
"XMPP_AUTH_DOMAIN": "auth.meet.jitsi",
"XMPP_MUC_DOMAIN": "muc.meet.jitsi",
"XMPP_INTERNAL_MUC_DOMAIN": "internal-muc.meet.jitsi",
"XMPP_GUEST_DOMAIN": "guest.meet.jitsi",
"XMPP_MODULES": "",
"XMPP_MUC_MODULES": "",
"XMPP_INTERNAL_MUC_MODULES": "",
"JVB_BREWERY_MUC": "jvbbrewery",
"JVB_AUTH_USER": "jvb",
"JVB_STUN_SERVERS": "meet-jit-si-turnrelay.jitsi.net:443",
"JVB_PORT": "$$cap_jvb_udp",
"JVB_TCP_HARVESTER_DISABLED": "true",
"JVB_TCP_PORT": "$$cap_jvb_tcp",
"JICOFO_AUTH_USER": "focus",
"JIGASI_XMPP_USER": "jigasi",
"JIGASI_BREWERY_MUC": "jigasibrewery",
"JIGASI_PORT_MIN": "20000",
"JIGASI_PORT_MAX": "20050",
"XMPP_RECORDER_DOMAIN": "recorder.meet.jitsi",
"JIBRI_RECORDER_USER": "recorder",
"JIBRI_RECORDING_DIR": "/config/recordings",
"JIBRI_FINALIZE_RECORDING_SCRIPT_PATH": "/config/finalize.sh",
"JIBRI_XMPP_USER": "jibri",
"JIBRI_BREWERY_MUC": "jibribrewery",
"JIBRI_PENDING_TIMEOUT": "90",
"JIBRI_STRIP_DOMAIN_JID": "muc",
"JIBRI_LOGS_DIR": "/config/logs"
},
"depends_on": ["$$cap_appname-prosody"]
}
}
}
},
"instructions": {
"end": "Containers were created successfully. You should wait for a few minutes before enter to Jitsi Web.",
"start": "This one click app is based on Jitsi docker image."
"end": "Containers were created successfully. You should wait for a few minutes before enter to Jitsi Web.",
"start": "This one click app is based on Jitsi docker image."
},
"variables": [
{
@ -213,43 +216,42 @@
"description": "You can check the version in Docker Hub: https://hub.docker.com/r/jitsi/web/tags",
"defaultValue": "4416",
"id": "$$cap_tag_version"
},
{
"label": "HTTP Port",
"description": "This is the HTTP port to access Jitsi",
"defaultValue": "8000",
"id": "$$cap_http_port"
},
{
"label": "HTTPS Port",
"description": "This is the HTTPS port to access Jitsi",
"defaultValue": "8443",
"id": "$$cap_https_port"
},
{
"label": "Timezone",
"description": "This is the timezone for Jitsi",
"defaultValue": "Europe/Amsterdam",
"id": "$$cap_timezone"
},
{
"label": "JVB TCP Port",
"description": "TCP Port for JVB service",
"defaultValue": "4443",
"id": "$$cap_jvb_tcp"
},
{
"label": "JVB UDP Port",
"description": "UDP Port for JVB service",
"defaultValue": "10000",
"id": "$$cap_jvb_udp"
},
{
"label": "Password",
"description": "This is the password for Jitsi's services",
"defaultValue": "pass",
"id": "$$cap_password"
}
},
{
"label": "HTTP Port",
"description": "This is the HTTP port to access Jitsi",
"defaultValue": "8000",
"id": "$$cap_http_port"
},
{
"label": "HTTPS Port",
"description": "This is the HTTPS port to access Jitsi",
"defaultValue": "8443",
"id": "$$cap_https_port"
},
{
"label": "Timezone",
"description": "This is the timezone for Jitsi",
"defaultValue": "Europe/Amsterdam",
"id": "$$cap_timezone"
},
{
"label": "JVB TCP Port",
"description": "TCP Port for JVB service",
"defaultValue": "4443",
"id": "$$cap_jvb_tcp"
},
{
"label": "JVB UDP Port",
"description": "UDP Port for JVB service",
"defaultValue": "10000",
"id": "$$cap_jvb_udp"
},
{
"label": "Password",
"description": "This is the password for Jitsi's services",
"defaultValue": "pass",
"id": "$$cap_password"
}
]
}
}

View File

@ -8,9 +8,7 @@
"services": {
"$$cap_appname": {
"image": "jsreport/jsreport:$$cap_jsreport_version",
"volumes": [
"$$cap_appname-data:/jsreport"
],
"volumes": ["$$cap_appname-data:/jsreport"],
"restart": "always",
"containerHttpPort": "5488",
"environment": {
@ -25,7 +23,8 @@
"start": "Reporting tools for creating PDF, HTMLS, Excel by converting your HTML + CSS + Javascript knowledge.",
"end": "Congratulations! You have the new jsReport instance running. Happy reporting!"
},
"variables": [{
"variables": [
{
"id": "$$cap_jsreport_version",
"label": "version",
"defaultValue": "2.4.0-full",
@ -51,5 +50,4 @@
"validRegex": "/^\\s*\\S.*$/"
}
]
}
}

View File

@ -19,9 +19,7 @@
"environment": {
"JUPYTER_ENABLE_LAB": "yes"
},
"volumes":[
"$$cap_appname:/home/jovyan/"
]
"volumes": ["$$cap_appname:/home/jovyan/"]
}
}
},

View File

@ -9,9 +9,7 @@
"$$cap_appname-db": {
"image": "postgres:$$cap_postgres_version",
"notExposeAsWebApp": "true",
"volumes": [
"$$cap_appname-db-data:/var/lib/postgresql/data"
],
"volumes": ["$$cap_appname-db-data:/var/lib/postgresql/data"],
"restart": "always",
"environment": {
"POSTGRES_USER": "keycloak",
@ -21,9 +19,7 @@
},
"$$cap_appname": {
"image": "jboss/keycloak:$$cap_keycloak_version",
"depends_on": [
"$$cap_appname-db"
],
"depends_on": ["$$cap_appname-db"],
"restart": "always",
"containerHttpPort": "8080",
"environment": {
@ -77,4 +73,4 @@
"validRegex": "/^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])[0-9a-zA-Z]{12,}$/"
}
]
}
}

View File

@ -1,76 +1,70 @@
{
"captainVersion": "2",
"displayName": "Limesurvey",
"description": "Limesurvey is an open source online survey tool.",
"dockerCompose": {
"version": "2",
"services": {
"$$cap_appname-db": {
"documentation": "Taken from https://hub.docker.com/_/mariadb",
"image": "mariadb:$$cap_mariadb_version",
"notExposeAsWebApp": "true",
"volumes": [
"$$cap_appname-db-data:/var/lib/mysql"
],
"restart": "always",
"environment": {
"MYSQL_ROOT_PASSWORD": "$$cap_db_pass",
"MYSQL_DATABASE": "$$cap_db_name",
"MYSQL_USER": "$$cap_db_user",
"MYSQL_PASSWORD": "$$cap_db_pass"
"captainVersion": "2",
"displayName": "Limesurvey",
"description": "Limesurvey is an open source online survey tool.",
"dockerCompose": {
"version": "2",
"services": {
"$$cap_appname-db": {
"documentation": "Taken from https://hub.docker.com/_/mariadb",
"image": "mariadb:$$cap_mariadb_version",
"notExposeAsWebApp": "true",
"volumes": ["$$cap_appname-db-data:/var/lib/mysql"],
"restart": "always",
"environment": {
"MYSQL_ROOT_PASSWORD": "$$cap_db_pass",
"MYSQL_DATABASE": "$$cap_db_name",
"MYSQL_USER": "$$cap_db_user",
"MYSQL_PASSWORD": "$$cap_db_pass"
}
},
"$$cap_appname": {
"documentation": "Taken from https://registry.hub.docker.com/r/crramirez/limesurvey",
"depends_on": ["$$cap_appname-db"],
"image": "crramirez/limesurvey:$$cap_limesurvey_version",
"volumes": ["$$cap_appname-data:/app/upload"],
"restart": "always"
}
}
},
"$$cap_appname": {
"documentation": "Taken from https://registry.hub.docker.com/r/crramirez/limesurvey",
"depends_on": [
"$$cap_appname-db"
],
"image": "crramirez/limesurvey:$$cap_limesurvey_version",
"volumes": [
"$$cap_appname-data:/app/upload"
],
"restart": "always"
}
}
},
"instructions": {
"start": "Limesurvey is an open source online survey tool.\nThe process will deploy a database and the App.\nThe process will take about a minute for the process to finish.",
"end": "Limesurvey is deployed and available as $$cap_appname.\n\nPlease use srv-captain--$$cap_appname-db as database host on your online configuration.\n$$cap_db_user as user name\n$$cap_db_pass as password\n$$cap_db_name as database name"
},
},
"instructions": {
"start": "Limesurvey is an open source online survey tool.\nThe process will deploy a database and the App.\nThe process will take about a minute for the process to finish.",
"end": "Limesurvey is deployed and available as $$cap_appname.\n\nPlease use srv-captain--$$cap_appname-db as database host on your online configuration.\n$$cap_db_user as user name\n$$cap_db_pass as password\n$$cap_db_name as database name"
},
"variables": [
{
"id": "$$cap_limesurvey_version",
"label": "Limesurvey Version",
"defaultValue": "3",
"description": "https://registry.hub.docker.com/r/crramirez/limesurvey/tags",
"validRegex": "/^([^\\s^\\/])+$/"
},
{
"id": "$$cap_mariadb_version",
"label": "MariaDB (database) version",
"defaultValue": "10.5.3",
"description": "Check out their Docker page for the valid tags https://hub.docker.com/_/mariadb?tab=tags",
"validRegex": "/^([^\\s^\\/])+$/"
},
{
"id": "$$cap_db_pass",
"label": "database password",
"description": "Password for the database user and root using mysql.",
"validRegex": "/.{1,}/"
},
{
"id": "$$cap_db_name",
"label": "database name",
"defaultValue": "limesurvey",
"description": "name for the database.",
"validRegex": "/^([a-zA-Z0-9])+$/"
},
{
"id": "$$cap_db_user",
"label": "database user",
"defaultValue": "limesurvey",
"description": "Username for the database using mysql.",
"validRegex": "/^([a-zA-Z0-9])+$/"
}
{
"id": "$$cap_limesurvey_version",
"label": "Limesurvey Version",
"defaultValue": "3",
"description": "https://registry.hub.docker.com/r/crramirez/limesurvey/tags",
"validRegex": "/^([^\\s^\\/])+$/"
},
{
"id": "$$cap_mariadb_version",
"label": "MariaDB (database) version",
"defaultValue": "10.5.3",
"description": "Check out their Docker page for the valid tags https://hub.docker.com/_/mariadb?tab=tags",
"validRegex": "/^([^\\s^\\/])+$/"
},
{
"id": "$$cap_db_pass",
"label": "database password",
"description": "Password for the database user and root using mysql.",
"validRegex": "/.{1,}/"
},
{
"id": "$$cap_db_name",
"label": "database name",
"defaultValue": "limesurvey",
"description": "name for the database.",
"validRegex": "/^([a-zA-Z0-9])+$/"
},
{
"id": "$$cap_db_user",
"label": "database user",
"defaultValue": "limesurvey",
"description": "Username for the database using mysql.",
"validRegex": "/^([a-zA-Z0-9])+$/"
}
]
}

View File

@ -1,54 +1,54 @@
{
"captainVersion": "2",
"documentation": "Taken from https://hub.docker.com/_/mariadb.",
"displayName": "MariaDB",
"description": "MariaDB Server is one of the most popular open source relational databases. It's made by the original developers of MySQL and guaranteed to stay open source",
"dockerCompose": {
"version": "3.1",
"services": {
"$$cap_appname-db": {
"dockerfileLines": [
"FROM mariadb:$$cap_mysql_version",
"CMD [\"--character-set-server=$$cap_charset\", \"--collation-server=$$cap_collation\", \"--skip-character-set-client-handshake\"]"
],
"notExposeAsWebApp": "true",
"volumes": ["$$cap_appname-db-data:/var/lib/mysql"],
"restart": "always",
"environment": {
"MYSQL_ROOT_PASSWORD": "$$cap_db_pass"
"captainVersion": "2",
"documentation": "Taken from https://hub.docker.com/_/mariadb.",
"displayName": "MariaDB",
"description": "MariaDB Server is one of the most popular open source relational databases. It's made by the original developers of MySQL and guaranteed to stay open source",
"dockerCompose": {
"version": "3.1",
"services": {
"$$cap_appname-db": {
"dockerfileLines": [
"FROM mariadb:$$cap_mysql_version",
"CMD [\"--character-set-server=$$cap_charset\", \"--collation-server=$$cap_collation\", \"--skip-character-set-client-handshake\"]"
],
"notExposeAsWebApp": "true",
"volumes": ["$$cap_appname-db-data:/var/lib/mysql"],
"restart": "always",
"environment": {
"MYSQL_ROOT_PASSWORD": "$$cap_db_pass"
}
}
}
}
}
},
"instructions": {
"start": "MariaDB is a community-developed fork of the MySQL relational database management system intended to remain free under the GNU GPL. Being a fork of a leading open source software system, it is notable for being led by the original developers of MySQL, who forked it due to concerns over its acquisition by Oracle. Contributors are required to share their copyright with the MariaDB Foundation. The intent is also to maintain high compatibility with MySQL, ensuring a \"drop-in\" replacement capability with library binary equivalency and exact matching with MySQL APIs and commands. It includes the XtraDB storage engine for replacing InnoDB, as well as a new storage engine, Aria, that intends to be both a transactional and non-transactional engine perhaps even included in future versions of MySQL.",
"end": "MariaDB has been successfully deployed. The database is accessable on port 3306 inside the container. If you need to access the database externally, you will have to setup port mapping in the App configs tab. For example serverport: 3306, containerport: 3306. You can change the serverport for connection, but the containerport is predefined."
},
"variables": [
{
"id": "$$cap_mysql_version",
"label": "MariaDB Version",
"defaultValue": "10.4",
"description": "Check out their Docker page for the valid tags https://hub.docker.com/_/mariadb?tab=tags",
"validRegex": "/^([^\\s^\\/])+$/"
},
{
"id": "$$cap_db_pass",
"label": "MariaDB Root password",
"description": "",
"validRegex": "/.{1,}/"
"instructions": {
"start": "MariaDB is a community-developed fork of the MySQL relational database management system intended to remain free under the GNU GPL. Being a fork of a leading open source software system, it is notable for being led by the original developers of MySQL, who forked it due to concerns over its acquisition by Oracle. Contributors are required to share their copyright with the MariaDB Foundation. The intent is also to maintain high compatibility with MySQL, ensuring a \"drop-in\" replacement capability with library binary equivalency and exact matching with MySQL APIs and commands. It includes the XtraDB storage engine for replacing InnoDB, as well as a new storage engine, Aria, that intends to be both a transactional and non-transactional engine perhaps even included in future versions of MySQL.",
"end": "MariaDB has been successfully deployed. The database is accessable on port 3306 inside the container. If you need to access the database externally, you will have to setup port mapping in the App configs tab. For example serverport: 3306, containerport: 3306. You can change the serverport for connection, but the containerport is predefined."
},
{
"id": "$$cap_charset",
"label": "Default server character set",
"description": "See the MariaDB website for supported character sets (https://mariadb.com/kb/en/library/supported-character-sets-and-collations/#character-sets)",
"defaultValue": "utf8mb4"
},
{
"id": "$$cap_collation",
"label": "Default server collation",
"description": "See the MariaDB website for supported collations (https://mariadb.com/kb/en/library/supported-character-sets-and-collations/#collations)",
"defaultValue": "utf8mb4_unicode_ci"
}
]
"variables": [
{
"id": "$$cap_mysql_version",
"label": "MariaDB Version",
"defaultValue": "10.4",
"description": "Check out their Docker page for the valid tags https://hub.docker.com/_/mariadb?tab=tags",
"validRegex": "/^([^\\s^\\/])+$/"
},
{
"id": "$$cap_db_pass",
"label": "MariaDB Root password",
"description": "",
"validRegex": "/.{1,}/"
},
{
"id": "$$cap_charset",
"label": "Default server character set",
"description": "See the MariaDB website for supported character sets (https://mariadb.com/kb/en/library/supported-character-sets-and-collations/#character-sets)",
"defaultValue": "utf8mb4"
},
{
"id": "$$cap_collation",
"label": "Default server collation",
"description": "See the MariaDB website for supported collations (https://mariadb.com/kb/en/library/supported-character-sets-and-collations/#collations)",
"defaultValue": "utf8mb4_unicode_ci"
}
]
}

View File

@ -1,75 +1,73 @@
{
"captainVersion": "2",
"documentation": "Taken from https://hub.docker.com/_/matomo?tab=description",
"displayName": "",
"description": "Matomo tracks online visits to one or more websites and displays reports on these visits for analysis",
"dockerCompose": {
"version": "3.1",
"services": {
"$$cap_appname-db": {
"dockerfileLines": [
"FROM mariadb:$$cap_mysql_version",
"CMD [\"--character-set-server=utf8mb4\", \"--collation-server=utf8mb4_unicode_ci\", \"--skip-character-set-client-handshake\", \"--max-allowed-packet=64MB\"]"
],
"notExposeAsWebApp": "true",
"volumes": ["$$cap_appname-db-data:/var/lib/mysql"],
"restart": "always",
"environment": {
"MYSQL_DATABASE": "matomo",
"MYSQL_USER": "matomo",
"MYSQL_PASSWORD": "$$cap_db_pass",
"MYSQL_ROOT_PASSWORD": "$$cap_db_root_pass"
"captainVersion": "2",
"documentation": "Taken from https://hub.docker.com/_/matomo?tab=description",
"displayName": "",
"description": "Matomo tracks online visits to one or more websites and displays reports on these visits for analysis",
"dockerCompose": {
"version": "3.1",
"services": {
"$$cap_appname-db": {
"dockerfileLines": [
"FROM mariadb:$$cap_mysql_version",
"CMD [\"--character-set-server=utf8mb4\", \"--collation-server=utf8mb4_unicode_ci\", \"--skip-character-set-client-handshake\", \"--max-allowed-packet=64MB\"]"
],
"notExposeAsWebApp": "true",
"volumes": ["$$cap_appname-db-data:/var/lib/mysql"],
"restart": "always",
"environment": {
"MYSQL_DATABASE": "matomo",
"MYSQL_USER": "matomo",
"MYSQL_PASSWORD": "$$cap_db_pass",
"MYSQL_ROOT_PASSWORD": "$$cap_db_root_pass"
}
},
"$$cap_appname": {
"depends_on": ["$$cap_appname-db"],
"image": "matomo:$$cap_matomo_version",
"containerHttpPort": "80",
"restart": "always",
"volumes": ["$$cap_appname-data:/var/www/html"],
"environment": {
"MATOMO_DATABASE_HOST": "srv-captain--$$cap_appname-db",
"MATOMO_DATABASE_ADAPTER": "mysql",
"MATOMO_DATABASE_TABLES_PREFIX": "matomo_",
"MATOMO_DATABASE_USERNAME": "matomo",
"MATOMO_DATABASE_PASSWORD": "$$cap_db_pass",
"MATOMO_DATABASE_DBNAME": "matomo"
}
}
}
},
"$$cap_appname": {
"depends_on": [
"$$cap_appname-db"
],
"image": "matomo:$$cap_matomo_version",
"containerHttpPort": "80",
"restart": "always",
"volumes": ["$$cap_appname-data:/var/www/html"],
"environment": {
"MATOMO_DATABASE_HOST": "srv-captain--$$cap_appname-db",
"MATOMO_DATABASE_ADAPTER": "mysql",
"MATOMO_DATABASE_TABLES_PREFIX": "matomo_",
"MATOMO_DATABASE_USERNAME": "matomo",
"MATOMO_DATABASE_PASSWORD": "$$cap_db_pass",
"MATOMO_DATABASE_DBNAME": "matomo"
},
"instructions": {
"start": "Matomo is the leading open-source analytics platform that gives you more than powerful analytics.",
"end": "Matomo is successfully deployed!"
},
"variables": [
{
"id": "$$cap_matomo_version",
"label": "Matomo Version",
"defaultValue": "3.11.0",
"description": "Check out their docker page for the valid tags https://hub.docker.com/_/matomo?tab=tags",
"validRegex": "/^([^\\s^\\/])+$/"
},
{
"id": "$$cap_mysql_version",
"label": "MariaDB Version",
"defaultValue": "10.4",
"description": "Check out their docker page for the valid tags https://hub.docker.com/_/mariadb?tab=tags",
"validRegex": "/^([^\\s^\\/])+$/"
},
{
"id": "$$cap_db_root_pass",
"label": "MariaDB Matomo User Password",
"description": "The password to use for the matomo database",
"validRegex": "/.{1,}/"
},
{
"id": "$$cap_db_pass",
"label": "MariaDB Root Password",
"description": "The root password to use for the MariaDB instance",
"validRegex": "/.{1,}/"
}
}
}
},
"instructions": {
"start": "Matomo is the leading open-source analytics platform that gives you more than powerful analytics.",
"end": "Matomo is successfully deployed!"
},
"variables": [
{
"id": "$$cap_matomo_version",
"label": "Matomo Version",
"defaultValue": "3.11.0",
"description": "Check out their docker page for the valid tags https://hub.docker.com/_/matomo?tab=tags",
"validRegex": "/^([^\\s^\\/])+$/"
},
{
"id": "$$cap_mysql_version",
"label": "MariaDB Version",
"defaultValue": "10.4",
"description": "Check out their docker page for the valid tags https://hub.docker.com/_/mariadb?tab=tags",
"validRegex": "/^([^\\s^\\/])+$/"
},
{
"id": "$$cap_db_root_pass",
"label": "MariaDB Matomo User Password",
"description": "The password to use for the matomo database",
"validRegex": "/.{1,}/"
},
{
"id": "$$cap_db_pass",
"label": "MariaDB Root Password",
"description": "The root password to use for the MariaDB instance",
"validRegex": "/.{1,}/"
}
]
]
}

View File

@ -1,74 +1,72 @@
{
"captainVersion": "2",
"documentation": "https://github.com/mattermost/mattermost-docker",
"displayName": "Mattermost",
"description": "Mattermost Team Edition open source collaboration/chat software",
"dockerCompose": {
"version": "3.3",
"services": {
"$$cap_appname-postgres": {
"image": "postgres@$$cap_postgres_version",
"notExposeAsWebApp": "true",
"volumes": [
"$$cap_appname-postgres-data:/var/lib/postgresql/data"
],
"restart": "always",
"environment": {
"POSTGRES_USER": "mattermost",
"POSTGRES_PASSWORD": "$$cap_pg_pass",
"POSTGRES_DB": "mattermost"
"captainVersion": "2",
"documentation": "https://github.com/mattermost/mattermost-docker",
"displayName": "Mattermost",
"description": "Mattermost Team Edition open source collaboration/chat software",
"dockerCompose": {
"version": "3.3",
"services": {
"$$cap_appname-postgres": {
"image": "postgres@$$cap_postgres_version",
"notExposeAsWebApp": "true",
"volumes": [
"$$cap_appname-postgres-data:/var/lib/postgresql/data"
],
"restart": "always",
"environment": {
"POSTGRES_USER": "mattermost",
"POSTGRES_PASSWORD": "$$cap_pg_pass",
"POSTGRES_DB": "mattermost"
}
},
"$$cap_appname": {
"dockerfileLines": [
"FROM mattermost/mattermost-team-edition@$$cap_mattermost_version",
"RUN sed -i 's#api.segment.io#xx.example.com#gI' /mattermost/bin/mattermost",
"RUN sed -i 's#securityupdatecheck.mattermost.com#xxxxxxxxxxxxxxxxxxxxxx.example.com#gI' /mattermost/bin/mattermost"
],
"containerHttpPort": "8065",
"depends_on": ["$$cap_appname-postgres"],
"volumes": [
"$$cap_appname-data:/mattermost/data",
"$$cap_appname-logs:/mattermost/logs",
"$$cap_appname-config:/mattermost/config",
"$$cap_appname-plugins:/mattermost/plugins",
"$$cap_appname-clientplugins:/mattermost/client/plugins"
],
"restart": "always",
"environment": {
"MM_SQLSETTINGS_DATASOURCE": "postgres://mattermost:$$cap_pg_pass@srv-captain--$$cap_appname-postgres:5432/mattermost?sslmode=disable&connect_timeout=10",
"MM_SERVICESETTINGS_SITEURL": "https://$$cap_appname.$$cap_root_domain",
"MM_LOGSETTINGS_ENABLEDIAGNOSTICS": "false",
"MM_SERVICESETTINGS_ENABLESECURITYFIXALERT": "false",
"MM_SQLSETTINGS_DRIVERNAME": "postgres"
}
}
}
},
"$$cap_appname": {
"dockerfileLines": [
"FROM mattermost/mattermost-team-edition@$$cap_mattermost_version",
"RUN sed -i 's#api.segment.io#xx.example.com#gI' /mattermost/bin/mattermost",
"RUN sed -i 's#securityupdatecheck.mattermost.com#xxxxxxxxxxxxxxxxxxxxxx.example.com#gI' /mattermost/bin/mattermost"
],
"containerHttpPort": "8065",
"depends_on": [
"$$cap_appname-postgres"
],
"volumes": [
"$$cap_appname-data:/mattermost/data",
"$$cap_appname-logs:/mattermost/logs",
"$$cap_appname-config:/mattermost/config",
"$$cap_appname-plugins:/mattermost/plugins",
"$$cap_appname-clientplugins:/mattermost/client/plugins"
],
"restart": "always",
"environment": {
"MM_SQLSETTINGS_DATASOURCE": "postgres://mattermost:$$cap_pg_pass@srv-captain--$$cap_appname-postgres:5432/mattermost?sslmode=disable&connect_timeout=10",
"MM_SERVICESETTINGS_SITEURL": "https://$$cap_appname.$$cap_root_domain",
"MM_LOGSETTINGS_ENABLEDIAGNOSTICS": "false",
"MM_SERVICESETTINGS_ENABLESECURITYFIXALERT": "false",
"MM_SQLSETTINGS_DRIVERNAME": "postgres"
},
"instructions": {
"start": "Open-source collaboration/chat server Mattermost Team Edition.",
"end": "Mattermost is deployed and available as srv-captain--$$cap_appname:80. Note that the application may take up to ten minutes to become available. Following deployment you must verify MM_SERVICESETTINGS_SITEURL in the application's environment refers to your app's official public URL."
},
"variables": [
{
"id": "$$cap_postgres_version",
"label": "Postgres Docker Image SHA Hash",
"defaultValue": "sha256:110d3325db02daa6e1541fdd37725fcbecb7d51411229d922562f208c51d35cc",
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/library/postgres/tags/ - default is 12.2 as of 2020-03-16"
},
{
"id": "$$cap_mattermost_version",
"label": "Mattermost Docker Image SHA Hash",
"defaultValue": "sha256:f8a4416d0a50a03ebacdbcd44790d5996230da3f48dbefd02307e4fd713567aa",
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/mattermost/mattermost-team-edition/tags - default is current as of 2020-03-16"
},
{
"id": "$$cap_pg_pass",
"label": "Postgres Password",
"description": "Password must be at least 30 characters. Please use a random string.",
"validRegex": "/^[^\\@]{30,}$/"
}
}
}
},
"instructions": {
"start": "Open-source collaboration/chat server Mattermost Team Edition.",
"end": "Mattermost is deployed and available as srv-captain--$$cap_appname:80. Note that the application may take up to ten minutes to become available. Following deployment you must verify MM_SERVICESETTINGS_SITEURL in the application's environment refers to your app's official public URL."
},
"variables": [
{
"id": "$$cap_postgres_version",
"label": "Postgres Docker Image SHA Hash",
"defaultValue": "sha256:110d3325db02daa6e1541fdd37725fcbecb7d51411229d922562f208c51d35cc",
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/library/postgres/tags/ - default is 12.2 as of 2020-03-16"
},
{
"id": "$$cap_mattermost_version",
"label": "Mattermost Docker Image SHA Hash",
"defaultValue": "sha256:f8a4416d0a50a03ebacdbcd44790d5996230da3f48dbefd02307e4fd713567aa",
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/mattermost/mattermost-team-edition/tags - default is current as of 2020-03-16"
},
{
"id": "$$cap_pg_pass",
"label": "Postgres Password",
"description": "Password must be at least 30 characters. Please use a random string.",
"validRegex": "/^[^\\@]{30,}$/"
}
]
]
}

View File

@ -1,75 +1,70 @@
{
"captainVersion": "2",
"displayName": "Mautic beta",
"description": "Mautic is an open source marketing automation platform.",
"dockerCompose": {
"version": "2",
"services": {
"$$cap_appname-db": {
"documentation": "Taken from https://hub.docker.com/_/percona",
"image": "percona/percona-server:$$cap_percona_version",
"notExposeAsWebApp": "true",
"volumes": [
"$$cap_appname-db-data:/var/lib/mysql"
],
"restart": "always",
"environment": {
"MYSQL_ROOT_PASSWORD": "$$cap_db_pass",
"MYSQL_DATABASE": "mautic",
"MYSQL_USER": "$$cap_db_user",
"MYSQL_PASSWORD": "$$cap_db_pass"
"captainVersion": "2",
"displayName": "Mautic beta",
"description": "Mautic is an open source marketing automation platform.",
"dockerCompose": {
"version": "2",
"services": {
"$$cap_appname-db": {
"documentation": "Taken from https://hub.docker.com/_/percona",
"image": "percona/percona-server:$$cap_percona_version",
"notExposeAsWebApp": "true",
"volumes": ["$$cap_appname-db-data:/var/lib/mysql"],
"restart": "always",
"environment": {
"MYSQL_ROOT_PASSWORD": "$$cap_db_pass",
"MYSQL_DATABASE": "mautic",
"MYSQL_USER": "$$cap_db_user",
"MYSQL_PASSWORD": "$$cap_db_pass"
}
},
"$$cap_appname": {
"depends_on": ["$$cap_appname-db"],
"image": "mautic/mautic:$$cap_mautic_version",
"volumes": ["$$cap_appname-data:/var/www/html"],
"restart": "always",
"environment": {
"MAUTIC_DB_HOST": "srv-captain--$$cap_appname-db",
"MYSQL_PORT_3306_TCP": "3306",
"MAUTIC_DB_USER": "$$cap_db_user",
"MAUTIC_DB_PASSWORD": "$$cap_db_pass",
"MAUTIC_DB_NAME": "mautic",
"MAUTIC_RUN_CRON_JOBS": "true"
}
}
}
},
"$$cap_appname": {
"depends_on": [
"$$cap_appname-db"
],
"image": "mautic/mautic:$$cap_mautic_version",
"volumes": [
"$$cap_appname-data:/var/www/html"
],
"restart": "always",
"environment": {
"MAUTIC_DB_HOST": "srv-captain--$$cap_appname-db",
"MYSQL_PORT_3306_TCP": "3306",
"MAUTIC_DB_USER": "$$cap_db_user",
"MAUTIC_DB_PASSWORD": "$$cap_db_pass",
"MAUTIC_DB_NAME": "mautic",
"MAUTIC_RUN_CRON_JOBS": "true"
},
"instructions": {
"start": "Mautic is an online,marketing automation tool.\nThe process will deploy a database and the App.\nThe process will take about a minute for the process to finish.",
"end": "Mautic is deployed and available as $$cap_appname.\n\nIMPORTANT: It will take up to 1-2 minutes for Mautic to be ready. Before that, you might see 502 error page.\nIf you dont have any SMTP server, I recommend you to install 'poste.io' one click app version."
},
"variables": [
{
"id": "$$cap_db_user",
"label": "Database user",
"defaultValue": "mauticuser",
"description": "",
"validRegex": "/^([a-zA-Z0-9])+$/"
},
{
"id": "$$cap_db_pass",
"label": "Database password",
"description": "",
"validRegex": "/.{1,}/"
},
{
"id": "$$cap_mautic_version",
"label": "Mautic Version",
"defaultValue": "v3.0.0-beta",
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/mautic/mautic/tags. Please be aware, this is a beta version.",
"validRegex": "/^([^\\s^\\/])+$/"
},
{
"id": "$$cap_percona_version",
"label": "Percona Version (database)",
"defaultValue": "5.7",
"description": "Check out their Docker page for the valid tags https://hub.docker.com/_/percona?tab=tags",
"validRegex": "/^([^\\s^\\/])+$/"
}
}
}
},
"instructions": {
"start": "Mautic is an online,marketing automation tool.\nThe process will deploy a database and the App.\nThe process will take about a minute for the process to finish.",
"end": "Mautic is deployed and available as $$cap_appname.\n\nIMPORTANT: It will take up to 1-2 minutes for Mautic to be ready. Before that, you might see 502 error page.\nIf you dont have any SMTP server, I recommend you to install 'poste.io' one click app version."
},
"variables": [{
"id": "$$cap_db_user",
"label": "Database user",
"defaultValue": "mauticuser",
"description": "",
"validRegex": "/^([a-zA-Z0-9])+$/"
},
{
"id": "$$cap_db_pass",
"label": "Database password",
"description": "",
"validRegex": "/.{1,}/"
},
{
"id": "$$cap_mautic_version",
"label": "Mautic Version",
"defaultValue": "v3.0.0-beta",
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/mautic/mautic/tags. Please be aware, this is a beta version.",
"validRegex": "/^([^\\s^\\/])+$/"
},
{
"id": "$$cap_percona_version",
"label": "Percona Version (database)",
"defaultValue": "5.7",
"description": "Check out their Docker page for the valid tags https://hub.docker.com/_/percona?tab=tags",
"validRegex": "/^([^\\s^\\/])+$/"
}
]
]
}

View File

@ -28,7 +28,8 @@
"start": "Minio is an object storage server released under Apache License v2.0. It is compatible with Amazon S3 cloud storage service. It is best suited for storing unstructured data such as photos, videos, log files, backups and container / VM images. Size of an object can range from a few KBs to a maximum of 5TB. Minio server is light enough to be bundled with the application stack, similar to NodeJS, Redis and MySQL. \n This one click app deploy one single instance of minio. If you are deploying minio in a high demand production environment, you should consider deploying multiple instances of minio. See minio docs for more details. https://www.minio.io/",
"end": "Minio is deployed and available as $$cap_appname"
},
"variables": [{
"variables": [
{
"id": "$$cap_minio_version",
"label": "Minio Version",
"defaultValue": "latest",
@ -50,5 +51,4 @@
"validRegex": "/.{8,}/"
}
]
}
}

View File

@ -27,7 +27,8 @@
"start": "MongoExpress is a Web-based MongoDB admin interface, written with Node.js and express. See MongoExpress page for more details: https://github.com/mongo-express/mongo-express\n\n Enter your MongoExpress Configuration parameters and click on next. It will take about a minute for the process to finish.",
"end": "MongoExpress is deployed and available as $$cap_appname"
},
"variables": [{
"variables": [
{
"id": "$$cap_mongoexpress_version",
"label": "Mongo Express Version Tag",
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/library/mongo-express/tags/",
@ -73,5 +74,4 @@
"validRegex": "/^([a-zA-Z0-9])+$/"
}
]
}
}

View File

@ -25,7 +25,8 @@
"start": "MongoDB is a cross-platform document-oriented database. Classified as a NoSQL database program, MongoDB uses JSON-like documents with schemas. \n\n After installation on CapRover, it will be available as srv-captain--YOUR_CONTAINER_NAME at port 27017 to other CapRover apps.\n\n Enter your MongoDB Configuration parameters and click on next. It will take about a minute for the process to finish.",
"end": "MongoDB is deployed and available as srv-captain--$$cap_appname:27017 to other apps. For example with NodeJS: mongoose.connect('mongodb://srv-captain--$$cap_appname/mydatabase?authSource=admin', {userMongoClient: true});"
},
"variables": [{
"variables": [
{
"id": "$$cap_mongo_version",
"label": "MongoDB Version",
"defaultValue": "4",
@ -45,5 +46,4 @@
"validRegex": "/^\\s*\\S.*$/"
}
]
}

View File

@ -9,9 +9,7 @@
"$$cap_appname-db": {
"image": "mcr.microsoft.com/mssql/server:$$cap_server_version",
"notExposeAsWebApp": "true",
"volumes": [
"$$cap_appname-db-data:/var/opt/mssql"
],
"volumes": ["$$cap_appname-db-data:/var/opt/mssql"],
"restart": "always",
"environment": {
"ACCEPT_EULA": "$$cap_accept_eula",
@ -19,9 +17,7 @@
"MSSQL_SA_PASSWORD": "$$cap_sa_pass",
"MSSQL_TCP_PORT": "$$cap_container_port"
},
"ports": [
"$$cap_host_port:$$cap_container_port"
]
"ports": ["$$cap_host_port:$$cap_container_port"]
}
}
},
@ -68,4 +64,4 @@
"validRegex": "/^Y{1}$/"
}
]
}
}

View File

@ -9,9 +9,7 @@
"$$cap_appname-db": {
"image": "mysql:$$cap_mysql_version",
"notExposeAsWebApp": "true",
"volumes": [
"$$cap_appname-db-data:/var/lib/mysql"
],
"volumes": ["$$cap_appname-db-data:/var/lib/mysql"],
"restart": "always",
"environment": {
"MYSQL_ROOT_PASSWORD": "$$cap_db_pass"
@ -23,7 +21,8 @@
"start": "MySQL is the world's most popular open source database. With its proven performance, reliability and ease-of-use, MySQL has become the leading database choice for web-based applications, covering the entire range from personal projects and websites, via e-commerce and information services, all the way to high profile web properties including Facebook, Twitter, YouTube, Yahoo! and many more.\n\n After installation on CapRover, it will be available as srv-captain--YOUR_CONTAINER_NAME at port 3306 to other CapRover apps.\n\nEnter your MySQL Configuration parameters and click on next. It will take about a minute for the process to finish.",
"end": "MySQL is deployed and available as srv-captain--$$cap_appname-db:3306 to other apps. For example with NodeJS, you do 'var con = mysql.createConnection({ host: 'srv-captain--$$cap_appname-db', user: 'root', password: '*********' });'"
},
"variables": [{
"variables": [
{
"id": "$$cap_mysql_version",
"label": "MySQL Version",
"defaultValue": "5.7",
@ -37,5 +36,4 @@
"validRegex": "/.{1,}/"
}
]
}
}

View File

@ -1,100 +1,99 @@
{
"captainVersion": "2",
"displayName": "n8n.io",
"description": "n8n is a free and open node based Workflow Automation Tool.",
"dockerCompose": {
"version": "2",
"services": {
"$$cap_appname-db": {
"documentation": "Taken from https://hub.docker.com/_/postgres",
"image": "postgres:$$cap_postgres_version",
"notExposeAsWebApp": "true",
"volumes": [
"$$cap_appname-db-data:/var/lib/postgresql/data"
],
"restart": "always",
"environment": {
"POSTGRES_PASSWORD": "$$cap_db_pass",
"POSTGRES_DB": "n8n",
"POSTGRES_USER": "$$cap_db_user"
"captainVersion": "2",
"displayName": "n8n.io",
"description": "n8n is a free and open node based Workflow Automation Tool.",
"dockerCompose": {
"version": "2",
"services": {
"$$cap_appname-db": {
"documentation": "Taken from https://hub.docker.com/_/postgres",
"image": "postgres:$$cap_postgres_version",
"notExposeAsWebApp": "true",
"volumes": ["$$cap_appname-db-data:/var/lib/postgresql/data"],
"restart": "always",
"environment": {
"POSTGRES_PASSWORD": "$$cap_db_pass",
"POSTGRES_DB": "n8n",
"POSTGRES_USER": "$$cap_db_user"
}
},
"$$cap_appname": {
"documentation": "Taken from https://hub.docker.com/r/n8nio/n8n",
"depends_on": ["$$cap_appname-db"],
"containerHttpPort": "5678",
"image": "n8nio/n8n:$$cap_n8n_version",
"volumes": ["$$cap_appname-data:/root/.n8n"],
"environment": {
"POSTGRES_DATABASE": "n8n",
"POSTGRES_HOST": "srv-captain--$$cap_appname-db",
"POSTGRES_PASSWORD": "$$cap_db_pass",
"POSTGRES_PORT": "5432",
"POSTGRES_USER": "$$cap_db_user",
"GENERIC_TIMEZONE": "$$cap_timezone",
"TZ": "$$cap_timezone",
"N8N_PROTOCOL": "http",
"WEBHOOK_TUNNEL_URL": "http://$$cap_appname.$$cap_root_domain/",
"VUE_APP_URL_BASE_API": "http://$$cap_appname.$$cap_root_domain/",
"N8N_HOST": "http://$$cap_appname.$$cap_root_domain/",
"N8N_BASIC_AUTH_ACTIVE": "true",
"N8N_BASIC_AUTH_USER": "$$cap_user",
"N8N_BASIC_AUTH_PASSWORD": "$$cap_pass"
},
"restart": "always"
}
}
},
"$$cap_appname": {
"documentation": "Taken from https://hub.docker.com/r/n8nio/n8n",
"depends_on": [
"$$cap_appname-db"
],
"containerHttpPort": "5678",
"image": "n8nio/n8n:$$cap_n8n_version",
"volumes": [
"$$cap_appname-data:/root/.n8n"
],
"environment": {
"POSTGRES_DATABASE":"n8n",
"POSTGRES_HOST":"srv-captain--$$cap_appname-db",
"POSTGRES_PASSWORD":"$$cap_db_pass",
"POSTGRES_PORT":"5432",
"POSTGRES_USER":"$$cap_db_user",
"GENERIC_TIMEZONE":"$$cap_timezone",
"TZ":"$$cap_timezone",
"N8N_PROTOCOL": "http",
"WEBHOOK_TUNNEL_URL": "http://$$cap_appname.$$cap_root_domain/",
"VUE_APP_URL_BASE_API": "http://$$cap_appname.$$cap_root_domain/",
"N8N_HOST": "http://$$cap_appname.$$cap_root_domain/",
"N8N_BASIC_AUTH_ACTIVE": "true",
"N8N_BASIC_AUTH_USER": "$$cap_user",
"N8N_BASIC_AUTH_PASSWORD": "$$cap_pass"
},
"restart": "always"
}
}
},
"instructions": {
"start": "n8n is a free and open node based Workflow Automation Tool.\nThe process will deploy a database and the App.\nThe process will take about a minute for the process to finish.",
"end": "n8n is deployed and available as $$cap_appname.\n\nPlease activate Websocket Support in the app then wait few seconds before use it.\n\nImportant information, it will not work without websocket support nor with https enabled.\nPlease do not activate https nor basic auth (it is setted by the docker and use the caprover one would make your webhook failed).\n\nSee https://github.com/n8n-io/n8n/issues/593 for more details."
},
"variables": [
{
"id": "$$cap_n8n_version",
"label": "n8n.io Version",
"defaultValue": "0.67.3",
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/n8nio/n8n/tags",
"validRegex": "/^([^\\s^\\/])+$/"
},
{
"id": "$$cap_postgres_version",
"label": "Postgres (database) version",
"defaultValue": "12",
"description": "Check out their Docker page for the valid tags https://hub.docker.com/_/mariadb?tab=tags",
"validRegex": "/^([^\\s^\\/])+$/"
},{
"id": "$$cap_db_pass",
"label": "database password",
"description": "Password for the database user and root using mysql.",
"validRegex": "/.{1,}/"
},{
"id": "$$cap_db_user",
"label": "database user",
"defaultValue": "n8n",
"description": "Username for the database using postgres.",
"validRegex": "/^([a-z0-9])+$/i"
},{
"id": "$$cap_timezone",
"label": "timezone",
"defaultValue": "Europe/Paris",
"description": "Timezone used by the server. Please check out this page https://en.wikipedia.org/wiki/List_of_tz_database_time_zones for valid time",
"validRegex": "/^([a-z_\\+-0-9]+\\/?[a-z_\\+-0-9]*)$/i"
},{
"id": "$$cap_user",
"label": "user",
"defaultValue": "root",
"description": "user you need to use to login into the web interface",
"validRegex": "/^([a-z0-9])+$/i"
},{
"id": "$$cap_pass",
"label": "password",
"description": "password you need to use to login into the web interface",
"validRegex": "/.{1,}/"
}
]
"instructions": {
"start": "n8n is a free and open node based Workflow Automation Tool.\nThe process will deploy a database and the App.\nThe process will take about a minute for the process to finish.",
"end": "n8n is deployed and available as $$cap_appname.\n\nPlease activate Websocket Support in the app then wait few seconds before use it.\n\nImportant information, it will not work without websocket support nor with https enabled.\nPlease do not activate https nor basic auth (it is setted by the docker and use the caprover one would make your webhook failed).\n\nSee https://github.com/n8n-io/n8n/issues/593 for more details."
},
"variables": [
{
"id": "$$cap_n8n_version",
"label": "n8n.io Version",
"defaultValue": "0.67.3",
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/n8nio/n8n/tags",
"validRegex": "/^([^\\s^\\/])+$/"
},
{
"id": "$$cap_postgres_version",
"label": "Postgres (database) version",
"defaultValue": "12",
"description": "Check out their Docker page for the valid tags https://hub.docker.com/_/mariadb?tab=tags",
"validRegex": "/^([^\\s^\\/])+$/"
},
{
"id": "$$cap_db_pass",
"label": "database password",
"description": "Password for the database user and root using mysql.",
"validRegex": "/.{1,}/"
},
{
"id": "$$cap_db_user",
"label": "database user",
"defaultValue": "n8n",
"description": "Username for the database using postgres.",
"validRegex": "/^([a-z0-9])+$/i"
},
{
"id": "$$cap_timezone",
"label": "timezone",
"defaultValue": "Europe/Paris",
"description": "Timezone used by the server. Please check out this page https://en.wikipedia.org/wiki/List_of_tz_database_time_zones for valid time",
"validRegex": "/^([a-z_\\+-0-9]+\\/?[a-z_\\+-0-9]*)$/i"
},
{
"id": "$$cap_user",
"label": "user",
"defaultValue": "root",
"description": "user you need to use to login into the web interface",
"validRegex": "/^([a-z0-9])+$/i"
},
{
"id": "$$cap_pass",
"label": "password",
"description": "password you need to use to login into the web interface",
"validRegex": "/.{1,}/"
}
]
}

View File

@ -10,9 +10,7 @@
"documentation": "Taken from https://hub.docker.com/_/mariadb",
"image": "mariadb:$$cap_mariadb_version",
"notExposeAsWebApp": "true",
"volumes": [
"$$cap_appname-db-data:/var/lib/mysql"
],
"volumes": ["$$cap_appname-db-data:/var/lib/mysql"],
"restart": "always",
"environment": {
"MYSQL_ROOT_PASSWORD": "$$cap_db_pass",
@ -22,14 +20,10 @@
}
},
"$$cap_appname": {
"depends_on": [
"$$cap_appname-db"
],
"depends_on": ["$$cap_appname-db"],
"documentation": "Taken from https://hub.docker.com/_/nextcloud",
"image": "nextcloud:$$cap_nextcloud_version",
"volumes": [
"$$cap_appname-data:/var/www/html"
],
"volumes": ["$$cap_appname-data:/var/www/html"],
"restart": "always",
"environment": {
"OVERWRITEPROTOCOL": "$$cap_http_https_cors",
@ -48,45 +42,53 @@
"start": "A safe home for all your data. Access & share your files, calendars, contacts, mail & more from any device, on your terms. http://Nextcloud.com",
"end": "NextCloud is deployed and will be available on few minutes as $$cap_appname.\nIf you set the cors sections to https, please enable https on your app. If you do not activate it you will have an error.\n\nFor better performances and compliance, you can add \"add_header Strict-Transport-Security \"max-age=15552000; includeSubDomains\" always;\" below \"proxy_set_header X-Forwarded-Proto $scheme;\" into the nginx configuration."
},
"variables": [{
"id": "$$cap_nextcloud_version",
"label": "NextCloud Version",
"defaultValue": "19.0.0",
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/library/nextcloud/tags/\n\ndo not use fpm versions.",
"validRegex": "/^([^\\s^\\/])+$/"
},{
"id": "$$cap_mariadb_version",
"label": "MariaDB (database) version",
"defaultValue": "10.5.3",
"description": "Check out their Docker page for the valid tags https://hub.docker.com/_/mariadb?tab=tags",
"validRegex": "/^([^\\s^\\/])+$/"
},{
"id": "$$cap_db_pass",
"label": "database password",
"description": "Password for the database user and root using mysql.",
"validRegex": "/.{1,}/"
},{
"id": "$$cap_db_user",
"label": "database user",
"defaultValue": "nextcloud",
"description": "Username for the database using mysql.",
"validRegex": "/^([a-zA-Z0-9])+$/"
},{
"id": "$$cap_admin_user",
"label": "admin name",
"defaultValue": "admin",
"description": "Name of the Nextcloud admin user.",
"validRegex": "/^([a-zA-Z0-9\\@\\.])+$/"
},{
"id": "$$cap_admin_pass",
"label": "admin password",
"description": "Password for the Nextcloud admin user.",
"validRegex": "/.{1,}/"
},{
"id": "$$cap_http_https_cors",
"label": "Protocol of proxy",
"defaultValue": "https",
"description": "Choose either http or https. cors configuration to login are set by the docker image, if you do not set this same as your proxy configuration, login will fail",
"validRegex": "/^http[s]?$/"
}]
"variables": [
{
"id": "$$cap_nextcloud_version",
"label": "NextCloud Version",
"defaultValue": "19.0.0",
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/library/nextcloud/tags/\n\ndo not use fpm versions.",
"validRegex": "/^([^\\s^\\/])+$/"
},
{
"id": "$$cap_mariadb_version",
"label": "MariaDB (database) version",
"defaultValue": "10.5.3",
"description": "Check out their Docker page for the valid tags https://hub.docker.com/_/mariadb?tab=tags",
"validRegex": "/^([^\\s^\\/])+$/"
},
{
"id": "$$cap_db_pass",
"label": "database password",
"description": "Password for the database user and root using mysql.",
"validRegex": "/.{1,}/"
},
{
"id": "$$cap_db_user",
"label": "database user",
"defaultValue": "nextcloud",
"description": "Username for the database using mysql.",
"validRegex": "/^([a-zA-Z0-9])+$/"
},
{
"id": "$$cap_admin_user",
"label": "admin name",
"defaultValue": "admin",
"description": "Name of the Nextcloud admin user.",
"validRegex": "/^([a-zA-Z0-9\\@\\.])+$/"
},
{
"id": "$$cap_admin_pass",
"label": "admin password",
"description": "Password for the Nextcloud admin user.",
"validRegex": "/.{1,}/"
},
{
"id": "$$cap_http_https_cors",
"label": "Protocol of proxy",
"defaultValue": "https",
"description": "Choose either http or https. cors configuration to login are set by the docker image, if you do not set this same as your proxy configuration, login will fail",
"validRegex": "/^http[s]?$/"
}
]
}

View File

@ -9,12 +9,9 @@
"$$cap_appname": {
"image": "sonatype/nexus3:$$cap__version",
"containerHttpPort": "8081",
"volumes": [
"$$cap_appname-data:/nexus-data"
],
"volumes": ["$$cap_appname-data:/nexus-data"],
"restart": "always",
"environment": {
}
"environment": {}
}
}
},

View File

@ -20,18 +20,20 @@
"start": "This is a very simply reverse proxy image. It forwards all HTTP requests to the HTTP address that you define.",
"end": "Reverse Proxy is deployed and available as $$cap_appname"
},
"variables": [{
"id": "$$cap_upstream_http_address",
"label": "Upstream address",
"description": "For example use https://caprover.com to forward all request to CapRover.\n If you're forwarding http requests to a CapRover internal app use http://srv-captain--yourappnamehere or if you want a particular port, use http://srv-captain--yourappnamehere:8080",
"defaultValue": "",
"validRegex": "/^(http:\\/\\/|https:\\/\\/)\\S*$/"
}, {
"id": "$$cap_max_body_size",
"label": "Client max body size",
"description": "Sets the maximum allowed size of the client request body, specified in the “Content-Length” request header field. If the size in a request exceeds the configured value, the 413 (Request Entity Too Large) error is returned to the client. Please be aware that browsers cannot correctly display this error. Setting size to 0 disables checking of client request body size.",
"defaultValue": "256M",
"validRegex": "/^\\d+M$/"
}]
"variables": [
{
"id": "$$cap_upstream_http_address",
"label": "Upstream address",
"description": "For example use https://caprover.com to forward all request to CapRover.\n If you're forwarding http requests to a CapRover internal app use http://srv-captain--yourappnamehere or if you want a particular port, use http://srv-captain--yourappnamehere:8080",
"defaultValue": "",
"validRegex": "/^(http:\\/\\/|https:\\/\\/)\\S*$/"
},
{
"id": "$$cap_max_body_size",
"label": "Client max body size",
"description": "Sets the maximum allowed size of the client request body, specified in the “Content-Length” request header field. If the size in a request exceeds the configured value, the 413 (Request Entity Too Large) error is returned to the client. Please be aware that browsers cannot correctly display this error. Setting size to 0 disables checking of client request body size.",
"defaultValue": "256M",
"validRegex": "/^\\d+M$/"
}
]
}

View File

@ -20,9 +20,7 @@
}
},
"$$cap_appname-nightscout": {
"depends_on": [
"$$cap_appname-mongodb"
],
"depends_on": ["$$cap_appname-mongodb"],
"dockerfileLines": [
"FROM node:10",
"RUN mkdir -p /opt/app",
@ -50,7 +48,8 @@
"start": "Nightscout acts as a web-based CGM (Continuous Glucose Monitor) to allow multiple caregivers to remotely view a patient's glucose data in real time.",
"end": "Nightscout is deployed and available as $$cap_appname-nightscout."
},
"variables": [{
"variables": [
{
"id": "$$cap_mongo_version",
"label": "MongoDB Version",
"defaultValue": "4",
@ -77,5 +76,4 @@
"validRegex": "/^([a-zA-Z0-9]){12,}$/"
}
]
}
}

View File

@ -11,17 +11,13 @@
},
"$$cap_appname-fakes3": {
"image": "lphoward/fake-s3",
"volumes": [
"$$cap_appname-fakes3:/fakes3_root"
],
"volumes": ["$$cap_appname-fakes3:/fakes3_root"],
"notExposeAsWebApp": "true"
},
"$$cap_appname-db": {
"image": "postgres:12.2",
"notExposeAsWebApp": "true",
"volumes": [
"$$cap_appname-db-data:/var/lib/postgresql/data"
],
"volumes": ["$$cap_appname-db-data:/var/lib/postgresql/data"],
"restart": "always",
"environment": {
"POSTGRES_USER": "$$cap_db_user",
@ -75,7 +71,8 @@
"start": "Outline is an open, extensible, wiki for your team built using React and Node.js.",
"end": "IMPORTANT: before you start using Outline, you need to \n\n 1) Enable HTTPS \n 2) Force HTTPS \n 3) Enable Websocket in $$cap_appname-outline. \n 4) Run database migration `npm run sequelize:migrate` within the $$cap_appname-outline docker container. \n\nYou can customize more settings by environmental variables described here: https://github.com/outline/outline/blob/0deecfac446c37545e0787b3d32062e608a950ab/.env.sample \n\n IMPORTANT: It will take up to 2 minutes for it to be ready. Before that, you might see a 502 error page.\n"
},
"variables": [{
"variables": [
{
"id": "$$cap_db_user",
"label": "Database user",
"defaultValue": "outlineuser",
@ -130,5 +127,4 @@
"validRegex": "/^([^\\s^\\/])+$/"
}
]
}

View File

@ -20,9 +20,7 @@
}
},
"$$cap_appname-parse": {
"depends_on": [
"$$cap_appname-mongodb"
],
"depends_on": ["$$cap_appname-mongodb"],
"image": "parseplatform/parse-server:$$cap_parse_version",
"containerHttpPort": "8080",
"restart": "always",
@ -38,9 +36,7 @@
}
},
"$$cap_appname-parse-dashbaord": {
"depends_on": [
"$$cap_appname-parse"
],
"depends_on": ["$$cap_appname-parse"],
"image": "parseplatform/parse-dashboard:$$cap_parse_dashboard_version",
"containerHttpPort": "4040",
"restart": "always",
@ -61,7 +57,8 @@
"start": "Parse Server is an open source version of the Parse backend that can be deployed to any infrastructure that can run Node.js. For more information on Parse platform see http://parseplatform.org\n\n Enter your Parse Configuration parameters and click on next. A MongoDB (database) and a Parse container will be created for you. The process will take about a minute for the process to finish.",
"end": "Parse is deployed! IMPORTANT: Make sure to enable HTTPS and Force HTTPS on your apps before accessing them! Your Parse Dashboard username is \"caprover\""
},
"variables": [{
"variables": [
{
"id": "$$cap_mongo_version",
"label": "MongoDB Version",
"defaultValue": "4",
@ -106,5 +103,4 @@
"validRegex": "/^([a-zA-Z0-9])+$/"
}
]
}
}

View File

@ -9,9 +9,7 @@
"$$cap_appname-db": {
"image": "postgres:$$cap_postgres_version",
"notExposeAsWebApp": "true",
"volumes": [
"$$cap_appname-db-data:/var/lib/postgresql/data"
],
"volumes": ["$$cap_appname-db-data:/var/lib/postgresql/data"],
"restart": "always",
"environment": {
"POSTGRES_USER": "$$cap_db_user",
@ -22,16 +20,11 @@
"$$cap_appname-redis": {
"image": "redis:$$cap_redis_version",
"notExposeAsWebApp": "true",
"volumes": [
"$$cap_appname-redis-data:/data"
],
"volumes": ["$$cap_appname-redis-data:/data"],
"restart": "always"
},
"$$cap_appname": {
"depends_on": [
"$$cap_appname-db",
"$$cap_appname-redis"
],
"depends_on": ["$$cap_appname-db", "$$cap_appname-redis"],
"image": "chocobozzz/peertube:$$cap_peertube_version",
"containerHttpPort": "9000",
"volumes": [
@ -40,22 +33,22 @@
],
"restart": "always",
"environment": {
"PEERTUBE_DB_USERNAME": "$$cap_db_user",
"PEERTUBE_DB_PASSWORD": "$$cap_db_pass",
"PEERTUBE_DB_HOSTNAME": "srv-captain--$$cap_appname-db",
"PEERTUBE_REDIS_HOSTNAME": "srv-captain--$$cap_appname-redis",
"PEERTUBE_WEBSERVER_HOSTNAME": "$$cap_appname.$$cap_root_domain",
"PEERTUBE_WEBSERVER_PORT": "443",
"PEERTUBE_WEBSERVER_HTTPS": "true",
"PEERTUBE_TRUST_PROXY": "[\"127.0.0.1\", \"loopback\", \"172.18.0.0/16\"]",
"PEERTUBE_SMTP_USERNAME": "$$cap_smtp_username",
"PEERTUBE_SMTP_PASSWORD": "$$cap_smtp_password",
"PEERTUBE_SMTP_HOSTNAME": "$$cap_smtp_hostname",
"PEERTUBE_SMTP_PORT": "$$cap_smtp_port",
"PEERTUBE_SMTP_FROM": "$$cap_smtp_from",
"PEERTUBE_SMTP_TLS": "$$cap_smtp_tls",
"PEERTUBE_SMTP_DISABLE_STARTTLS": "$$cap_smtp_starttls",
"PEERTUBE_ADMIN_EMAIL": "$$cap_admin_email"
"PEERTUBE_DB_USERNAME": "$$cap_db_user",
"PEERTUBE_DB_PASSWORD": "$$cap_db_pass",
"PEERTUBE_DB_HOSTNAME": "srv-captain--$$cap_appname-db",
"PEERTUBE_REDIS_HOSTNAME": "srv-captain--$$cap_appname-redis",
"PEERTUBE_WEBSERVER_HOSTNAME": "$$cap_appname.$$cap_root_domain",
"PEERTUBE_WEBSERVER_PORT": "443",
"PEERTUBE_WEBSERVER_HTTPS": "true",
"PEERTUBE_TRUST_PROXY": "[\"127.0.0.1\", \"loopback\", \"172.18.0.0/16\"]",
"PEERTUBE_SMTP_USERNAME": "$$cap_smtp_username",
"PEERTUBE_SMTP_PASSWORD": "$$cap_smtp_password",
"PEERTUBE_SMTP_HOSTNAME": "$$cap_smtp_hostname",
"PEERTUBE_SMTP_PORT": "$$cap_smtp_port",
"PEERTUBE_SMTP_FROM": "$$cap_smtp_from",
"PEERTUBE_SMTP_TLS": "$$cap_smtp_tls",
"PEERTUBE_SMTP_DISABLE_STARTTLS": "$$cap_smtp_starttls",
"PEERTUBE_ADMIN_EMAIL": "$$cap_admin_email"
}
}
},
@ -67,7 +60,8 @@
"start": "PeerTube is a free, decentralized and federated video platform. (Github : https://github.com/Chocobozzz/PeerTube/)",
"end": "Peertube is deployed and available as $$cap_appname. \n\n IMPORTANT: It will take up to 2 minutes for peertube to be ready. Before that, you might see 502 error page.\n"
},
"variables": [{
"variables": [
{
"id": "$$cap_db_user",
"label": "Database user",
"defaultValue": "peertubeuser",
@ -141,5 +135,4 @@
"defaultValue": ""
}
]
}

View File

@ -10,9 +10,7 @@
"image": "thajeztah/pgadmin4:$$cap_pgadmin4_version",
"containerHttpPort": "5050",
"restart": "always",
"volumes": [
"$$cap_appname-data:/pgadmin"
]
"volumes": ["$$cap_appname-data:/pgadmin"]
}
}
},
@ -20,7 +18,8 @@
"start": "pgAdmin is the most popular and feature rich Open Source administration and development platform for PostgreSQL, the most advanced Open Source database in the world.\n\n Enter your Configuration parameters and click on next. It will take about a minute for the process to finish.",
"end": "pgAdmin is deployed and available as $$cap_appname"
},
"variables": [{
"variables": [
{
"id": "$$cap_pgadmin4_version",
"label": "Version Tag",
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/thajeztah/pgadmin4/tags/",
@ -28,4 +27,4 @@
"validRegex": "/^([^\\s^\\/])+$/"
}
]
}
}

View File

@ -17,7 +17,8 @@
"start": "pgweb is a web-based database browser for PostgreSQL, written in Go.",
"end": "pgweb is deployed."
},
"variables": [{
"variables": [
{
"id": "$$cap_pgweb_version",
"label": "pgweb Version",
"defaultValue": "0.11.2",

View File

@ -9,9 +9,7 @@
"$$cap_appname": {
"image": "photoprism/photoprism:$$cap_photoprism_version",
"containerHttpPort": "2342",
"volumes": [
"$$cap_appname-data:/photoprism/originals/"
],
"volumes": ["$$cap_appname-data:/photoprism/originals/"],
"restart": "always"
}
}
@ -20,7 +18,8 @@
"start": "PhotoPrism is a server-based application for browsing, organizing and sharing your personal photo collection. It makes use of the latest technologies to automatically tag and find pictures without getting in your way.",
"end": "Photoprism is deployed and available as $$cap_appname. Please also enable Websockets in the Caprover UI. When you log in the default password is 'photoprism'"
},
"variables": [{
"variables": [
{
"id": "$$cap_photoprism_version",
"label": "Photoprism Version",
"defaultValue": "20200427",

View File

@ -1,63 +1,63 @@
{
"captainVersion": "2",
"documentation": "Taken from https://hub.docker.com/r/plexinc/pms-docker.",
"displayName": "Plex Media Server",
"description": "Plex organizes video, music and photos from personal media libraries and streams them to smart TVs, streaming boxes and mobile devices.",
"dockerCompose": {
"version": "3.1",
"services": {
"$$cap_appname": {
"image": "plexinc/pms-docker:$$cap_plex_version",
"containerHttpPort": "32400",
"environment": {
"TZ": "$$cap_tz",
"PLEX_CLAIM": "$$cap_plex_token",
"ADVERTISE_IP": "http://$$cap_appname.$$cap_root_domain/"
"captainVersion": "2",
"documentation": "Taken from https://hub.docker.com/r/plexinc/pms-docker.",
"displayName": "Plex Media Server",
"description": "Plex organizes video, music and photos from personal media libraries and streams them to smart TVs, streaming boxes and mobile devices.",
"dockerCompose": {
"version": "3.1",
"services": {
"$$cap_appname": {
"image": "plexinc/pms-docker:$$cap_plex_version",
"containerHttpPort": "32400",
"environment": {
"TZ": "$$cap_tz",
"PLEX_CLAIM": "$$cap_plex_token",
"ADVERTISE_IP": "http://$$cap_appname.$$cap_root_domain/"
},
"ports": [
"32400:32400",
"3005:3005",
"8324:8324",
"32469:32469",
"1900:1900",
"32410:32410",
"32412:32412",
"32413:32413",
"32414:32414"
],
"hostname": "$$cap_appname.$$cap_root_domain",
"volumes": [
"$$cap_appname-config:/config",
"$$cap_appname-transcode:/transcode",
"$$cap_appname-media:/data"
]
}
}
},
"instructions": {
"start": "Plex organizes video, music and photos from personal media libraries and streams them to smart TVs, streaming boxes and mobile devices.\n\nIMPORTANT: Plex uses ports 32400, 3005, 8324, 32469, 1900, 32410, 32412, 32412, 32413, and 32414. If any of these ports are in use, your installation will malfunction.",
"end": "Plex has been successfully deployed. Please wait a minute before accessing your Plex dashboard. \n\nIf you're installing behind a NAT, make sure to forward port 32400."
},
"variables": [
{
"id": "$$cap_plex_version",
"label": "Plex Version",
"defaultValue": "1.19.2.2737-b69929dab",
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/plexinc/pms-docker/tags",
"validRegex": "/^([^\\s^\\/])+$/"
},
"ports": [
"32400:32400",
"3005:3005",
"8324:8324",
"32469:32469",
"1900:1900",
"32410:32410",
"32412:32412",
"32413:32413",
"32414:32414"
],
"hostname": "$$cap_appname.$$cap_root_domain",
"volumes": [
"$$cap_appname-config:/config",
"$$cap_appname-transcode:/transcode",
"$$cap_appname-media:/data"
]
}
}
},
"instructions": {
"start": "Plex organizes video, music and photos from personal media libraries and streams them to smart TVs, streaming boxes and mobile devices.\n\nIMPORTANT: Plex uses ports 32400, 3005, 8324, 32469, 1900, 32410, 32412, 32412, 32413, and 32414. If any of these ports are in use, your installation will malfunction.",
"end": "Plex has been successfully deployed. Please wait a minute before accessing your Plex dashboard. \n\nIf you're installing behind a NAT, make sure to forward port 32400."
},
"variables": [
{
"id": "$$cap_plex_version",
"label": "Plex Version",
"defaultValue": "1.19.2.2737-b69929dab",
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/plexinc/pms-docker/tags",
"validRegex": "/^([^\\s^\\/])+$/"
},
{
"id": "$$cap_plex_token",
"label": "Plex Claim Token",
"description": "Get your token from https://www.plex.tv/claim",
"validRegex": "/.{1,}/"
},
{
"id": "$$cap_tz",
"label": "Time Zone",
"defaultValue": "America/New_York",
"description": "Get yours from https://en.wikipedia.org/wiki/List_of_tz_database_time_zones",
"validRegex": "/.{1,}/"
}
]
{
"id": "$$cap_plex_token",
"label": "Plex Claim Token",
"description": "Get your token from https://www.plex.tv/claim",
"validRegex": "/.{1,}/"
},
{
"id": "$$cap_tz",
"label": "Time Zone",
"defaultValue": "America/New_York",
"description": "Get yours from https://en.wikipedia.org/wiki/List_of_tz_database_time_zones",
"validRegex": "/.{1,}/"
}
]
}

View File

@ -30,4 +30,4 @@
"validRegex": "/^([^\\s^\\/])+$/"
}
]
}
}

View File

@ -1,57 +1,57 @@
{
"captainVersion": "2",
"documentation": "Read the poste.io documentation @ https://poste.io/doc",
"displayName": "Poste.io",
"description": "Poste.io - complete mailserver built in one container",
"dockerCompose": {
"version": "3.7",
"services": {
"$$cap_appname": {
"image": "analogic/poste.io:$$cap_poste_version",
"ports": [
"25:25",
"110:110",
"143:143",
"465:465",
"587:587",
"993:993",
"995:995",
"4190:4190"
],
"volumes": [
"/etc/localtime:/etc/localtime:ro",
"$$cap_appname-data:/data"
],
"restart": "always",
"environment": {
"HTTPS": "OFF",
"LETSENCRYPT_EMAIL": "$$cap_email",
"LETSENCRYPT_HOST": "$$cap_host",
"VIRTUAL_HOST": "$$cap_host"
"captainVersion": "2",
"documentation": "Read the poste.io documentation @ https://poste.io/doc",
"displayName": "Poste.io",
"description": "Poste.io - complete mailserver built in one container",
"dockerCompose": {
"version": "3.7",
"services": {
"$$cap_appname": {
"image": "analogic/poste.io:$$cap_poste_version",
"ports": [
"25:25",
"110:110",
"143:143",
"465:465",
"587:587",
"993:993",
"995:995",
"4190:4190"
],
"volumes": [
"/etc/localtime:/etc/localtime:ro",
"$$cap_appname-data:/data"
],
"restart": "always",
"environment": {
"HTTPS": "OFF",
"LETSENCRYPT_EMAIL": "$$cap_email",
"LETSENCRYPT_HOST": "$$cap_host",
"VIRTUAL_HOST": "$$cap_host"
}
}
}
}
}
},
"instructions": {
"start": "SMTP + IMAP + POP3 + Antispam + Antivirus\nWeb administration + Web email\n...on your server in ~5 minutes\n\nRecommended: Use\"mail\" as the App Name.",
"end": "Please paste the preDeployFunction from https://github.com/caprover/caprover/issues/479#issuecomment-520902309 to the App Config > Pre-Deploy section of your created poste.io instance $$cap_appname.\n\nAlso ensure that you've set up the reverse DNS (PTR record) for your server and DKIM, SPF (DNS TXT) records.\n\nThe deployment can take up to 2 minutes."
},
"variables": [
{
"id": "$$cap_poste_version",
"label": "Poste.io version tag",
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/analogic/poste.io/tags",
"defaultValue": "2"
},
{
"id": "$$cap_email",
"label": "Email Address",
"description": "The email address used for Lets Encrypt certificates."
"instructions": {
"start": "SMTP + IMAP + POP3 + Antispam + Antivirus\nWeb administration + Web email\n...on your server in ~5 minutes\n\nRecommended: Use\"mail\" as the App Name.",
"end": "Please paste the preDeployFunction from https://github.com/caprover/caprover/issues/479#issuecomment-520902309 to the App Config > Pre-Deploy section of your created poste.io instance $$cap_appname.\n\nAlso ensure that you've set up the reverse DNS (PTR record) for your server and DKIM, SPF (DNS TXT) records.\n\nThe deployment can take up to 2 minutes."
},
{
"id": "$$cap_host",
"label": "Hostname",
"description": "The full hostname for this captain app. (usually mail.mydomain.com)"
}
]
"variables": [
{
"id": "$$cap_poste_version",
"label": "Poste.io version tag",
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/analogic/poste.io/tags",
"defaultValue": "2"
},
{
"id": "$$cap_email",
"label": "Email Address",
"description": "The email address used for Lets Encrypt certificates."
},
{
"id": "$$cap_host",
"label": "Hostname",
"description": "The full hostname for this captain app. (usually mail.mydomain.com)"
}
]
}

View File

@ -9,9 +9,7 @@
"$$cap_appname-db": {
"image": "postgres:$$cap_postgres_version",
"notExposeAsWebApp": "true",
"volumes": [
"$$cap_appname-db-data:/var/lib/postgresql/data"
],
"volumes": ["$$cap_appname-db-data:/var/lib/postgresql/data"],
"restart": "always",
"environment": {
"POSTGRES_USER": "$$cap_pg_user",
@ -26,7 +24,8 @@
"start": "PostgreSQL, often simply Postgres, is an object-relational database management system (ORDBMS) with an emphasis on extensibility and standards-compliance. As a database server, its primary function is to store data, securely and supporting best practices, and retrieve it later, as requested by other software applications, be it those on the same computer or those running on another computer across a network (including the Internet). It can handle workloads ranging from small single-machine applications to large Internet-facing applications with many concurrent users.\n\n After installation on CapRover, it will be available as srv-captain--YOUR_CONTAINER_NAME at port 5432 to other CapRover apps.\n\n Enter your Postgres Configuration parameters and click on next. It will take about a minute for the process to finish.",
"end": "Postgres is deployed and available as srv-captain--$$cap_appname-db:5432 to other apps. For example with NodeJS: 'const client = new Client({ user: 'cap_pg_user', host: 'srv-captain--$$cap_appname', database: 'cap_pg_db', password: '********', port: 5432})'"
},
"variables": [{
"variables": [
{
"id": "$$cap_postgres_version",
"label": "Postgres Version",
"defaultValue": "9.6",
@ -58,5 +57,4 @@
"validRegex": "/.{0,}/"
}
]
}

View File

@ -13,20 +13,14 @@
"environment": {
"MYSQL_ROOT_PASSWORD": "$$cap_db_pass"
},
"volumes": [
"$$cap_appname-db-data:/var/lib/mysql"
]
"volumes": ["$$cap_appname-db-data:/var/lib/mysql"]
},
"$$cap_appname": {
"image": "prismagraphql/prisma:$$cap_prisma_version",
"restart": "always",
"ports": [
"4466:4466"
],
"ports": ["4466:4466"],
"containerHttpPort": "4466",
"depends_on": [
"$$cap_appname-db"
],
"depends_on": ["$$cap_appname-db"],
"environment": {
"PRISMA_CONFIG": "managementApiSecret: $$cap_management_secret\nport: 4466\ndatabases:\n default:\n connector: mysql\n host: srv-captain--$$cap_appname-db\n port: 3306\n user: root\n password: $$cap_db_pass\n migrations: true\n"
}

View File

@ -9,9 +9,7 @@
"$$cap_appname": {
"image": "rabbitmq:$$cap_rabbitmq_version",
"notExposeAsWebApp": "true",
"volumes": [
"$$cap_appname-rabbitmq-data:/var/lib/rabbitmq"
],
"volumes": ["$$cap_appname-rabbitmq-data:/var/lib/rabbitmq"],
"restart": "always",
"environment": {
"RABBITMQ_DEFAULT_USER": "$$cap_rabbitmq_user",
@ -25,7 +23,8 @@
"start": "RabbitMQ is open source message broker software (sometimes called message-oriented middleware) that implements the Advanced Message Queuing Protocol (AMQP). The RabbitMQ server is written in the Erlang programming language and is built on the Open Telecom Platform framework for clustering and failover. Client libraries to interface with the broker are available for all major programming languages.\n\n Enter your RabbitMQ Configuration parameters and click on next. It will take about a minute for the process to finish.",
"end": "RabbitMQ is deployed and available as srv-captain--$$cap_appname:5672 to other apps."
},
"variables": [{
"variables": [
{
"id": "$$cap_rabbitmq_version",
"label": "RabbitMQ Version Tag",
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/library/rabbitmq/tags/",

View File

@ -10,9 +10,7 @@
"image": "hardware/rainloop:$$cap_rainloop_version",
"containerHttpPort": "8888",
"restart": "always",
"volumes": [
"$$cap_appname-data:/rainloop/data"
]
"volumes": ["$$cap_appname-data:/rainloop/data"]
}
},
"volumes": {

View File

@ -12,9 +12,7 @@
"CMD exec redis-server --requirepass \"$$cap_redis_password\""
],
"notExposeAsWebApp": "true",
"volumes": [
"$$cap_appname-redis-data:/data"
],
"volumes": ["$$cap_appname-redis-data:/data"],
"restart": "always",
"environment": {
"REDIS_PASSWORD": "$$cap_redis_password"
@ -40,4 +38,4 @@
"validRegex": "/^([a-zA-Z0-9-_])+$/"
}
]
}
}

View File

@ -1,43 +1,39 @@
{
"captainVersion": "2",
"documentation": "https://hub.docker.com/r/resilio/sync",
"displayName": "Resilio Sync",
"description": "File synchronization and sharing solution based on BitTorrent technology.",
"dockerCompose": {
"services": {
"$$cap_appname": {
"containerHttpPort": "8888",
"ports": [
"$$cap_port_sync:55555"
],
"image": "resilio/sync:$$cap_version",
"restart": "always",
"volumes": [
"$$cap_appname-data:/mnt/sync"
]
}
},
"version": "2",
"volumes": {
"$$cap_appname-data": {}
}
},
"instructions": {
"end": "Your instance of Sync is now starting up.\n\nNote that all sync folders will have to be created under /mnt/sync/folders/ from within the app.",
"start": "Set up Sync to synchronize or share files without having to store your data in the cloud."
},
"variables": [
{
"label": "Resilio Sync Docker Version",
"defaultValue": "2.6.4",
"description": "It's highly recommended that you don't use the latest tag but instead the major version you need.",
"id": "$$cap_version"
},
{
"label":"Listening port for Sync traffic",
"description":"Port that Sync listens on for data synchronization (TCP & UDP).",
"defaultValue":"55555",
"id":"$$cap_port_sync"
}
]
"captainVersion": "2",
"documentation": "https://hub.docker.com/r/resilio/sync",
"displayName": "Resilio Sync",
"description": "File synchronization and sharing solution based on BitTorrent technology.",
"dockerCompose": {
"services": {
"$$cap_appname": {
"containerHttpPort": "8888",
"ports": ["$$cap_port_sync:55555"],
"image": "resilio/sync:$$cap_version",
"restart": "always",
"volumes": ["$$cap_appname-data:/mnt/sync"]
}
},
"version": "2",
"volumes": {
"$$cap_appname-data": {}
}
},
"instructions": {
"end": "Your instance of Sync is now starting up.\n\nNote that all sync folders will have to be created under /mnt/sync/folders/ from within the app.",
"start": "Set up Sync to synchronize or share files without having to store your data in the cloud."
},
"variables": [
{
"label": "Resilio Sync Docker Version",
"defaultValue": "2.6.4",
"description": "It's highly recommended that you don't use the latest tag but instead the major version you need.",
"id": "$$cap_version"
},
{
"label": "Listening port for Sync traffic",
"description": "Port that Sync listens on for data synchronization (TCP & UDP).",
"defaultValue": "55555",
"id": "$$cap_port_sync"
}
]
}

View File

@ -1,25 +1,21 @@
{
"captainVersion": "2",
"documentation": "Taken from https://hub.docker.com/_/rethinkdb.",
"displayName": "RethinkDB",
"description": "RethinkDB pushes JSON to your apps in realtime",
"dockerCompose": {
"version": "7",
"services": {
"$$cap_appname": {
"image": "rethinkdb:2.3.6",
"containerHttpPort":"8080",
"volumes": [
"$$cap_appname-data:/data/rethinkdb_data/"
]
}
"captainVersion": "2",
"documentation": "Taken from https://hub.docker.com/_/rethinkdb.",
"displayName": "RethinkDB",
"description": "RethinkDB pushes JSON to your apps in realtime",
"dockerCompose": {
"version": "7",
"services": {
"$$cap_appname": {
"image": "rethinkdb:2.3.6",
"containerHttpPort": "8080",
"volumes": ["$$cap_appname-data:/data/rethinkdb_data/"]
}
}
}
,
"instructions":{
"end":"RethinkDB is deployed and available as http://$$cap_appname.$$cap_root_domain/.\n\n It may take a few minutes for RethinkDB to initialize.\n",
"start":"RethinkDB is an open-source, distributed database built to store JSON documents and effortlessly scale to multiple machines."
},
"variables":[
]
},
"instructions": {
"end": "RethinkDB is deployed and available as http://$$cap_appname.$$cap_root_domain/.\n\n It may take a few minutes for RethinkDB to initialize.\n",
"start": "RethinkDB is an open-source, distributed database built to store JSON documents and effortlessly scale to multiple machines."
},
"variables": []
}

View File

@ -25,15 +25,11 @@
"CMD exec redis-server"
],
"notExposeAsWebApp": "true",
"volumes": [
"$$cap_appname-redis-data:/data"
],
"volumes": ["$$cap_appname-redis-data:/data"],
"restart": "always"
},
"$$cap_appname-cron": {
"depends_on": [
"$$cap_appname"
],
"depends_on": ["$$cap_appname"],
"dockerfileLines": [
"FROM sentry:$$cap_sentry_version",
"RUN groupadd -r $$cap_appname-cron && useradd -r -g $$cap_appname-cron $$cap_appname-cron",
@ -48,9 +44,7 @@
}
},
"$$cap_appname-worker": {
"depends_on": [
"$$cap_appname-cron"
],
"depends_on": ["$$cap_appname-cron"],
"dockerfileLines": [
"FROM sentry:$$cap_sentry_version",
"RUN groupadd -r $$cap_appname-worker && useradd -r -g $$cap_appname-worker $$cap_appname-worker",
@ -99,13 +93,8 @@
"CMD [\"./init.sh\"]"
],
"containerHttpPort": "9000",
"depends_on": [
"$$cap_appname-postgres",
"$$cap_appname-redis"
],
"volumes": [
"$$cap_appname-data:/var/lib/sentry/files"
],
"depends_on": ["$$cap_appname-postgres", "$$cap_appname-redis"],
"volumes": ["$$cap_appname-data:/var/lib/sentry/files"],
"restart": "always",
"environment": {
"CAP_SENTRY_VERSION": "$$cap_sentry_version",
@ -159,13 +148,13 @@
"id": "$$cap_pg_pass",
"label": "Postgres Password",
"description": "Password strength minimal requeriments: Should contain at least one digit, one lower case, one upper case, one special character and at least 12 from the mentioned characters.",
"validRegex": "/^(?=.*[A-Z])(?=.*[\/!?@±#§$€%^&*()\\\\-_=+{}~+´ºª`^\"';:,<.>\\|\\]\\[])(?=.*[0-9])(?=.*[a-z]).{12,}$/"
"validRegex": "/^(?=.*[A-Z])(?=.*[/!?@±#§$€%^&*()\\\\-_=+{}~+´ºª`^\"';:,<.>\\|\\]\\[])(?=.*[0-9])(?=.*[a-z]).{12,}$/"
},
{
"id": "$$cap_sentry_secret",
"label": "Sentry Secret",
"description": "A secret key used for cryptographic functions within Sentry. This key should be unique and consistent across all running instances. Password strength minimal requeriments: Should contain at least one digit, one lower case, one special character and at least 50 from the mentioned characters. You can generate a new secret key doing something like: docker run --rm sentry config generate-secret-key",
"validRegex": "/^(?=.*[\/!?@±#§$€%^&*()\\\\-_=+{}~+´ºª`^\"';:,<.>\\|\\]\\[])(?=.*[0-9])(?=.*[a-z]).{50,}$/"
"validRegex": "/^(?=.*[/!?@±#§$€%^&*()\\\\-_=+{}~+´ºª`^\"';:,<.>\\|\\]\\[])(?=.*[0-9])(?=.*[a-z]).{50,}$/"
},
{
"id": "$$cap_sentry_superuser_email",
@ -176,7 +165,7 @@
"id": "$$cap_sentry_superuser_password",
"label": "Sentry Superuser Password",
"description": "Password strength minimal requeriments: Should contain at least one digit, one lower case, one upper case, one special character and at least 12 from the mentioned characters.",
"validRegex": "/^(?=.*[A-Z])(?=.*[\/!?@±#§$€%^&*()\\\\-_=+{}~+´ºª`^\"';:,<.>\\|\\]\\[])(?=.*[0-9])(?=.*[a-z]).{12,}$/"
"validRegex": "/^(?=.*[A-Z])(?=.*[/!?@±#§$€%^&*()\\\\-_=+{}~+´ºª`^\"';:,<.>\\|\\]\\[])(?=.*[0-9])(?=.*[a-z]).{12,}$/"
},
{
"id": "$$cap_sentry_server_mail",
@ -213,4 +202,4 @@
"description": "If you're using Mailgun for inbound mail, set your API key and configure a route to forward to /api/hooks/mailgun/inbound/"
}
]
}
}

View File

@ -9,9 +9,7 @@
"$$cap_appname-db": {
"image": "mysql:5.7",
"notExposeAsWebApp": "true",
"volumes": [
"$$cap_appname-db-data:/var/lib/mysql"
],
"volumes": ["$$cap_appname-db-data:/var/lib/mysql"],
"restart": "always",
"environment": {
"MYSQL_ROOT_PASSWORD": "$$cap_db_pass",
@ -21,9 +19,7 @@
}
},
"$$cap_appname-shopware": {
"depends_on": [
"$$cap_appname-db"
],
"depends_on": ["$$cap_appname-db"],
"image": "shyim/shopware:$$cap_sw_version",
"restart": "always",
"environment": {
@ -113,4 +109,4 @@
"defaultValue": "shopware"
}
]
}
}

View File

@ -1,52 +1,52 @@
{
"captainVersion": "2",
"documentation": "https://hub.docker.com/r/sinusbot/docker",
"displayName": "SinusBot",
"description": "Music bot for TS3 and Discord.",
"dockerCompose": {
"services": {
"$$cap_appname": {
"containerHttpPort": "8087",
"environment": {
"UID": "$$cap_uid",
"GID": "$$cap_gid"
},
"image": "sinusbot/docker:$$cap_version",
"restart": "always",
"volumes": [
"$$cap_appname-data:/opt/sinusbot/data",
"$$cap_appname-scripts:/opt/sinusbot/scripts"
]
}
},
"version": "2",
"volumes": {
"$$cap_appname-data": {},
"$$cap_appname-scripts": {}
}
},
"instructions": {
"end": "Your instance of SinusBot is now starting up and should be ready within five minutes. Check the deployment logs for the initial password and open the web interface to set up your media library and bot connection.",
"start": "You have to read and agree to the terms in the disclaimer: https://github.com/SinusBot/docker#disclaimer"
},
"variables": [
{
"label": "SinusBot Docker Version",
"defaultValue": "1.0.0-beta.10-202ee4d",
"description": "It's highly recommended that you don't use the latest tag but instead the major version you need.",
"id": "$$cap_version"
},
{
"label": "UID",
"description": "User ID to run the service as (using root is not recommended), see https://github.com/SinusBot/docker#unprivileged-user",
"defaultValue": "1000",
"id": "$$cap_uid"
},
{
"label": "GID",
"description": "Group ID to run the service as (using root is not recommended), see https://github.com/SinusBot/docker#unprivileged-user",
"defaultValue": "1000",
"id": "$$cap_gid"
}
]
}
"captainVersion": "2",
"documentation": "https://hub.docker.com/r/sinusbot/docker",
"displayName": "SinusBot",
"description": "Music bot for TS3 and Discord.",
"dockerCompose": {
"services": {
"$$cap_appname": {
"containerHttpPort": "8087",
"environment": {
"UID": "$$cap_uid",
"GID": "$$cap_gid"
},
"image": "sinusbot/docker:$$cap_version",
"restart": "always",
"volumes": [
"$$cap_appname-data:/opt/sinusbot/data",
"$$cap_appname-scripts:/opt/sinusbot/scripts"
]
}
},
"version": "2",
"volumes": {
"$$cap_appname-data": {},
"$$cap_appname-scripts": {}
}
},
"instructions": {
"end": "Your instance of SinusBot is now starting up and should be ready within five minutes. Check the deployment logs for the initial password and open the web interface to set up your media library and bot connection.",
"start": "You have to read and agree to the terms in the disclaimer: https://github.com/SinusBot/docker#disclaimer"
},
"variables": [
{
"label": "SinusBot Docker Version",
"defaultValue": "1.0.0-beta.10-202ee4d",
"description": "It's highly recommended that you don't use the latest tag but instead the major version you need.",
"id": "$$cap_version"
},
{
"label": "UID",
"description": "User ID to run the service as (using root is not recommended), see https://github.com/SinusBot/docker#unprivileged-user",
"defaultValue": "1000",
"id": "$$cap_uid"
},
{
"label": "GID",
"description": "Group ID to run the service as (using root is not recommended), see https://github.com/SinusBot/docker#unprivileged-user",
"defaultValue": "1000",
"id": "$$cap_gid"
}
]
}

View File

@ -9,9 +9,7 @@
"$$cap_appname-db": {
"image": "postgres:$$cap_postgres_version",
"notExposeAsWebApp": "true",
"volumes": [
"$$cap_appname-db-data:/var/lib/postgresql/data"
],
"volumes": ["$$cap_appname-db-data:/var/lib/postgresql/data"],
"restart": "always",
"environment": {
"POSTGRES_USER": "sonarqube",
@ -23,9 +21,7 @@
"$$cap_appname": {
"image": "sonarqube:$$cap_sonar_version",
"containerHttpPort": "9000",
"depends_on": [
"$$cap_appname-db"
],
"depends_on": ["$$cap_appname-db"],
"volumes": [
"$$cap_appname-conf:/opt/sonarqube/conf",
"$$cap_appname-data:/opt/sonarqube/data",
@ -73,4 +69,4 @@
"validRegex": "/.{0,}/"
}
]
}
}

View File

@ -7,7 +7,7 @@
"version": "3.3",
"services": {
"$$cap_appname": {
"containerHttpPort":"7080",
"containerHttpPort": "7080",
"image": "sourcegraph/server:$$cap_container_version",
"volumes": [
"$$cap_appname-config:/etc/sourcegraph",
@ -27,7 +27,7 @@
"label": "Version",
"defaultValue": "3.2.2",
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/sourcegraph/server/tags",
"validRegex":"/^([^\\s^\\/])+$/"
"validRegex": "/^([^\\s^\\/])+$/"
}
]
}
}

View File

@ -1,80 +1,76 @@
{
"captainVersion": "2",
"documentation": "https://github.com/nimmis/docker-spigot",
"displayName": "Spigot",
"description": "Spigot is a performance optimized server for Minecraft with plugin support.",
"dockerCompose": {
"services": {
"$$cap_appname": {
"notExposeAsWebApp": "true",
"ports": [
"$$cap_port:25565"
],
"environment": {
"EULA": "$$cap_eula",
"SPIGOT_VER": "$$cap_spigot_version",
"MC_MAXMEM": "$$cap_maxmem",
"MC_MINMEM": "$$cap_minmem",
"SPIGOT_AUTORESTART": "$$cap_autorestart"
},
"image": "nimmis/spigot@$$cap_version",
"restart": "always",
"volumes": [
"$$cap_appname-data:/minecraft"
]
}
},
"version": "2",
"volumes": {
"$$cap_appname-data": {}
}
},
"instructions": {
"end": "The container will now download and build the Spigot Minecraft server, so you will need a few minutes before you can access it. Check the status in the logs.",
"start": "This one click app is based on a community created docker image, nimmis/spigot. You have to agree to the Minecraft EULA to be able to use this software: https://account.mojang.com/documents/minecraft_eula"
},
"variables": [
{
"label": "EULA",
"description": "IMPORTANT: Read the EULA at https://account.mojang.com/documents/minecraft_eula and set this field to true if you agree. This is a prerequisite to use this software.",
"defaultValue": "",
"id": "$$cap_eula"
},
{
"label": "Docker Image Version",
"description": "The Docker image used does not offer version tags. Since the use of the latest tag is not recommended, refer to the image version by SHA tag.",
"defaultValue": "sha256:b968685fadb79e6dacca8efc030ee53f695441b8d6dfde4b86e027ba1f6796db",
"id": "$$cap_version"
},
{
"label": "Game Server Port (TCP/UDP)",
"description": "This is the port the server will expose for players to join.",
"defaultValue": "25565",
"id": "$$cap_port"
},
{
"label": "Spigot Version",
"description": "Versions as available on https://www.spigotmc.org/wiki/buildtools/#versions (e.g. 1.15.2 or latest)",
"defaultValue": "latest",
"id": "$$cap_spigot_version"
},
{
"label": "Maximum Memory",
"description": "Define maximum memory to be used by the server (e.g. 512m or 2g)",
"defaultValue": "1g",
"id": "$$cap_maxmem"
},
{
"label": "Initial Memory",
"description": "Define initial memory reservation to be used by the server (e.g. 512m or 2g)",
"defaultValue": "512m",
"id": "$$cap_minmem"
},
{
"label": "Autorestart",
"description": "Define if container should automatically restart after issuing a stop command within the server (yes or no)",
"defaultValue": "yes",
"id": "$$cap_autorestart"
}
]
}
"captainVersion": "2",
"documentation": "https://github.com/nimmis/docker-spigot",
"displayName": "Spigot",
"description": "Spigot is a performance optimized server for Minecraft with plugin support.",
"dockerCompose": {
"services": {
"$$cap_appname": {
"notExposeAsWebApp": "true",
"ports": ["$$cap_port:25565"],
"environment": {
"EULA": "$$cap_eula",
"SPIGOT_VER": "$$cap_spigot_version",
"MC_MAXMEM": "$$cap_maxmem",
"MC_MINMEM": "$$cap_minmem",
"SPIGOT_AUTORESTART": "$$cap_autorestart"
},
"image": "nimmis/spigot@$$cap_version",
"restart": "always",
"volumes": ["$$cap_appname-data:/minecraft"]
}
},
"version": "2",
"volumes": {
"$$cap_appname-data": {}
}
},
"instructions": {
"end": "The container will now download and build the Spigot Minecraft server, so you will need a few minutes before you can access it. Check the status in the logs.",
"start": "This one click app is based on a community created docker image, nimmis/spigot. You have to agree to the Minecraft EULA to be able to use this software: https://account.mojang.com/documents/minecraft_eula"
},
"variables": [
{
"label": "EULA",
"description": "IMPORTANT: Read the EULA at https://account.mojang.com/documents/minecraft_eula and set this field to true if you agree. This is a prerequisite to use this software.",
"defaultValue": "",
"id": "$$cap_eula"
},
{
"label": "Docker Image Version",
"description": "The Docker image used does not offer version tags. Since the use of the latest tag is not recommended, refer to the image version by SHA tag.",
"defaultValue": "sha256:b968685fadb79e6dacca8efc030ee53f695441b8d6dfde4b86e027ba1f6796db",
"id": "$$cap_version"
},
{
"label": "Game Server Port (TCP/UDP)",
"description": "This is the port the server will expose for players to join.",
"defaultValue": "25565",
"id": "$$cap_port"
},
{
"label": "Spigot Version",
"description": "Versions as available on https://www.spigotmc.org/wiki/buildtools/#versions (e.g. 1.15.2 or latest)",
"defaultValue": "latest",
"id": "$$cap_spigot_version"
},
{
"label": "Maximum Memory",
"description": "Define maximum memory to be used by the server (e.g. 512m or 2g)",
"defaultValue": "1g",
"id": "$$cap_maxmem"
},
{
"label": "Initial Memory",
"description": "Define initial memory reservation to be used by the server (e.g. 512m or 2g)",
"defaultValue": "512m",
"id": "$$cap_minmem"
},
{
"label": "Autorestart",
"description": "Define if container should automatically restart after issuing a stop command within the server (yes or no)",
"defaultValue": "yes",
"id": "$$cap_autorestart"
}
]
}

View File

@ -21,9 +21,7 @@
"CMD [\"/usr/sbin/sshd\", \"-D\"]"
],
"ports": ["$$cap_sshd_port:22"],
"volumes": [
"$$cap_appname-data:/data"
],
"volumes": ["$$cap_appname-data:/data"],
"restart": "always",
"environment": {}
}
@ -49,4 +47,4 @@
"validRegex": "/^\\d+$/"
}
]
}
}

View File

@ -7,14 +7,10 @@
"version": "3.3",
"services": {
"$$cap_appname-core": {
"depends_on": [
"$$cap_appname-mongo"
],
"depends_on": ["$$cap_appname-mongo"],
"containerHttpPort": "1337",
"image": "strapi/strapi:$$cap_strapi_version",
"volumes": [
"$$cap_appname-data:/srv/app"
],
"volumes": ["$$cap_appname-data:/srv/app"],
"restart": "always",
"environment": {
"DATABASE_CLIENT": "mongo",
@ -49,7 +45,8 @@
"start": "API creation made simple, secure and fast. The most advanced open-source Content Management Framework to build powerful API with no effort. Read more here: https://strapi.io \n\nNOTE: Hardware requirements: \n2GB minimum RAM required\n1Ghz minimum CPU clock speed",
"end": "Strapi is deployed and available as $$cap_appname-core \n IMPORTANT!! It takes up to 2-5 minutes for Strapi to boot up. You will see a 502 Error until the startup is finished.\n\nIMPORTANT: You need to add a config file manually to support the correct domain name. See this issue for more details: https://github.com/strapi/strapi-docker/issues/173"
},
"variables": [{
"variables": [
{
"id": "$$cap_strapi_version",
"label": "Strapi Version",
"defaultValue": "3.0.0-beta.18.6",
@ -70,5 +67,4 @@
"validRegex": "/^([a-zA-Z0-9])+$/"
}
]
}

View File

@ -1,43 +1,39 @@
{
"captainVersion": "2",
"documentation": "https://hub.docker.com/r/syncthing/syncthing",
"displayName": "Syncthing",
"description": "Open Source Continuous File Synchronization.",
"dockerCompose": {
"services": {
"$$cap_appname": {
"containerHttpPort": "8384",
"ports": [
"$$cap_port_sync:22000"
],
"image": "syncthing/syncthing:$$cap_version",
"restart": "always",
"volumes": [
"$$cap_appname-data:/var/syncthing"
]
}
},
"version": "2",
"volumes": {
"$$cap_appname-data": {}
}
},
"instructions": {
"end": "Your instance of Syncthing is now starting up.",
"start": "Read more about Syncthing's goals: https://github.com/syncthing/syncthing#goals"
},
"variables": [
{
"label": "Syncthing Docker Version",
"defaultValue": "1.5.0",
"description": "It's highly recommended that you don't use the latest tag but instead the major version you need.",
"id": "$$cap_version"
},
{
"label":"Sync Protocol Listening Port",
"description":"Port that Syncthing listens on for data synchronization (TCP).",
"defaultValue":"22000",
"id":"$$cap_port_sync"
}
]
"captainVersion": "2",
"documentation": "https://hub.docker.com/r/syncthing/syncthing",
"displayName": "Syncthing",
"description": "Open Source Continuous File Synchronization.",
"dockerCompose": {
"services": {
"$$cap_appname": {
"containerHttpPort": "8384",
"ports": ["$$cap_port_sync:22000"],
"image": "syncthing/syncthing:$$cap_version",
"restart": "always",
"volumes": ["$$cap_appname-data:/var/syncthing"]
}
},
"version": "2",
"volumes": {
"$$cap_appname-data": {}
}
},
"instructions": {
"end": "Your instance of Syncthing is now starting up.",
"start": "Read more about Syncthing's goals: https://github.com/syncthing/syncthing#goals"
},
"variables": [
{
"label": "Syncthing Docker Version",
"defaultValue": "1.5.0",
"description": "It's highly recommended that you don't use the latest tag but instead the major version you need.",
"id": "$$cap_version"
},
{
"label": "Sync Protocol Listening Port",
"description": "Port that Syncthing listens on for data synchronization (TCP).",
"defaultValue": "22000",
"id": "$$cap_port_sync"
}
]
}

View File

@ -1,61 +1,58 @@
{
"captainVersion": "2",
"documentation":"https://hub.docker.com/_/teamspeak",
"documentation": "https://hub.docker.com/_/teamspeak",
"displayName": "TeamSpeak",
"description": "TeamSpeak is the number one choice VoIP communication system for Online Gaming.",
"dockerCompose":{
"services":{
"$$cap_appname":{
"notExposeAsWebApp": "true",
"ports": [
"$$cap_port_voice:9987",
"$$cap_port_files:30033",
"$$cap_port_query:10011"
],
"environment": {
"TS3SERVER_LICENSE": "accept"
},
"image":"teamspeak:$$cap_version",
"restart":"always",
"volumes":[
"$$cap_appname-data:/var/ts3server/"
]
}
},
"version":"2",
"volumes":{
"$$cap_appname-data":{
}
}
"dockerCompose": {
"services": {
"$$cap_appname": {
"notExposeAsWebApp": "true",
"ports": [
"$$cap_port_voice:9987",
"$$cap_port_files:30033",
"$$cap_port_query:10011"
],
"environment": {
"TS3SERVER_LICENSE": "accept"
},
"image": "teamspeak:$$cap_version",
"restart": "always",
"volumes": ["$$cap_appname-data:/var/ts3server/"]
}
},
"version": "2",
"volumes": {
"$$cap_appname-data": {}
}
},
"instructions":{
"end":"Then you can connect to localhost/ip in your TeamSpeak client. Please write down the server query password, and server admin privilege key that were generated. These are needed to administrate the TeamSpeak server. Found in the logs.",
"start":"TeamSpeak is the number one choice VoIP communication system for Online Gaming."
"instructions": {
"end": "Then you can connect to localhost/ip in your TeamSpeak client. Please write down the server query password, and server admin privilege key that were generated. These are needed to administrate the TeamSpeak server. Found in the logs.",
"start": "TeamSpeak is the number one choice VoIP communication system for Online Gaming."
},
"variables":[
{
"label":"TeamSpeak Docker Version",
"defaultValue":"3.12.0",
"description":"It's highly recommended that you don't use the latest tag but instead the major version you need, e.g. teamspeak:3.12.0",
"id":"$$cap_version"
},
{
"label":"Voice Port (UDP)",
"description":"Port for voice (UDP)",
"defaultValue":"9987",
"id":"$$cap_port_voice"
},
{
"label":"File transfer (TCP)",
"description":"Transferring files.",
"defaultValue":"30033",
"id":"$$cap_port_files"
},{
"label":"Server Query Port (TCP)",
"description":"Port for querying in server discovery",
"defaultValue":"10011",
"id":"$$cap_port_query"
}
"variables": [
{
"label": "TeamSpeak Docker Version",
"defaultValue": "3.12.0",
"description": "It's highly recommended that you don't use the latest tag but instead the major version you need, e.g. teamspeak:3.12.0",
"id": "$$cap_version"
},
{
"label": "Voice Port (UDP)",
"description": "Port for voice (UDP)",
"defaultValue": "9987",
"id": "$$cap_port_voice"
},
{
"label": "File transfer (TCP)",
"description": "Transferring files.",
"defaultValue": "30033",
"id": "$$cap_port_files"
},
{
"label": "Server Query Port (TCP)",
"description": "Port for querying in server discovery",
"defaultValue": "10011",
"id": "$$cap_port_query"
}
]
}
}

View File

@ -1,32 +1,30 @@
{
"captainVersion": "2",
"documentation": "Adapted from https://thelounge.chat/docs/install-and-upgrade#docker.",
"description": "The Lounge is a self-hosted web IRC client with modern features, persistent connections, and multi-user support.",
"displayName": "The Lounge",
"dockerCompose": {
"version": "3.3",
"services": {
"$$cap_appname": {
"image": "thelounge/thelounge:$$cap_lounge_version",
"containerHttpPort": "9000",
"restart": "always",
"volumes": [
"$$cap_appname-data:/var/opt/thelounge"
]
}
}
},
"instructions": {
"start": "The Lounge, a self-hosted web IRC client.",
"end": "Your instance is now fully deployed.\n To create your user, run `docker exec --user node -it $(docker ps -f name=srv-captain--$$cap_appname --quiet) thelounge add [user]` on your host."
},
"variables": [
{
"id": "$$cap_lounge_version",
"label": "The Lounge Version Tag",
"defaultValue": "4.1.0",
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/thelounge/thelounge/tags",
"validRegex": "/^([^\\s^\\/])+$/"
}
]
"captainVersion": "2",
"documentation": "Adapted from https://thelounge.chat/docs/install-and-upgrade#docker.",
"description": "The Lounge is a self-hosted web IRC client with modern features, persistent connections, and multi-user support.",
"displayName": "The Lounge",
"dockerCompose": {
"version": "3.3",
"services": {
"$$cap_appname": {
"image": "thelounge/thelounge:$$cap_lounge_version",
"containerHttpPort": "9000",
"restart": "always",
"volumes": ["$$cap_appname-data:/var/opt/thelounge"]
}
}
},
"instructions": {
"start": "The Lounge, a self-hosted web IRC client.",
"end": "Your instance is now fully deployed.\n To create your user, run `docker exec --user node -it $(docker ps -f name=srv-captain--$$cap_appname --quiet) thelounge add [user]` on your host."
},
"variables": [
{
"id": "$$cap_lounge_version",
"label": "The Lounge Version Tag",
"defaultValue": "4.1.0",
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/thelounge/thelounge/tags",
"validRegex": "/^([^\\s^\\/])+$/"
}
]
}

View File

@ -8,9 +8,7 @@
"services": {
"$$cap_appname-db": {
"image": "minimalcompact/thumbor:$$cap_thumbor_version",
"volumes": [
"$$cap_appname-thumbor:/data"
],
"volumes": ["$$cap_appname-thumbor:/data"],
"restart": "always",
"environment": {
"THUMBOR_PORT": "80"
@ -22,12 +20,13 @@
"start": "thumbor is a smart imaging service. It enables on-demand crop, resizing and flipping of images. It also features a VERY smart detection of important points in the image for better cropping and resizing, using state-of-the-art face and feature detection algorithms (more on that in Detection Algorithms). Using thumbor is very easy (after it is running). All you have to do is access it using an URL for an image, like this:\n http://<thumbor-server>/300x200/smart/s.glbimg.com/et/bb/f/original/2011/03/24/VN0JiwzmOw0b0lg.jpg\n\n See http://thumbor.org for more details. \n\n Enter your thumbor Configuration parameters and click on next. It will take about a minute for the process to finish.",
"end": "thumbor is deployed and available as $$cap_appname-db. Go to YOUR_APP_URL/unsafe/200x50/i.imgur.com/bvjzPct.jpg to test thumbor!"
},
"variables": [{
"id": "$$cap_thumbor_version",
"label": "Thumbor Version",
"defaultValue": "6.7.0",
"description": "Checkout their Docker page for the valid tags https://hub.docker.com/r/minimalcompact/thumbor/tags/",
"validRegex": "/^([^\\s^\\/])+$/"
}]
"variables": [
{
"id": "$$cap_thumbor_version",
"label": "Thumbor Version",
"defaultValue": "6.7.0",
"description": "Checkout their Docker page for the valid tags https://hub.docker.com/r/minimalcompact/thumbor/tags/",
"validRegex": "/^([^\\s^\\/])+$/"
}
]
}

View File

@ -10,9 +10,7 @@
"image": "nicolaw/tiddlywiki",
"containerHttpPort": "8080",
"restart": "always",
"volumes": [
"$$cap_appname-data:/var/lib/tiddlywiki"
],
"volumes": ["$$cap_appname-data:/var/lib/tiddlywiki"],
"environment": {
"TW_USERNAME": "$$cap_wikusername",
"TW_PASSWORD": "$$cap_wikipassword",
@ -45,4 +43,4 @@
"description": "Limit the memory that the server can consume"
}
]
}
}

View File

@ -31,4 +31,4 @@
"description": "Additional tags can be found here: https://hub.docker.com/r/verdaccio/verdaccio/tags"
}
]
}
}

View File

@ -1,40 +1,40 @@
{
"captainVersion": "2",
"documentation":"Taken from https://github.com/cdr/code-server/ . Except the image version (tag) is fixed to a specific version rather than generic 'v2' as this will ensure consistency of deployments.",
"displayName": "vscode via code-server",
"description": "code-server by Coder is VS Code running on a remote server, accessible through the browser.",
"dockerCompose":{
"services":{
"$$cap_appname":{
"containerHttpPort":"8080",
"environment":{
"PASSWORD":"$$cap_coder_password"
},
"dockerfileLines": [
"FROM codercom/code-server:2.1697-vsc1.39.2",
"# Similar to the original file, except setting the user to root to prevent permission issues.",
"USER root"
],
"image":"",
"restart":"always",
"volumes":[
"$$cap_appname-config-data:/home/coder/.local/share/code-server",
"$$cap_appname-project-directory:/home/coder/project"
]
}
},
"version":"2"
},
"instructions":{
"end":"Code server is deployed and is available as $$cap_appname.\n\n IMPORTANT: Make sure to enable websocket capability in the app config on CapRover dashboard!",
"start":"This installation will install a Visual Studio Code that's accessible through browser!\n\nIMPORTANT: Make sure you have at least 2GB of RAM when you run code-server."
},
"variables":[
{
"description":"Password for accessing VS Code",
"id":"$$cap_coder_password",
"label":"Password",
"validRegex":"/^[^\"]*$/"
}
]
"captainVersion": "2",
"documentation": "Taken from https://github.com/cdr/code-server/ . Except the image version (tag) is fixed to a specific version rather than generic 'v2' as this will ensure consistency of deployments.",
"displayName": "vscode via code-server",
"description": "code-server by Coder is VS Code running on a remote server, accessible through the browser.",
"dockerCompose": {
"services": {
"$$cap_appname": {
"containerHttpPort": "8080",
"environment": {
"PASSWORD": "$$cap_coder_password"
},
"dockerfileLines": [
"FROM codercom/code-server:2.1697-vsc1.39.2",
"# Similar to the original file, except setting the user to root to prevent permission issues.",
"USER root"
],
"image": "",
"restart": "always",
"volumes": [
"$$cap_appname-config-data:/home/coder/.local/share/code-server",
"$$cap_appname-project-directory:/home/coder/project"
]
}
},
"version": "2"
},
"instructions": {
"end": "Code server is deployed and is available as $$cap_appname.\n\n IMPORTANT: Make sure to enable websocket capability in the app config on CapRover dashboard!",
"start": "This installation will install a Visual Studio Code that's accessible through browser!\n\nIMPORTANT: Make sure you have at least 2GB of RAM when you run code-server."
},
"variables": [
{
"description": "Password for accessing VS Code",
"id": "$$cap_coder_password",
"label": "Password",
"validRegex": "/^[^\"]*$/"
}
]
}

View File

@ -22,7 +22,8 @@
"start": "Official image for the Visual Studio Team Services (VSTS) agent.",
"end": "VSTS Agent is deployed and available as $$cap_appname"
},
"variables": [{
"variables": [
{
"id": "$$cap_vsts_version",
"label": "VSTS Version Tag",
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/microsoft/vsts-agent/tags/",
@ -52,5 +53,4 @@
"validRegex": "/.{1,}/"
}
]
}

View File

@ -1,87 +1,83 @@
{
"captainVersion": "2",
"documentation":"https://docs.requarks.io/",
"displayName": "wiki.js",
"description": "The most powerful and extensible open source Wiki software",
"dockerCompose":{
"services":{
"$$cap_appname":{
"containerHttpPort":"3000",
"environment":{
"DB_TYPE":"$$cap_DB_TYPE",
"DB_HOST":"$$cap_DB_HOST",
"DB_PORT":"$$cap_DB_PORT",
"DB_USER":"$$cap_DB_USER",
"DB_PASS":"$$cap_DB_PASS",
"DB_NAME":"$$cap_DB_NAME",
"DB_SSL": "$$cap_DB_SSL"
},
"image":"requarks/wiki:$$cap_version",
"restart":"always",
"volumes":[
"$$cap_appname-data:/wiki"
]
}
},
"version":"2",
"volumes":{
"$$cap_appname-data":{
}
}
},
"instructions":{
"end":"Wiki.js is deployed and available as $$cap_appname. \n\n IMPORTANT: It will take up to 2 minutes for Wiki.js to be ready. Before that, you might see 502 error page.\n",
"start":"Wiki.js is a fully open source, adaptable platform for building and running a Wiki."
},
"variables":[
{
"label":"Wiki.js Version",
"defaultValue":"2",
"description":"It's highly recommended that you don't use the latest tag but instead the major version you need, e.g. requarks/wiki:2",
"id":"$$cap_version"
},
{
"label":"DB_TYPE",
"description":"Type of database (mysql, postgres, mariadb, mssql or sqlite)",
"defaultValue":"mariadb",
"id":"$$cap_DB_TYPE"
},
{
"label":"DB_HOST",
"description":"Hostname or IP of the database",
"defaultValue":"localhost",
"id":"$$cap_DB_HOST"
},
{
"label":"DB_PORT",
"description":"Port of the database",
"defaultValue":"3306",
"id":"$$cap_DB_PORT"
},
{
"label":"DB_USER",
"description":"Username to connect to the database",
"defaultValue":"wiki-user",
"id":"$$cap_DB_USER"
},
{
"label":"DB_PASS",
"description":"Password to connect to the database",
"defaultValue":"wiki-password",
"id":"$$cap_DB_PASS"
},
{
"label":"DB_NAME",
"description":"Database name",
"defaultValue":"wiki",
"id":"$$cap_DB_NAME"
},
{
"label":"DB_SSL",
"description":"Set to either 1 or true to enable. (optional, off if omitted)",
"defaultValue":"false",
"id":"$$cap_DB_SSL"
}
]
"captainVersion": "2",
"documentation": "https://docs.requarks.io/",
"displayName": "wiki.js",
"description": "The most powerful and extensible open source Wiki software",
"dockerCompose": {
"services": {
"$$cap_appname": {
"containerHttpPort": "3000",
"environment": {
"DB_TYPE": "$$cap_DB_TYPE",
"DB_HOST": "$$cap_DB_HOST",
"DB_PORT": "$$cap_DB_PORT",
"DB_USER": "$$cap_DB_USER",
"DB_PASS": "$$cap_DB_PASS",
"DB_NAME": "$$cap_DB_NAME",
"DB_SSL": "$$cap_DB_SSL"
},
"image": "requarks/wiki:$$cap_version",
"restart": "always",
"volumes": ["$$cap_appname-data:/wiki"]
}
},
"version": "2",
"volumes": {
"$$cap_appname-data": {}
}
},
"instructions": {
"end": "Wiki.js is deployed and available as $$cap_appname. \n\n IMPORTANT: It will take up to 2 minutes for Wiki.js to be ready. Before that, you might see 502 error page.\n",
"start": "Wiki.js is a fully open source, adaptable platform for building and running a Wiki."
},
"variables": [
{
"label": "Wiki.js Version",
"defaultValue": "2",
"description": "It's highly recommended that you don't use the latest tag but instead the major version you need, e.g. requarks/wiki:2",
"id": "$$cap_version"
},
{
"label": "DB_TYPE",
"description": "Type of database (mysql, postgres, mariadb, mssql or sqlite)",
"defaultValue": "mariadb",
"id": "$$cap_DB_TYPE"
},
{
"label": "DB_HOST",
"description": "Hostname or IP of the database",
"defaultValue": "localhost",
"id": "$$cap_DB_HOST"
},
{
"label": "DB_PORT",
"description": "Port of the database",
"defaultValue": "3306",
"id": "$$cap_DB_PORT"
},
{
"label": "DB_USER",
"description": "Username to connect to the database",
"defaultValue": "wiki-user",
"id": "$$cap_DB_USER"
},
{
"label": "DB_PASS",
"description": "Password to connect to the database",
"defaultValue": "wiki-password",
"id": "$$cap_DB_PASS"
},
{
"label": "DB_NAME",
"description": "Database name",
"defaultValue": "wiki",
"id": "$$cap_DB_NAME"
},
{
"label": "DB_SSL",
"description": "Set to either 1 or true to enable. (optional, off if omitted)",
"defaultValue": "false",
"id": "$$cap_DB_SSL"
}
]
}

View File

@ -1,65 +1,65 @@
{
"captainVersion": "2",
"documentation": "Taken from https://docs.docker.com/compose/wordpress/. Port mapping removed from WP as it is no longer needed",
"displayName": "WordPress - No Database",
"description": "This will create a WordPress only. You will need to create and configure the database information manually. Intended for advanced users.",
"dockerCompose": {
"version": "3.3",
"services": {
"$$cap_appname-wordpress": {
"image": "wordpress:$$cap_wp_version",
"volumes": ["$$cap_appname-wp-data:/var/www/html"],
"restart": "always",
"environment": {
"WORDPRESS_DB_HOST": "$$cap_db_host:3306",
"WORDPRESS_DB_NAME": "$$cap_db_name",
"WORDPRESS_TABLE_PREFIX": "$$cap_db_prefix",
"WORDPRESS_DB_USER": "$$cap_db_user",
"WORDPRESS_DB_PASSWORD": "$$cap_db_pass"
"captainVersion": "2",
"documentation": "Taken from https://docs.docker.com/compose/wordpress/. Port mapping removed from WP as it is no longer needed",
"displayName": "WordPress - No Database",
"description": "This will create a WordPress only. You will need to create and configure the database information manually. Intended for advanced users.",
"dockerCompose": {
"version": "3.3",
"services": {
"$$cap_appname-wordpress": {
"image": "wordpress:$$cap_wp_version",
"volumes": ["$$cap_appname-wp-data:/var/www/html"],
"restart": "always",
"environment": {
"WORDPRESS_DB_HOST": "$$cap_db_host:3306",
"WORDPRESS_DB_NAME": "$$cap_db_name",
"WORDPRESS_TABLE_PREFIX": "$$cap_db_prefix",
"WORDPRESS_DB_USER": "$$cap_db_user",
"WORDPRESS_DB_PASSWORD": "$$cap_db_pass"
}
}
}
}
}
},
"instructions": {
"start": "WordPress is an online, open source website creation tool written in PHP. But in non-geek speak, its probably the easiest and most powerful blogging and website content management system (or CMS) in existence today.\n\n Enter your WordPress Configuration parameters and click on next. A WordPress container will be created for you. The process will take about a minute for the process to finish. \n\nNote: This app is intended for advanced users who'd like to have a central DB in a single container for multiple WP's. You should start by configuring your DB first and then comeback with all the DB Information.",
"end": "Wordpress is deployed and available as $$cap_appname-wordpress . \n\n IMPORTANT: It will take up to 2 minutes for WordPress to be ready. Before that, you might see a 502 error page.\n\n. Remember that this app will not create a Database by itself. You need to provide all that information."
},
"variables": [
{
"description": "Database host",
"defaultValue": "srv-captain--xxx",
"id": "$$cap_db_host",
"label": "Database Host"
},
{
"description": "Database name",
"defaultValue": "wordpress",
"id": "$$cap_db_name",
"label": "DB Name"
"instructions": {
"start": "WordPress is an online, open source website creation tool written in PHP. But in non-geek speak, its probably the easiest and most powerful blogging and website content management system (or CMS) in existence today.\n\n Enter your WordPress Configuration parameters and click on next. A WordPress container will be created for you. The process will take about a minute for the process to finish. \n\nNote: This app is intended for advanced users who'd like to have a central DB in a single container for multiple WP's. You should start by configuring your DB first and then comeback with all the DB Information.",
"end": "Wordpress is deployed and available as $$cap_appname-wordpress . \n\n IMPORTANT: It will take up to 2 minutes for WordPress to be ready. Before that, you might see a 502 error page.\n\n. Remember that this app will not create a Database by itself. You need to provide all that information."
},
{
"description": "Table prefix used by this Wordpress",
"defaultValue": "WP_",
"id": "$$cap_db_prefix",
"label": "Table Prefix"
},
{
"id": "$$cap_db_user",
"label": "Database user",
"defaultValue": "wordpressuser"
},
{
"id": "$$cap_db_pass",
"label": "Database password",
"description": "",
"validRegex": "/.{1,}/"
},
{
"id": "$$cap_wp_version",
"label": "WordPress Version",
"defaultValue": "5.4.0",
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/library/wordpress/tags/",
"validRegex": "/^([^\\s^\\/])+$/"
}
]
"variables": [
{
"description": "Database host",
"defaultValue": "srv-captain--xxx",
"id": "$$cap_db_host",
"label": "Database Host"
},
{
"description": "Database name",
"defaultValue": "wordpress",
"id": "$$cap_db_name",
"label": "DB Name"
},
{
"description": "Table prefix used by this Wordpress",
"defaultValue": "WP_",
"id": "$$cap_db_prefix",
"label": "Table Prefix"
},
{
"id": "$$cap_db_user",
"label": "Database user",
"defaultValue": "wordpressuser"
},
{
"id": "$$cap_db_pass",
"label": "Database password",
"description": "",
"validRegex": "/.{1,}/"
},
{
"id": "$$cap_wp_version",
"label": "WordPress Version",
"defaultValue": "5.4.0",
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/library/wordpress/tags/",
"validRegex": "/^([^\\s^\\/])+$/"
}
]
}

View File

@ -9,9 +9,7 @@
"$$cap_appname-db": {
"image": "mysql:$$cap_mysql_version",
"notExposeAsWebApp": "true",
"volumes": [
"$$cap_appname-db-data:/var/lib/mysql"
],
"volumes": ["$$cap_appname-db-data:/var/lib/mysql"],
"restart": "always",
"environment": {
"MYSQL_ROOT_PASSWORD": "$$cap_db_pass",
@ -21,13 +19,9 @@
}
},
"$$cap_appname-wordpress": {
"depends_on": [
"$$cap_appname-db"
],
"depends_on": ["$$cap_appname-db"],
"image": "wordpress:$$cap_wp_version",
"volumes": [
"$$cap_appname-wp-data:/var/www/html"
],
"volumes": ["$$cap_appname-wp-data:/var/www/html"],
"restart": "always",
"environment": {
"WORDPRESS_DB_HOST": "srv-captain--$$cap_appname-db:3306",
@ -44,7 +38,8 @@
"start": "WordPress is an online, open source website creation tool written in PHP. But in non-geek speak, its probably the easiest and most powerful blogging and website content management system (or CMS) in existence today.\n\n Enter your WordPress Configuration parameters and click on next. A MySQL (database) and a WordPress container will be created for you. The process will take about a minute for the process to finish.",
"end": "Wordpress is deployed and available as $$cap_appname-wordpress . \n\n IMPORTANT: It will take up to 2 minutes for WordPress to be ready. Before that, you might see a 502 error page.\n"
},
"variables": [{
"variables": [
{
"id": "$$cap_db_user",
"label": "Database user",
"defaultValue": "wordpressuser",
@ -71,5 +66,4 @@
"validRegex": "/^([^\\s^\\/])+$/"
}
]
}
}