migrate to v4
This commit is contained in:
parent
83103a1809
commit
0e70ec541e
|
|
@ -1,46 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://hub.docker.com/_/adminer ",
|
||||
"description": "Adminer (formerly phpMinAdmin) is a full-featured database management tool written in PHP",
|
||||
"displayName": "Adminer",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "3.3",
|
||||
"services": {
|
||||
"$$cap_appname": {
|
||||
"image": "adminer:$$cap_adminer_version",
|
||||
"containerHttpPort": "8080",
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"ADMINER_PLUGINS": "$$cap_adminer_plugins",
|
||||
"ADMINER_DESIGN": "$$cap_adminer_design"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"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": [
|
||||
{
|
||||
"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/",
|
||||
"defaultValue": "4",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_adminer_design",
|
||||
"label": "OPTIONAL: Adminer Design",
|
||||
"description": "List of designs: https://github.com/vrana/adminer/tree/master/designs",
|
||||
"validRegex": "/^([a-zA-Z0-9-.])*$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_adminer_plugins",
|
||||
"label": "OPTIONAL: Adminer plugins (space separated)",
|
||||
"defaultValue": "",
|
||||
"validRegex": "/^([a-zA-Z0-9-.\\s])*$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "ArangoDB",
|
||||
"description": "ArangoDB is native multi-model database for using and combining graph, document and key/value models",
|
||||
"displayName": "ArangoDB",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "3.3",
|
||||
"services": {
|
||||
"$$cap_appname-db": {
|
||||
"image": "arangodb:$$cap_arango_version",
|
||||
"containerHttpPort": "8529",
|
||||
"volumes": [
|
||||
"$$cap_appname-db-data:/var/lib/arangodb3",
|
||||
"$$cap_appname-db-apps-data:/var/lib/arangodb3-apps"
|
||||
],
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"ARANGO_ROOT_PASSWORD": "$$cap_db_pass"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"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": [
|
||||
{
|
||||
"id": "$$cap_arango_version",
|
||||
"label": "ArangoDB Version",
|
||||
"defaultValue": "3.4",
|
||||
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/library/arangodb/tags/",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_db_pass",
|
||||
"label": "ArangoDB Root password",
|
||||
"description": "",
|
||||
"validRegex": "/.{1,}/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://hub.docker.com/r/bitwardenrs/server",
|
||||
"displayName": "Bitwarden_rs",
|
||||
"description": "Lightweight fully featured Rust implementation of Bitwarden.",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "3.3",
|
||||
"services": {
|
||||
"$$cap_appname": {
|
||||
"image": "bitwardenrs/server:$$cap_bitwardenrs_version",
|
||||
"containerHttpPort": "80",
|
||||
"volumes": ["$$cap_appname-data:/data"],
|
||||
"restart": "always"
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"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": [
|
||||
{
|
||||
"id": "$$cap_bitwardenrs_version",
|
||||
"label": "Bitwarden_rs Version",
|
||||
"defaultValue": "1.15.1",
|
||||
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/bitwardenrs/server/tags",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,110 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Read more at: https://www.chatwoot.com/docs",
|
||||
"displayName": "Chatwoot",
|
||||
"description": "Open-source customer support saas alternative to Intercom, Drift, Crisp",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "3.3",
|
||||
"services": {
|
||||
"$$cap_appname-postgres": {
|
||||
"image": "postgres:12",
|
||||
"notExposeAsWebApp": "true",
|
||||
"volumes": [
|
||||
"$$cap_appname-postgres-data:/var/lib/postgresql/data"
|
||||
],
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"POSTGRES_USER": "chatwoot",
|
||||
"POSTGRES_PASSWORD": "$$cap_chatwoot_postgres_password",
|
||||
"POSTGRES_DB": "chatwoot"
|
||||
}
|
||||
},
|
||||
"$$cap_appname-redis": {
|
||||
"dockerfileLines": [
|
||||
"FROM redis:alpine",
|
||||
"CMD exec redis-server --requirepass \"$$cap_chatwoot_redis_password\""
|
||||
],
|
||||
"notExposeAsWebApp": "true",
|
||||
"volumes": ["$$cap_appname-redis-data:/data"],
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"REDIS_PASSWORD": "$$cap_chatwoot_redis_password"
|
||||
}
|
||||
},
|
||||
"$$cap_appname-web": {
|
||||
"containerHttpPort": "3000",
|
||||
"dockerfileLines": [
|
||||
"FROM chatwoot/chatwoot:$$cap_chatwoot_version",
|
||||
"RUN chmod +x docker/entrypoints/rails.sh",
|
||||
"ENTRYPOINT [\"docker/entrypoints/rails.sh\"]",
|
||||
"EXPOSE 3000",
|
||||
"CMD bundle exec rails db:prepare; bundle exec rails s -b 0.0.0.0 -p 3000"
|
||||
],
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"RAIL_ENV": "production",
|
||||
"RAILS_LOG_TO_STDOUT": "true",
|
||||
"SECRET_KEY_BASE": "$$cap_chatwoot_secret_key_base",
|
||||
"POSTGRES_HOST": "srv-captain--$$cap_appname-postgres",
|
||||
"POSTGRES_DATABASE": "chatwoot",
|
||||
"POSTGRES_USERNAME": "chatwoot",
|
||||
"POSTGRES_PASSWORD": "$$cap_chatwoot_postgres_password",
|
||||
"REDIS_URL": "redis://srv-captain--$$cap_appname-redis:6379",
|
||||
"REDIS_PASSWORD": "$$cap_chatwoot_redis_password"
|
||||
}
|
||||
},
|
||||
"$$cap_appname-worker": {
|
||||
"dockerfileLines": [
|
||||
"FROM chatwoot/chatwoot:$$cap_chatwoot_version",
|
||||
"RUN chmod +x docker/entrypoints/rails.sh",
|
||||
"ENTRYPOINT [\"docker/entrypoints/rails.sh\"]",
|
||||
"CMD bundle exec sidekiq -C config/sidekiq.yml"
|
||||
],
|
||||
"notExposeAsWebApp": "true",
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"RAIL_ENV": "production",
|
||||
"RAILS_LOG_TO_STDOUT": "true",
|
||||
"SECRET_KEY_BASE": "$$cap_chatwoot_secret_key_base",
|
||||
"POSTGRES_HOST": "srv-captain--$$cap_appname-postgres",
|
||||
"POSTGRES_DATABASE": "chatwoot",
|
||||
"POSTGRES_USERNAME": "chatwoot",
|
||||
"POSTGRES_PASSWORD": "$$cap_chatwoot_postgres_password",
|
||||
"REDIS_URL": "redis://srv-captain--$$cap_appname-redis:6379",
|
||||
"REDIS_PASSWORD": "$$cap_chatwoot_redis_password"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"start": "Open-source customer support saas alternative to Intercom, Drift, Crisp.",
|
||||
"end": "Your Chatwoot instance is now successfully deployed. You can create a new account using signup option. \n\n Refer https://www.chatwoot.com/docs/environment-variables/ for full list of environment variables available. Let us know if you have any queries through hello@chatwoot.com"
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
"id": "$$cap_chatwoot_version",
|
||||
"label": "Chatwoot Version Tag",
|
||||
"description": "https://hub.docker.com/r/chatwoot/chatwoot/tags",
|
||||
"defaultValue": "v1.6.3"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_chatwoot_secret_key_base",
|
||||
"label": "Chatwoot Secret Key Base",
|
||||
"description": "The randomized string which is used to verify the integrity of signed cookies. Please use a string with more than 26 characters",
|
||||
"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_redis_password",
|
||||
"label": "Redis Password",
|
||||
"description": "Password must be at least 12 characters. Please use a random string.",
|
||||
"validRegex": "/^[^\\@]{12,}$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
{
|
||||
"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.",
|
||||
"isOfficial": true,
|
||||
"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"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,57 +0,0 @@
|
|||
{
|
||||
"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",
|
||||
"isOfficial": true,
|
||||
"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^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"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^\\/])+$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,50 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://hub.docker.com/_/couchdb/",
|
||||
"description": "Apache CouchDB is an open-source document-oriented NoSQL database, implemented in Erlang",
|
||||
"displayName": "CouchDB",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "3.3",
|
||||
"services": {
|
||||
"$$cap_appname": {
|
||||
"image": "couchdb:$$cap_couchdb_version",
|
||||
"containerHttpPort": "5984",
|
||||
"volumes": [
|
||||
"$$cap_appname-db-data:/opt/couchdb/data",
|
||||
"$$cap_appname-db-etc:/opt/couchdb/etc"
|
||||
],
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"COUCHDB_USER": "$$cap_couchdb_user",
|
||||
"COUCHDB_PASSWORD": "$$cap_couchdb_password"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"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": [
|
||||
{
|
||||
"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/",
|
||||
"defaultValue": "2",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_couchdb_user",
|
||||
"label": "CouchDB Username",
|
||||
"defaultValue": "mainuser",
|
||||
"validRegex": "/^([a-zA-Z0-9_])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_couchdb_password",
|
||||
"label": "CouchDB Password",
|
||||
"defaultValue": "",
|
||||
"validRegex": "/.{1,}/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://hub.docker.com/r/countly/countly-server",
|
||||
"displayName": "",
|
||||
"description": "Countly helps you get insights from your application",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "3.3",
|
||||
"services": {
|
||||
"$$cap_appname": {
|
||||
"image": "countly/countly-server:$$cap_countly_version",
|
||||
"volumes": ["$$cap_appname-data:/var/lib/mongodb"],
|
||||
"restart": "always",
|
||||
"environment": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"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": [
|
||||
{
|
||||
"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",
|
||||
"defaultValue": "19.08.1",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,120 +0,0 @@
|
|||
{
|
||||
"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",
|
||||
"isOfficial": true,
|
||||
"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-directus": {
|
||||
"depends_on": {
|
||||
"$$cap_appname-db": {
|
||||
"condition": "service_healthy"
|
||||
}
|
||||
},
|
||||
"image": "directus/directus:$$cap_directus_tag",
|
||||
"volumes": [
|
||||
"$$cap_appname-directus-uploads:/var/directus/public/uploads"
|
||||
],
|
||||
"containerHttpPort": "80",
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"DIRECTUS_DATABASE_HOST": "srv-captain--$$cap_appname-db",
|
||||
"DIRECTUS_DATABASE_NAME": "$$cap_mysql_database_name",
|
||||
"DIRECTUS_DATABASE_USERNAME": "$$cap_mysql_user",
|
||||
"DIRECTUS_DATABASE_PASSWORD": "$$cap_mysql_passwd",
|
||||
"DIRECTUS_AUTH_SECRETKEY": "$$cap_directus_auth_secret_key",
|
||||
"DIRECTUS_AUTH_PUBLICKEY": "$$cap_directus_auth_public_key"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"end": "THE INSTALLATION PROCESS IS NOT FINISHED !!!\n\nAs said in the documentation (https://docs.directus.io/installation/docker.html#step-4-initialize-the-database-and-an-admin-user), currently (30/06/2020), Directus does not support automatic database setup so you need to do it yourself the first time you launch directus.\n\n But since Caprover does not use standard docker-compose file, you need to run a slightly uglier command than the one shown in the documentation.\n\n Run the following command on your server (using SSH for example, you might need to be root):\n\ndocker run -e DIRECTUS_DATABASE_HOST=srv-captain--$$cap_appname-db -e DIRECTUS_DATABASE_NAME=$$cap_mysql_database_name -e DIRECTUS_DATABASE_USERNAME=$$cap_mysql_user -e DIRECTUS_DATABASE_PASSWORD=$$cap_mysql_passwd -e DIRECTUS_AUTH_SECRETKEY=$$cap_directus_auth_secret_key -e DIRECTUS_AUTH_PUBLICKEY=$$cap_directus_auth_public_key --network $(docker network ls | grep \"captain-overlay-network\" | awk '{print $1}') --rm directus/directus:$$cap_directus_tag install --email $$cap_directus_install_email --password $$cap_directus_install_password\n\nOnce this is done, Directus is deployed and available as $$cap_appname-directus.\n\n It may take a few minutes for Directus to initialize.\n",
|
||||
"start": "Directus is an open-source suite of software that wraps custom SQL databases with a dynamic API and intuitive Admin App.\n For more information and available options, see https://github.com/directus/docker or the official documentation at https://docs.directus.io"
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
"description": "Tag of Directus image on https://hub.docker.com/r/directus/directus/tags",
|
||||
"defaultValue": "v8.8.0-apache",
|
||||
"id": "$$cap_directus_tag",
|
||||
"label": "Directus image tag",
|
||||
"validRegex": "/.{1,}/"
|
||||
},
|
||||
{
|
||||
"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": "L4fCizKUZtX4Htwi",
|
||||
"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": "N2cQ4J9VzsfvXwzM",
|
||||
"id": "$$cap_mysql_passwd",
|
||||
"label": "mySQL User Password",
|
||||
"validRegex": "/^(?=.*\\d).{10,}$/"
|
||||
},
|
||||
{
|
||||
"description": "Directus Auth Secret Key (must not be the same as Directus Auth Public Key)",
|
||||
"defaultValue": "nsQocnfPjh3Udjyw",
|
||||
"id": "$$cap_directus_auth_secret_key",
|
||||
"label": "Directus Auth Secret Key",
|
||||
"validRegex": "/^(?=.*\\d).{10,}$/"
|
||||
},
|
||||
{
|
||||
"description": "Directus Auth Public Key (must not be the same as Directus Auth Secret Key)",
|
||||
"defaultValue": "8QQc2mv6PXuEcsfw",
|
||||
"id": "$$cap_directus_auth_public_key",
|
||||
"label": "Directus Auth Public Key",
|
||||
"validRegex": "/^(?=.*\\d).{10,}$/"
|
||||
},
|
||||
{
|
||||
"description": "Directus admin user email",
|
||||
"defaultValue": "admin@example.com",
|
||||
"id": "$$cap_directus_install_email",
|
||||
"label": "Directus admin user email",
|
||||
"validRegex": "/.{1,}/"
|
||||
},
|
||||
{
|
||||
"description": "Directus admin user password",
|
||||
"defaultValue": "yM7iT3ijt95pyeJP",
|
||||
"id": "$$cap_directus_install_password",
|
||||
"label": "Directus admin user password",
|
||||
"validRegex": "/^(?=.*\\d).{10,}$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,181 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://hub.docker.com/r/bitnami/discourse",
|
||||
"displayName": "Discourse",
|
||||
"description": "Discourse is the 100% open source discussion platform built for the next decade of the Internet. Use it as a mailing list, discussion forum, long-form chat room, and more!",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "2",
|
||||
"services": {
|
||||
"$$cap_appname-postgresql": {
|
||||
"documentation": "Taken from https://hub.docker.com/r/bitnami/postgresql",
|
||||
"image": "docker.io/bitnami/postgresql:$$cap_postgresql_version",
|
||||
"notExposeAsWebApp": "true",
|
||||
"restart": "always",
|
||||
"environment": { "ALLOW_EMPTY_PASSWORD": "yes" },
|
||||
"volumes": ["$$cap_appname-postgresql-data:/bitnami/postgresql"]
|
||||
},
|
||||
"$$cap_appname-redis": {
|
||||
"documentation": "Taken from https://hub.docker.com/r/bitnami/redis",
|
||||
"image": "docker.io/bitnami/redis:$$cap_redis_version",
|
||||
"notExposeAsWebApp": "true",
|
||||
"restart": "always",
|
||||
"environment": { "ALLOW_EMPTY_PASSWORD": "yes" },
|
||||
"volumes": ["$$cap_appname-redis-data:/bitnami"]
|
||||
},
|
||||
"$$cap_appname": {
|
||||
"documentation": "Taken from https://hub.docker.com/r/bitnami/discourse",
|
||||
"image": "docker.io/bitnami/discourse:$$cap_discourse_version",
|
||||
"containerHttpPort": "3000",
|
||||
"depends_on": [
|
||||
"$$cap_appname-postgresql",
|
||||
"$$cap_appname-redis"
|
||||
],
|
||||
"volumes": ["$$cap_appname-data:/bitnami"],
|
||||
"environment": {
|
||||
"POSTGRESQL_HOST": "srv-captain--$$cap_appname-postgresql",
|
||||
"POSTGRESQL_ROOT_USER": "postgres",
|
||||
"POSTGRESQL_CLIENT_CREATE_DATABASE_NAME": "$$cap_db_name",
|
||||
"POSTGRESQL_CLIENT_CREATE_DATABASE_USERNAME": "$$cap_db_user",
|
||||
"POSTGRESQL_CLIENT_CREATE_DATABASE_PASSWORD": "$$cap_db_pass",
|
||||
"DISCOURSE_USERNAME": "$$cap_admin_user",
|
||||
"DISCOURSE_PASSWORD": "$$cap_admin_pass",
|
||||
"DISCOURSE_EMAIL": "$$cap_admin_email",
|
||||
"DISCOURSE_SITENAME": "$$cap_sitename",
|
||||
"DISCOURSE_POSTGRESQL_NAME": "$$cap_db_name",
|
||||
"DISCOURSE_POSTGRESQL_USERNAME": "$$cap_db_user",
|
||||
"DISCOURSE_POSTGRESQL_PASSWORD": "$$cap_db_pass",
|
||||
"DISCOURSE_HOSTNAME": "$$cap_appname.$$cap_root_domain",
|
||||
"REDIS_HOST": "srv-captain--$$cap_appname-redis",
|
||||
"SMTP_HOST": "$$cap_smtp_host",
|
||||
"SMTP_PORT": "$$cap_smtp_port",
|
||||
"SMTP_USER": "$$cap_smtp_user",
|
||||
"SMTP_PASSWORD": "$$cap_smtp_pass"
|
||||
}
|
||||
},
|
||||
"$$cap_appname-sidekiq": {
|
||||
"documentaion": "Taken from https://hub.docker.com/r/bitnami/discourse",
|
||||
"notExposeAsWebApp": "true",
|
||||
"depends_on": ["$$cap_appname"],
|
||||
"volumes": ["$$cap_appname-data:/bitnami"],
|
||||
"dockerfileLines": [
|
||||
"FROM docker.io/bitnami/discourse:$$cap_discourse_version",
|
||||
"CMD [\"nami\" , \"start\" , \"--foreground\" , \"discourse-sidekiq\"]"
|
||||
],
|
||||
"environment": {
|
||||
"DISCOURSE_POSTGRESQL_NAME": "$$cap_db_name",
|
||||
"DISCOURSE_POSTGRESQL_USERNAME": "$$cap_db_user",
|
||||
"DISCOURSE_POSTGRESQL_PASSWORD": "$$cap_db_pass",
|
||||
"DISCOURSE_HOST": "srv-captain--$$cap_appname",
|
||||
"DISCOURSE_PORT": "3000",
|
||||
"DISCOURSE_HOSTNAME": "$$cap_appname.$$cap_root_domain",
|
||||
"POSTGRESQL_HOST": "srv-captain--$$cap_appname-postgresql",
|
||||
"REDIS_HOST": "srv-captain--$$cap_appname-redis",
|
||||
"SMTP_HOST": "$$cap_smtp_host",
|
||||
"SMTP_PORT": "$$cap_smtp_port",
|
||||
"SMTP_USER": "$$cap_smtp_user",
|
||||
"SMTP_PASSWORD": "$$cap_smtp_pass"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"start": "Discourse is a relatively heavy application, atleast 2GB RAM is recommended to run Discourse",
|
||||
"end": "Discourse image is deployed and the installation process has begun. The installation process takes about 10 minutes."
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
"id": "$$cap_discourse_version",
|
||||
"label": "Discourse Version",
|
||||
"defaultValue": "2.4.4",
|
||||
"description": "Version of Discourse",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_postgresql_version",
|
||||
"label": "Postgresql (database) version",
|
||||
"defaultValue": "11",
|
||||
"description": "Version of Postgresql",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_sitename",
|
||||
"label": "Sitename",
|
||||
"defaultValue": "My site!",
|
||||
"description": "The title of the site, the words on the tab"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_redis_version",
|
||||
"label": "Redis version",
|
||||
"defaultValue": "5.0",
|
||||
"description": "Version of Redis",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_admin_user",
|
||||
"label": "Admin username",
|
||||
"defaultValue": "admin",
|
||||
"description": "Name of the admin account",
|
||||
"validRegex": "/.{1,}/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_admin_pass",
|
||||
"label": "Admin password",
|
||||
"defaultValue": "sTr0nG_p@s$wo%d",
|
||||
"description": "Password of the admin account",
|
||||
"validRegex": "/.{1,}/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_admin_email",
|
||||
"label": "Admin email",
|
||||
"defaultValue": "your_email@gmail.com",
|
||||
"description": "Email of the admin account",
|
||||
"validRegex": "/.{1,}/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_db_name",
|
||||
"label": "Database name",
|
||||
"defaultValue": "discourse_db",
|
||||
"description": "Name for the database using postgresql",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_db_user",
|
||||
"label": "Database user",
|
||||
"defaultValue": "discourse_user",
|
||||
"description": "Username for the database using postgresql",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_db_pass",
|
||||
"label": "Database password",
|
||||
"defaultValue": "sTr0nG_p@s$wo%d",
|
||||
"description": "Password for the database user and root using postgresql",
|
||||
"validRegex": "/.{1,}/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_smtp_host",
|
||||
"label": "SMPT host",
|
||||
"defaultValue": "smtp.gmail.com",
|
||||
"description": "The host for your smtp server"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_smtp_port",
|
||||
"label": "SMTP port",
|
||||
"defaultValue": "587",
|
||||
"description": "The port for your smtp server"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_smtp_user",
|
||||
"label": "SMTP user",
|
||||
"defaultValue": "your_email@gmail.com",
|
||||
"description": "The user for your smtp server"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_smtp_pass",
|
||||
"label": "SMTP password",
|
||||
"defaultValue": "sTr0nG_p@s$wo%d",
|
||||
"description": "The password for your smtp server"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,55 +0,0 @@
|
|||
{
|
||||
"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.",
|
||||
"isOfficial": true,
|
||||
"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^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"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,}/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,89 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "https://hub.docker.com/r/upshift/dolibarr",
|
||||
"description": "Open Source ERP & CRM for Business (sme or large companies, freelancers, foundations)",
|
||||
"displayName": "Dolibarr",
|
||||
"dockerCompose": {
|
||||
"version": "3.8",
|
||||
"services": {
|
||||
"$$cap_appname-db": {
|
||||
"image": "postgres:$$cap_postgres-version",
|
||||
"notExposeAsWebApp": "true",
|
||||
"volumes": ["$$cap_appname-db:/var/lib/postgresql/data"],
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"POSTGRES_USER": "dolibarr",
|
||||
"POSTGRES_PASSWORD": "$$cap_pg-pass",
|
||||
"POSTGRES_DB": "dolibarr"
|
||||
}
|
||||
},
|
||||
"$$cap_appname": {
|
||||
"image": "upshift/dolibarr:$$cap_dolibarr-version",
|
||||
"containerHttpPort": "80",
|
||||
"depends_on": ["$$cap_appname-db"],
|
||||
"volumes": [
|
||||
"$$cap_appname-html:/var/www/html",
|
||||
"$$cap_appname-docs:/var/www/documents"
|
||||
],
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"DOLI_DB_HOST": "srv-captain--$$cap_appname-db",
|
||||
"DOLI_DB_NAME": "dolibarr",
|
||||
"DOLI_DB_ROOT_LOGIN": "dolibarr",
|
||||
"DOLI_DB_ROOT_PASSWOORD": "$$cap_pg-pass",
|
||||
"DOLI_DB_USER": "dolibarr",
|
||||
"DOLI_DB_PORT": 5432,
|
||||
"DOLI_DB_TYPE": "pgsql",
|
||||
"DOLI_DB_PASSWORD": "$$cap_pg-pass",
|
||||
"DOLI_ADMIN_LOGIN": "$$cap_admin-login",
|
||||
"DOLI_ADMIN_PASSWORD": "$$cap_admin-pass",
|
||||
"DOLI_URL_ROOT": "http://$$cap_appname.$$cap_root_domain"
|
||||
}
|
||||
}
|
||||
},
|
||||
"volumes": {
|
||||
"$$cap_appname-html": {},
|
||||
"$$cap_appname-docs": {},
|
||||
"$$cap_appname-db": {}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"start": "Dolibarr is an Open Source ERP & CRM for Business",
|
||||
"end": "Dolibarr is deployed and available as srv-captain--$$cap_appname:8080 to other apps."
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
"id": "$$cap_postgres-version",
|
||||
"label": "Postgres Version",
|
||||
"defaultValue": "9.6-alpine",
|
||||
"description": "Checkout their docker page for the valid tags https://hub.docker.com/r/library/postgres/tags/",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_dolibarr-version",
|
||||
"label": "Dolibarr Version",
|
||||
"defaultValue": "11.0",
|
||||
"description": "Checkout their docker page for the valid tags https://hub.docker.com/r/library/postgres/tags/",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_pg-pass",
|
||||
"label": "Postgres Password",
|
||||
"description": "The password of the PostgreSQL Database",
|
||||
"validRegex": "/.{1,}/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_admin-login",
|
||||
"label": "Dolibarr Admin Login",
|
||||
"defaultValue": "admin",
|
||||
"description": "The login of the fisrt admin user of Dolibarr",
|
||||
"validRegex": "/.{1,}/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_admin-pass",
|
||||
"label": "Dolibarr Admin Password",
|
||||
"description": "The password of the first admin user of Dolibarr",
|
||||
"validRegex": "/.{1,}/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,102 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://docs.drone.io/intro/gitea/single-machine/",
|
||||
"displayName": "Drone.io",
|
||||
"description": "Drone is a self-service Continuous Delivery platform for busy development teams",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "2",
|
||||
"services": {
|
||||
"$$cap_appname-agent": {
|
||||
"image": "drone/agent:$$cap_drone_version",
|
||||
"notExposeAsWebApp": "true",
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"DRONE_SERVER": "srv-captain--$$cap_appname-server:9000",
|
||||
"DRONE_SECRET": "$$cap_drone_secret"
|
||||
}
|
||||
},
|
||||
"$$cap_appname-server": {
|
||||
"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": {
|
||||
"DRONE_GITEA_SERVER": "$$cap_drone_gitea_server",
|
||||
"DRONE_GIT_ALWAYS_AUTH": "$$cap_drone_gitea_always_auth",
|
||||
"DRONE_RUNNER_CAPACITY": "$$cap_drone_runner_capacity",
|
||||
"DRONE_SERVER_PROTO": "$$cap_drone_server_proto",
|
||||
"DRONE_SERVER_HOST": "$$cap_drone_server_host",
|
||||
"DRONE_TLS_AUTOCERT": "$$cap_drone_tls_autocert",
|
||||
"DRONE_SECRET": "$$cap_drone_secret"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"start": "Drone is a self-service Continuous Delivery platform for busy development teams. It can be used with different GIT servers like gogs, gitea as well as services like gitlab and github. This installer is gitea focused and requires a running gitea instances (which you can install via one-click-apps in caprover).\n\n Enter your Drone for Gitea configuration parameters and click on next. The process will take about a minute to finish.",
|
||||
"end": "Drone is deployed and available as $$cap_appname-server.\n\n IMPORTANT: It will take up to 2 minutes for Drone for Gitea to be ready. Before that, you might see 502 error page.\n"
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
"id": "$$cap_drone_version",
|
||||
"label": "drone Version",
|
||||
"defaultValue": "1.0.0-rc.5",
|
||||
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/drone/drone/tags",
|
||||
"validRegex": ""
|
||||
},
|
||||
{
|
||||
"id": "$$cap_drone_gitea_server",
|
||||
"label": "DRONE_GITEA_SERVER",
|
||||
"defaultValue": "https://your.server",
|
||||
"description": "A string containing your Gitea server address.",
|
||||
"validRegex": ""
|
||||
},
|
||||
{
|
||||
"id": "$$cap_drone_gitea_always_auth",
|
||||
"label": "DRONE_GIT_ALWAYS_AUTH",
|
||||
"defaultValue": "false",
|
||||
"description": "Boolean value configures Drone to authenticate when cloning public repositories. This is only required when your source code management system (e.g. GitHub Enterprise) has private mode enabled.",
|
||||
"validRegex": ""
|
||||
},
|
||||
{
|
||||
"id": "$$cap_drone_runner_capacity",
|
||||
"label": "DRONE_RUNNER_CAPACITY",
|
||||
"defaultValue": "2",
|
||||
"description": "An integer defining the maximum number of pipelines the agent should execute concurrently. The default value is two pipelines.",
|
||||
"validRegex": "/^[0-9]+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_drone_server_proto",
|
||||
"label": "DRONE_SERVER_PROTO",
|
||||
"defaultValue": "https",
|
||||
"description": "A string containing your Drone server protocol scheme. This value should be set to http or https. This field defaults to https if you configure ssl or acme.",
|
||||
"validRegex": "/^([Hh][Tt][Tt][Pp]|[Hh][Tt][Tt][Pp][Ss])$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_drone_server_host",
|
||||
"label": "DRONE_SERVER_HOST",
|
||||
"defaultValue": "drone.yourhost.com",
|
||||
"description": "A string containing your Drone server hostname or IP address.",
|
||||
"validRegex": ""
|
||||
},
|
||||
{
|
||||
"id": "$$cap_drone_tls_autocert",
|
||||
"label": "DRONE_TLS_AUTOCERT",
|
||||
"defaultValue": "false",
|
||||
"description": "An boolean indicating debug level logs should be use for automatic SSL certification generation and configuration. The default value is false..",
|
||||
"validRegex": "/^([Tt][Rr][Uu][Ee]|[Ff][Aa][Ll][Ss][Ee])$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_drone_secret",
|
||||
"label": "secret for linking drone and agent",
|
||||
"description": "some random secret here (min 10 characters)",
|
||||
"defaultValue": "",
|
||||
"validRegex": "/.{10,}/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,32 +0,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"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,35 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://github.com/eclipse/mosquitto. Mosquitto is an open source implementation of a server for version 5.0, 3.1.1, and 3.1 of the MQTT protocol. It also includes a C and C++ client library, and the mosquitto_pub and mosquitto_sub utilities for publishing and subscribing.",
|
||||
"displayName": "Eclipse Mosquitto - A MQTT Broker",
|
||||
"description": "Eclipse Mosquitto is an open source message broker which implements MQTT version 5, 3.1.1 and 3.1",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "3.3",
|
||||
"services": {
|
||||
"$$cap_appname": {
|
||||
"image": "eclipse-mosquitto:$$cap_eclipse_version",
|
||||
"volumes": [
|
||||
"$$cap_appname-eclipse-config:/mosquitto/config/",
|
||||
"$$cap_appname-eclipse-data:/mosquitto/data/",
|
||||
"$$cap_appname-eclipse-log:/mosquitto/log/"
|
||||
],
|
||||
"notExposeAsWebApp": "true",
|
||||
"ports": [],
|
||||
"restart": "always"
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"start": "Eclipse Mosquitto is an open source message broker which implements MQTT version 5, 3.1.1 and 3.1. Enter Parameters below",
|
||||
"end": "Eclipes-Mosquitto is deployed and available as srv-captain--$$cap_appname:1883 to other apps and srv-captain--$$cap_appname:9001 as a websocket."
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
"id": "$$cap_eclipse_version",
|
||||
"label": "Eclipes-Mosquitto Image Version",
|
||||
"defaultValue": "latest",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,85 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Look at https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html for further assistance using Elasticsearch with docker.",
|
||||
"displayName": "",
|
||||
"description": "Elasticsearch is a search engine based on the Lucene library",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "3.3",
|
||||
"services": {
|
||||
"$$cap_appname": {
|
||||
"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",
|
||||
"cluster.initial_master_nodes": "$$cap_elasticsearch_cluster_initial_master_nodes",
|
||||
"http.port": "$$cap_container_port",
|
||||
"node.name": "$$cap_appname",
|
||||
"node.master": "$$cap_elasticsearch_node_master",
|
||||
"node.data": "$$cap_elasticsearch_node_data",
|
||||
"discovery.seed_hosts": "$$cap_elasticsearch_discovery_seed_hosts"
|
||||
},
|
||||
"containerHttpPort": "$$cap_container_port"
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"start": "Elasticsearch is a distributed, RESTful search and analytics engine. This image can be used for single nodes and cluster setups. IMPORTANT: 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. IMPORTANT: 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\")"
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
"id": "$$cap_elasticsearch_version",
|
||||
"label": "Elasticsearch Version Tag ",
|
||||
"description": "Checkout the releases overview: https://www.elastic.co/de/downloads/elasticsearch",
|
||||
"defaultValue": "7.8.0",
|
||||
"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_cluster_initial_master_nodes",
|
||||
"label": "Cluster Initial Master Nodes",
|
||||
"description": "Nodes to be used as master nodes. If this is the master node, put the 'App Name' selected above",
|
||||
"defaultValue": "",
|
||||
"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 TRUE, others FALSE).",
|
||||
"defaultValue": "true",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_elasticsearch_discovery_seed_hosts",
|
||||
"label": "Discovery seed hosts",
|
||||
"defaultValue": "srv-captain--XXX",
|
||||
"description": "Domains to start the discovery of other nodes",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_container_port",
|
||||
"label": "Container TCP Port",
|
||||
"defaultValue": "9200",
|
||||
"description": "Internal port for Elasticsearch the container listens to.",
|
||||
"validRegex": "/^([0-9])+$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,52 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Read the documentation @ https://github.com/GRBurst/docker-etesync-server",
|
||||
"displayName": "ETESync",
|
||||
"description": "ETESync is a self hosted syning solution, it is secure, end-to-end encrypted, and privacy respecting sync for your contacts, calendars and tasks.",
|
||||
"dockerCompose": {
|
||||
"version": "3.7",
|
||||
"services": {
|
||||
"$$cap_appname": {
|
||||
"image": "grburst/etesync:$$cap_version",
|
||||
"containerHttpPort": "3735",
|
||||
"volumes": ["$$cap_appname-data:/data"],
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"SUPER_USER": "$$cap_SUPER_USER",
|
||||
"SUPER_EMAIL": "$$cap_SUPER_EMAIL",
|
||||
"SUPER_PASS": "$$cap_SUPER_PASS"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"start": "ETESync is a open source and privacy focuse sync service",
|
||||
"end": "Deployment of ETEsync is finished. You might see 502 errors for the next 2 minutes. Goto <YOUR-APP-URL>/admin to manage your users for ETEsync."
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
"id": "$$cap_version",
|
||||
"label": "version tag",
|
||||
"description": "Checkout their docker page for the valid tags @ https://hub.docker.com/r/grburst/etesync",
|
||||
"defaultValue": "alpine"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_SUPER_USER",
|
||||
"label": "user name",
|
||||
"description": "etesync super user name",
|
||||
"defaultValue": "root"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_SUPER_EMAIL",
|
||||
"label": "email",
|
||||
"description": "etesync super user email",
|
||||
"defaultValue": "x@x.com"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_SUPER_PASS",
|
||||
"label": "password",
|
||||
"description": "etesync super user password",
|
||||
"validRegex": "/^([a-zA-Z0-9])+$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,65 +0,0 @@
|
|||
{
|
||||
"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",
|
||||
"isOfficial": true,
|
||||
"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^\\/])+$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,40 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://filebrowser.xyz/installation#docker except moved the database to a directory to be able to associate with a volume",
|
||||
"displayName": "",
|
||||
"description": "filebrowser provides a file managing interface within a specified directory and it can be used to upload, delete, preview, rename and edit your files with supports for multi users.",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "3.3",
|
||||
"services": {
|
||||
"$$cap_appname": {
|
||||
"dockerfileLines": [
|
||||
"FROM alpine:latest as helper",
|
||||
"# Similar to the original file, except, /database.db is inside a directory now so that we can assign a volume to it.",
|
||||
"RUN echo \"{'port':80,'baseURL':'','address':'','log':'stdout','database':'/database/database.db','root':'/srv'}\" | sed \"s/\\'/\\\"/g\" >/.edited.json",
|
||||
"FROM filebrowser/filebrowser:$$cap_filebrowser_version",
|
||||
"COPY --from=helper /.edited.json /.filebrowser.json"
|
||||
],
|
||||
"volumes": [
|
||||
"$$cap_appname-database:/database",
|
||||
"$$cap_appname-files:/srv"
|
||||
],
|
||||
"restart": "always",
|
||||
"environment": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"start": "filebrowser provides a file managing interface within a specified directory and it can be used to upload, delete, preview, rename and edit your files. It allows the creation of multiple users and each user can have its own directory.\n\n\nIMPORTANT:\nThe default image maps an empty volume to FileBrowser in order to avoid exposing your files, but after you finished installation and changed the password you can mount the root directory of host. i.e. / to /srv in the app.",
|
||||
"end": "Important! Read this and take a screenshot so you can refer to it!\n\nusername and password are both \"admin\".\n\nBy default, $$cap_appname-files volume, which is an empty directory, is mapped to your file browser content which is at /srv inside the app. To change this:\n\n1- Go to FileBrowser and change password to something else to avoid having your files exposed\n2- Go to CapRover > Apps > FileBrowser > App Config tab and change $$cap_appname-files to\n2a) some other volume name such as \"cap_name-myappvolume\" if you want to view the content of that volume\n2b) \"/some/existing/path/on/host\" if you want to view a specific path on the host.\n2c) \"/\" to view the entire content of your host!\n\n\nDon't change the \"/srv\" part of the mapping. \"/srv\" is the directory inside FileBrowser which is used to display content in FileBrowser."
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
"id": "$$cap_filebrowser_version",
|
||||
"label": "File Browser Version Tag",
|
||||
"description": "Check out their Docker page for the valid tags: https://hub.docker.com/r/filebrowser/filebrowser/tags",
|
||||
"defaultValue": "v2.0.16",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Filestash https://www.filestash.app",
|
||||
"description": "A modern web client for SFTP, S3, FTP, WebDAV, Git, Minio, LDAP, CalDAV, CardDAV, Mysql, Backblaze, ...",
|
||||
"displayName": "Filestash",
|
||||
"dockerCompose": {
|
||||
"version": "3.3",
|
||||
"services": {
|
||||
"$$cap_appname": {
|
||||
"image": "machines/filestash:$$cap_filestash_version",
|
||||
"containerHttpPort": "8334",
|
||||
"volumes": ["$$cap_appname-app-data-state:/app/data/state"],
|
||||
"restart": "always"
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"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": [
|
||||
{
|
||||
"id": "$$cap_filestash_version",
|
||||
"label": "Filestash Version",
|
||||
"defaultValue": "b7b45f2",
|
||||
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/machines/filestash/tags"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,97 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://docs.firefly-iii.org/installation/docker",
|
||||
"description": "Firefly III - A free and open source personal finance manager",
|
||||
"displayName": "Firefly III",
|
||||
"dockerCompose": {
|
||||
"version": "3.8",
|
||||
"services": {
|
||||
"$$cap_appname": {
|
||||
"image": "jc5x/firefly-iii:$$cap_firefly_version",
|
||||
"containerHttpPort": "8080",
|
||||
"volumes": [
|
||||
"$$cap_appname-export:/var/www/firefly-iii/storage/export",
|
||||
"$$cap_appname-upload:/var/www/firefly-iii/storage/upload"
|
||||
],
|
||||
"restart": "always",
|
||||
"depends_on": ["$$cap_appname-db"],
|
||||
"environment": {
|
||||
"SITE_OWNER": "$$cap_firefly_site-owner",
|
||||
"TZ": "$$cap_firefly_time-zone",
|
||||
"TRUSTED_PROXIES": "**",
|
||||
"DB_CONNECTION": "mysql",
|
||||
"DB_PORT": 3306,
|
||||
"DB_DATABASE": "firefly",
|
||||
"DB_USERNAME": "firefly",
|
||||
"DB_HOST": "srv-captain--$$cap_appname-db",
|
||||
"DB_PASSWORD": "$$cap_mariadb_password",
|
||||
"APP_KEY": "$$cap_firefly_app-key"
|
||||
}
|
||||
},
|
||||
"$$cap_appname-db": {
|
||||
"image": "mariadb:$$cap_mariadb_version",
|
||||
"notExposeAsWebApp": "true",
|
||||
"volumes": ["$$cap_appname-db-data:/var/lib/mysql"],
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"MYSQL_ROOT_PASSWORD": "$$cap_mariadb_password",
|
||||
"MYSQL_DATABASE": "firefly",
|
||||
"MYSQL_USER": "firefly",
|
||||
"MYSQL_PASSWORD": "$$cap_mariadb_password"
|
||||
}
|
||||
}
|
||||
},
|
||||
"volumes": {
|
||||
"$$cap_appname-db-data": {},
|
||||
"$$cap_appname-export": {},
|
||||
"$$cap_appname-upload": {}
|
||||
}
|
||||
},
|
||||
|
||||
"instructions": {
|
||||
"start": "Enter your Firefly III Configuration parameters and click on next. It will take about a minute for the process to finish.",
|
||||
"end": "Firefly III is deployed and available from the url http://$$cap_appname.$$cap_root_domain"
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
"id": "$$cap_mariadb_version",
|
||||
"label": "Mariadb Version Tag",
|
||||
"description": "Check out their Docker page for the valid tags https://hub.docker.com/_/mariadb?tab=tags",
|
||||
"defaultValue": "10.5.4",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_mariadb_password",
|
||||
"label": "Mariadb Password",
|
||||
"description": "The password of the Mariadb Database\"",
|
||||
"validRegex": "/.{1,}/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_firefly_version",
|
||||
"label": "Firefly Version Tag",
|
||||
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/jc5x/firefly-iii/tags",
|
||||
"defaultValue": "release-5.3.0",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_firefly_site-owner",
|
||||
"label": "Firefly Site Owner Mail",
|
||||
"description": "The email address of the owner of the app.",
|
||||
"validRegex": "/^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_firefly_time-zone",
|
||||
"label": "Time zone",
|
||||
"description": "The preferred time zone. Check out the available time zone on https://en.wikipedia.org/wiki/List_of_tz_database_time_zones",
|
||||
"defaultValue": "Europe/Brussels",
|
||||
"validRegex": "/.{1,}/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_firefly_app-key",
|
||||
"label": "Firefly APP KEY",
|
||||
"description": "The key from which everything is encrypted. Generate one on https://passwordsgenerator.net/?length=32&symbols=0&numbers=1&lowercase=1&uppercase=1&similar=0&ambiguous=0&client=1&autoselect=0",
|
||||
"defaultValue": "qSAY3tVhAHgz87gusKFoPbg9hpCnMVTR",
|
||||
"validRegex": "/^[A-Za-z0-9]{32}$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,172 +0,0 @@
|
|||
{
|
||||
"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",
|
||||
"isOfficial": true,
|
||||
"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"
|
||||
]
|
||||
}
|
||||
},
|
||||
"networks": {
|
||||
"db": {
|
||||
"driver": "bridge"
|
||||
},
|
||||
"search": {
|
||||
"driver": "bridge"
|
||||
}
|
||||
},
|
||||
"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])+$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,152 +0,0 @@
|
|||
{
|
||||
"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.",
|
||||
"isOfficial": true,
|
||||
"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,}$/"
|
||||
},
|
||||
|
||||
{
|
||||
"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"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,153 +0,0 @@
|
|||
{
|
||||
"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",
|
||||
"isOfficial": true,
|
||||
"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"]
|
||||
},
|
||||
"$$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"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,64 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://hub.docker.com/r/gitea/gitea/",
|
||||
"displayName": "",
|
||||
"description": "Gitea is a software package for hosting software development using Git as well as bug tracking, wikis and code review",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "2",
|
||||
"services": {
|
||||
"$$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": "gitea",
|
||||
"MYSQL_USER": "gitea",
|
||||
"MYSQL_PASSWORD": "$$cap_db_pass"
|
||||
}
|
||||
},
|
||||
"$$cap_appname-gitea": {
|
||||
"depends_on": ["$$cap_appname-db"],
|
||||
"image": "gitea/gitea:$$cap_gitea_version",
|
||||
"containerHttpPort": "3000",
|
||||
"volumes": ["$$cap_appname-data:/data"],
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"RUN_MODE": "prod",
|
||||
"DB_TYPE": "mysql",
|
||||
"DB_HOST": "srv-captain--$$cap_appname-db:3306",
|
||||
"DB_USER": "gitea",
|
||||
"DB_PASSWD": "$$cap_db_pass"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"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": [
|
||||
{
|
||||
"id": "$$cap_db_pass",
|
||||
"label": "MySQL Root password",
|
||||
"description": "",
|
||||
"validRegex": "/.{1,}/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_gitea_version",
|
||||
"label": "Gitea Version",
|
||||
"defaultValue": "1.7",
|
||||
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/gitea/gitea/tags",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"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^\\/])+$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://docs.gitlab.com/omnibus/docker/",
|
||||
"displayName": "Gitlab (CE)",
|
||||
"description": "CE version of GitLab for CI/CD pipeline",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "3.3",
|
||||
"services": {
|
||||
"$$cap_appname": {
|
||||
"image": "gitlab/gitlab-ce:$$cap_gitlab_version",
|
||||
"volumes": [
|
||||
"$$cap_appname-config: /etc/gitlab",
|
||||
"$$cap_appname-logs: /var/log/gitlab",
|
||||
"$$cap_appname-data: /var/opt/gitlab"
|
||||
],
|
||||
"restart": "always",
|
||||
"containerHttpPort": "80",
|
||||
"environment": {
|
||||
"GITLAB_OMNIBUS_CONFIG": "$$cap_gitlab_omnibus_config"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"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": [
|
||||
{
|
||||
"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",
|
||||
"defaultValue": "11.9.8-ce.0",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_gitlab_omnibus_config",
|
||||
"label": "Omnibus Config (Optional)",
|
||||
"description": "More information here: https://docs.gitlab.com/omnibus/docker/#pre-configure-docker-container"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://docs.gitlab.com/runner/install/docker.html and https://docs.gitlab.com/runner/register/",
|
||||
"displayName": "Gitlab (runner)",
|
||||
"description": "Runner version of GitLab for CI/CD pipeline",
|
||||
"isOfficial": true,
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"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.",
|
||||
"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": [
|
||||
{
|
||||
"id": "$$cap_gitlab-runner_version",
|
||||
"label": "GitLab-Runner Version",
|
||||
"defaultValue": "v11.11.0",
|
||||
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/gitlab/gitlab-runner/tags",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "https://hub.docker.com/r/grafana/grafana",
|
||||
"displayName": "Grafana",
|
||||
"description": "Grafana allows you to query, visualize, alert on and understand your metrics no matter where they are stored.",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"services": {
|
||||
"$$cap_appname": {
|
||||
"containerHttpPort": "3000",
|
||||
"image": "grafana/grafana@$$cap_version",
|
||||
"restart": "always",
|
||||
"volumes": [
|
||||
"$$cap_appname-config:/etc/grafana",
|
||||
"$$cap_appname-data:/var/lib/grafana"
|
||||
]
|
||||
}
|
||||
},
|
||||
"version": "2",
|
||||
"volumes": {
|
||||
"$$cap_appname-config": {},
|
||||
"$$cap_appname-data": {}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"end": "Grafana is now starting. You can log in with the default login/password of admin/admin.",
|
||||
"start": "Read more about Grafana: https://grafana.com/"
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
"label": "Grafana Docker Hash",
|
||||
"defaultValue": "sha256:4171e7e8c44bb17f9e5bffdcd3710a6d624828d73b4eb638682543c5ce86bbe9",
|
||||
"description": "Starts with 'sha256:'. Find on Docker Hub. Default is latest as of 2020-06-30.",
|
||||
"id": "$$cap_version"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,129 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://hub.docker.com/r/graylog/graylog",
|
||||
"displayName": "",
|
||||
"description": "Graylog is used for log management of both structured and unstructured data along with debugging applications.",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "3.3",
|
||||
"services": {
|
||||
"$$cap_appname-mongodb": {
|
||||
"image": "mongo:$$cap_mongo_version",
|
||||
"notExposeAsWebApp": "true",
|
||||
"volumes": [
|
||||
"$$cap_appname-db-data:/data/db",
|
||||
"$$cap_appname-db-config:/data/configdb"
|
||||
],
|
||||
"restart": "always"
|
||||
},
|
||||
"$$cap_appname-elasticsearch": {
|
||||
"notExposeAsWebApp": "true",
|
||||
"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_port",
|
||||
"node.master": "$$cap_elasticsearch_node_master",
|
||||
"node.data": "$$cap_elasticsearch_node_data",
|
||||
"discovery.zen.minimum_master_nodes": "$$cap_elasticsearch_minimum_master_nodes",
|
||||
"discovery.zen.ping.unicast.hosts": "$$cap_elasticsearch_unicast_hosts"
|
||||
}
|
||||
},
|
||||
"$$cap_appname": {
|
||||
"depends_on": [
|
||||
"$$cap_appname-mongodb",
|
||||
"$$cap_appname-elasticsearch"
|
||||
],
|
||||
"image": "graylog/graylog:$$cap_graylog_version",
|
||||
"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"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"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": [
|
||||
{
|
||||
"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",
|
||||
"description": "Checkout their docker page for the valid tags https://hub.docker.com/r/library/mongo/tags/",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"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": "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",
|
||||
"description": "Internal port for Elasticsearch the container listens to.",
|
||||
"validRegex": "/^([0-9])+$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,55 +0,0 @@
|
|||
{
|
||||
"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.",
|
||||
"isOfficial": true,
|
||||
"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^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"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,}/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,48 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Hasura GraphQL Engine",
|
||||
"displayName": "Hasura - No Database",
|
||||
"description": "Instant realtime GraphQL APIs on any Postgres application, existing or new",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "3.6",
|
||||
"services": {
|
||||
"$$cap_appname": {
|
||||
"image": "hasura/graphql-engine:$$cap_hasura_version",
|
||||
"containerHttpPort": "8080",
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"HASURA_GRAPHQL_DATABASE_URL": "$$cap_database_url",
|
||||
"HASURA_GRAPHQL_ENABLE_CONSOLE": "true",
|
||||
"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 console."
|
||||
},
|
||||
"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^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"description": "The admin secret gives you access to the console.",
|
||||
"id": "$$cap_admin_secret",
|
||||
"label": "Hasura admin secret(password)",
|
||||
"validRegex": "/^(?=.*\\d).{10,}$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_database_url",
|
||||
"label": "Postgres Connection URL",
|
||||
"description": "postgres://username:password@host/database",
|
||||
"validRegex": "/postgres://.+/.+/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,85 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Hasura GraphQL Engine",
|
||||
"displayName": "",
|
||||
"description": "Instant realtime GraphQL APIs on any Postgres application, existing or new",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "3.6",
|
||||
"services": {
|
||||
"$$cap_appname-db": {
|
||||
"image": "postgres:$$cap_postgres_version",
|
||||
"notExposeAsWebApp": "true",
|
||||
"volumes": ["$$cap_appname-db-data:/var/lib/postgresql/data"],
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"POSTGRES_USER": "$$cap_pg_user",
|
||||
"POSTGRES_PASSWORD": "$$cap_pg_pass",
|
||||
"POSTGRES_DB": "$$cap_pg_db",
|
||||
"POSTGRES_INITDB_ARGS": "$$cap_pg_initdb_args"
|
||||
}
|
||||
},
|
||||
"$$cap_appname": {
|
||||
"image": "hasura/graphql-engine:$$cap_hasura_version",
|
||||
"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_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 console. 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": "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": "",
|
||||
"validRegex": "/.{1,}/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_pg_pass",
|
||||
"label": "Postgres Password",
|
||||
"description": "",
|
||||
"validRegex": "/.{1,}/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_pg_db",
|
||||
"label": "Postgres Default Database",
|
||||
"description": "",
|
||||
"validRegex": "/.{1,}/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_pg_initdb_args",
|
||||
"label": "OPTIONAL: Arguments for 'postgres initdb'",
|
||||
"description": "For example, --data-checksums",
|
||||
"validRegex": "/.{0,}/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,119 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://hub.docker.com/_/influxdb",
|
||||
"displayName": "InfluxDb",
|
||||
"description": "InfluxDB is a time series database. It stores large amounts of timestamped data, including DevOps monitoring, application metrics, IoT sensor data, and real-time analytics.",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "3.3",
|
||||
"services": {
|
||||
"$$cap_appname-db": {
|
||||
"image": "influxdb:$$cap_influx_version",
|
||||
"notExposeAsWebApp": "true",
|
||||
"volumes": ["$$cap_appname-db-data:/var/lib/influxdb"],
|
||||
"restart": "always",
|
||||
"ports": [
|
||||
"$$cap_influxdb_port:8086",
|
||||
"$$cap_graphite_port:2003"
|
||||
],
|
||||
"environment": {
|
||||
"INFLUXDB_DB": "$$cap_influx_db",
|
||||
"INFLUXDB_HTTP_AUTH_ENABLED": "$$cap_influx_auth_enabled",
|
||||
"INFLUXDB_ADMIN_USER": "$$cap_influx_admin_user",
|
||||
"INFLUXDB_ADMIN_PASSWORD": "$$cap_influx_admin_password",
|
||||
"INFLUXDB_USER": "$$cap_influx_user",
|
||||
"INFLUXDB_USER_PASSWORD": "$$cap_influx_user_password",
|
||||
"INFLUXDB_READ_USER": "$$cap_influx_read_user",
|
||||
"INFLUXDB_READ_USER_PASSWORD": "$$cap_influx_read_user_password",
|
||||
"INFLUXDB_WRITE_USER": "$$cap_influx_write_user",
|
||||
"INFLUXDB_WRITE_USER_PASSWORD": "$$cap_influx_write_password"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"start": "Influxdb is a time series database, and part of the tickstack. After installation on CapRover, it will be available as srv-captain--YOUR_CONTAINER_NAME at the port you choose (8086 by default) to other CapRover apps.\n\n Enter your Influxdb configuration parameters and click on next. The default configuration has no users or authentication and is only accessible to other Caprover apps. It will take about a minute for the process to finish.",
|
||||
"end": "All set. Influx is deployed and available as srv-captain--$$cap_appname-db:$$cap_influxdb_port to other apps. For example with curl 'curl -G http://srv-captain--$$cap_appname-db:$$cap_influxdb_port/query --data-urlencode \"q=CREATE DATABASE mydb\"'"
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
"id": "$$cap_influx_version",
|
||||
"label": "InfluxDb Version",
|
||||
"defaultValue": "1.8",
|
||||
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/library/influxdb/tags/",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"label": "Influxdb port",
|
||||
"description": "The port to make queries to influxdb.",
|
||||
"defaultValue": "8086",
|
||||
"id": "$$cap_influxdb_port"
|
||||
},
|
||||
{
|
||||
"label": "Graphite port",
|
||||
"description": "The port for graphite protocol",
|
||||
"defaultValue": "2003",
|
||||
"id": "$$cap_graphite_port"
|
||||
},
|
||||
{
|
||||
"label": "Influx DB",
|
||||
"description": "Automatically initializes a database with the name of this environment variable.",
|
||||
"defaultValue": "",
|
||||
"id": "$$cap_influx_db"
|
||||
},
|
||||
{
|
||||
"label": "Auth enabled (true/false)",
|
||||
"description": "Enables authentication. Either this must be set or auth-enabled = true must be set within the configuration file for any authentication related options below to work.",
|
||||
"defaultValue": "",
|
||||
"id": "$$cap_influx_auth_enabled"
|
||||
},
|
||||
{
|
||||
"label": "Admin User",
|
||||
"description": "The name of the admin user to be created. If this is unset, no admin user is created.",
|
||||
"defaultValue": "",
|
||||
"id": "$$cap_influx_admin_user"
|
||||
},
|
||||
{
|
||||
"label": "Admin password",
|
||||
"description": "The password for the admin user configured with INFLUXDB_ADMIN_USER. If this is unset, a random password is generated and printed to standard out.",
|
||||
"defaultValue": "",
|
||||
"id": "$$cap_influx_admin_password"
|
||||
},
|
||||
{
|
||||
"label": "Inlfux user",
|
||||
"description": "The name of a user to be created with no privileges. If INFLUXDB_DB is set, this user will be granted read and write permissions for that database.",
|
||||
"defaultValue": "",
|
||||
"id": "$$cap_influx_user"
|
||||
},
|
||||
{
|
||||
"label": "Influx password",
|
||||
"description": "The password for the user configured with INFLUXDB_USER. If this is unset, a random password is generated and printed to standard out.",
|
||||
"defaultValue": "",
|
||||
"id": "$$cap_influx_user_password"
|
||||
},
|
||||
{
|
||||
"label": "Influx read user",
|
||||
"description": "The name of a user to be created with read privileges on INFLUXDB_DB. If INFLUXDB_DB is not set, this user will have no granted permissions.",
|
||||
"defaultValue": "",
|
||||
"id": "$$cap_influx_read_user"
|
||||
},
|
||||
{
|
||||
"label": "Influx read user password",
|
||||
"description": "The password for the user configured with INFLUXDB_READ_USER. If this is unset, a random password is generated and printed to standard out",
|
||||
"defaultValue": "",
|
||||
"id": "$$cap_influx_read_user_password"
|
||||
},
|
||||
{
|
||||
"label": "Influx write user",
|
||||
"description": "The name of a user to be created with write privileges on INFLUXDB_DB. If INFLUXDB_DB is not set, this user will have no granted permissions.",
|
||||
"defaultValue": "",
|
||||
"id": "$$cap_influx_write_user"
|
||||
},
|
||||
{
|
||||
"label": "Influx write user password",
|
||||
"description": "The password for the user configured with INFLUXDB_WRITE_USER. If this is unset, a random password is generated and printed to standard out.",
|
||||
"defaultValue": "",
|
||||
"id": "$$cap_influx_write_password"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://hub.docker.com/r/jenkins/jenkins/ ",
|
||||
"displayName": "",
|
||||
"description": "Jenkins helps to automate the non-human part of the software development process, with continuous integration and facilitating technical aspects of continuous delivery",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "3.3",
|
||||
"services": {
|
||||
"$$cap_appname": {
|
||||
"image": "jenkins/jenkins:$$cap_jenkins_version",
|
||||
"containerHttpPort": "8080",
|
||||
"restart": "always",
|
||||
"volumes": ["$$cap_appname-jenkins-home:/var/jenkins_home"]
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"start": "Jenkins is a self-contained, open source automation server which can be used to automate all sorts of tasks related to building, testing, and delivering or deploying software.\n\n It's documentation is available at: https://jenkins.io/doc/ \n\n For more details about this container, see: https://hub.docker.com/r/jenkins/jenkins/\n\n Enter your Jenkins Configuration parameters and click on next.\n\n To ensure Jenkins is securely set up by the administrator, an initial administrative password will be written to the log, available at the app Deployment tab, and this file on the server: /var/jenkins_home/secrets/initialAdminPassword.\n\n It will take about a minute for the process to finish.",
|
||||
"end": "Jenkins is deployed and available as $$cap_appname"
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
"id": "$$cap_jenkins_version",
|
||||
"label": "Jenkins Version",
|
||||
"defaultValue": "lts-jdk11",
|
||||
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/jenkins/jenkins/tags",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,258 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "https://github.com/jitsi/docker-jitsi-meet",
|
||||
"displayName": "Jitsi",
|
||||
"description": "Free open-source video conferencing for web & mobile",
|
||||
"isOfficial": true,
|
||||
"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"]
|
||||
}
|
||||
}
|
||||
},
|
||||
"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."
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
"label": "Docker tag version",
|
||||
"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"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,59 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://hub.docker.com/_/joomla?tab=description. Based on Wordpress - No Database template.",
|
||||
"displayName": "Joomla - No Database",
|
||||
"description": "This will create a Joomla only. You will need to create and configure the database information manually. Intended for advanced users.",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "3.3",
|
||||
"services": {
|
||||
"$$cap_appname-joomla": {
|
||||
"image": "joomla:$$cap_joomla_version",
|
||||
"volumes": ["$$cap_appname-joomla-data:/var/www/html"],
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"JOOMLA_DB_HOST": "$$cap_db_host:3306",
|
||||
"JOOMLA_DB_NAME": "$$cap_db_name",
|
||||
"JOOMLA_DB_USER": "$$cap_db_user",
|
||||
"JOOMLA_DB_PASSWORD": "$$cap_db_pass"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"start": "Joomla! is one of world's most popular software packages. It is used to build, organise, manage and publish content for small businesses, governments, non-profits and large organisations worldwide.\n\n Enter your Joomla Configuration parameters and click on next. A Joomla 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 instances. You should start by configuring your DB first and then comeback with all the DB Information.",
|
||||
"end": "Joomla is deployed and available as $$cap_appname-joomla . \n\n IMPORTANT: It will take up to 2 minutes for Joomla 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": "joomla",
|
||||
"id": "$$cap_db_name",
|
||||
"label": "DB Name"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_db_user",
|
||||
"label": "Database User",
|
||||
"defaultValue": "joomla"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_db_pass",
|
||||
"label": "Database Password",
|
||||
"description": "",
|
||||
"validRegex": "/.{1,}/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_joomla_version",
|
||||
"label": "Joomla Version",
|
||||
"defaultValue": "php7.3-apache",
|
||||
"description": "Check out their Docker page for the valid tags https://hub.docker.com/_/joomla?tab=tags",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,54 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://hub.docker.com/r/jsreport/jsreport/",
|
||||
"displayName": "",
|
||||
"description": "jsreport is an open source reporting platform where reports are designed using popular javascript templating engines",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "3.3",
|
||||
"services": {
|
||||
"$$cap_appname": {
|
||||
"image": "jsreport/jsreport:$$cap_jsreport_version",
|
||||
"volumes": ["$$cap_appname-data:/jsreport"],
|
||||
"restart": "always",
|
||||
"containerHttpPort": "5488",
|
||||
"environment": {
|
||||
"extensions_authentication_admin_username": "$$cap_jsreport_adminusername",
|
||||
"extensions_authentication_admin_password": "$$cap_jsreport_password",
|
||||
"extensions_authentication_cookieSession_secret": "$$cap_jsreport_secret"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"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": [
|
||||
{
|
||||
"id": "$$cap_jsreport_version",
|
||||
"label": "version",
|
||||
"defaultValue": "2.4.0-full",
|
||||
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/jsreport/jsreport/tags",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_jsreport_adminusername",
|
||||
"label": "Admin user name",
|
||||
"defaultValue": "admin",
|
||||
"description": "Only use alphanumeric chars.",
|
||||
"validRegex": "/^([a-zA-Z0-9])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_jsreport_password",
|
||||
"label": "Admin password",
|
||||
"validRegex": "/^\\s*\\S.*$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_jsreport_secret",
|
||||
"label": "Session secret",
|
||||
"defaultValue": "long-secret",
|
||||
"validRegex": "/^\\s*\\S.*$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Read more at: https://jupyter-docker-stacks.readthedocs.io/",
|
||||
"displayName": "JupyterLab",
|
||||
"description": "JupyterLab is the next-generation user interface for Project Jupyter. It offers all the familiar building blocks of the classic Jupyter Notebook in a flexible and powerful user interface.",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "3.3",
|
||||
"services": {
|
||||
"$$cap_appname": {
|
||||
"containerHttpPort": "8888",
|
||||
"dockerfileLines": [
|
||||
"FROM jupyter/datascience-notebook:9f9e5ca8fe5a",
|
||||
"RUN pip install lxml",
|
||||
"RUN jupyter notebook --generate-config",
|
||||
"RUN echo 'c.NotebookApp.token = \"$$cap_jupyter_default_token\"' >> /home/jovyan/.jupyter/jupyter_notebook_config.py",
|
||||
"EXPOSE 8888"
|
||||
],
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"JUPYTER_ENABLE_LAB": "yes"
|
||||
},
|
||||
"volumes": ["$$cap_appname:/home/jovyan/"]
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"start": "JupyterLab is the next-generation user interface for Project Jupyter.",
|
||||
"end": "JupyterLab 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!"
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
"id": "$$cap_jupyter_default_token",
|
||||
"label": "Jupyter default token",
|
||||
"description": "The default login token allows you to set a password within the application. For better experience leave empty and enable basic auth within the CaprRover dashboard."
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,77 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://github.com/jboss-dockerfiles/keycloak/blob/master/server/README.md",
|
||||
"displayName": "",
|
||||
"description": "Keycloak is an open source identity and access management solution",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "3.3",
|
||||
"services": {
|
||||
"$$cap_appname-db": {
|
||||
"image": "postgres:$$cap_postgres_version",
|
||||
"notExposeAsWebApp": "true",
|
||||
"volumes": ["$$cap_appname-db-data:/var/lib/postgresql/data"],
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"POSTGRES_USER": "keycloak",
|
||||
"POSTGRES_PASSWORD": "$$cap_pg_pass",
|
||||
"POSTGRES_DB": "keycloak"
|
||||
}
|
||||
},
|
||||
"$$cap_appname": {
|
||||
"image": "jboss/keycloak:$$cap_keycloak_version",
|
||||
"depends_on": ["$$cap_appname-db"],
|
||||
"restart": "always",
|
||||
"containerHttpPort": "8080",
|
||||
"environment": {
|
||||
"DB_VENDOR": "postgres",
|
||||
"DB_ADDR": "srv-captain--$$cap_appname-db",
|
||||
"POSTGRES_DB": "keycloak",
|
||||
"DB_USER": "keycloak",
|
||||
"DB_PASSWORD": "$$cap_pg_pass",
|
||||
"KEYCLOAK_USER": "$$cap_keycloak_user",
|
||||
"KEYCLOAK_PASSWORD": "$$cap_keycloak_password",
|
||||
"PROXY_ADDRESS_FORWARDING": "true"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"start": "Keycloak is an Open Source Identity and Access Management solution for modern Applications and Services. It makes it easy to secure applications and services with little to no code.\n\n For documentation, see: https://www.keycloak.org/documentation.html\n\nFor source code, see: https://github.com/keycloak/keycloak\n\nFor docker image, see: https://hub.docker.com/r/jboss/keycloak\n\n Enter your Keycloak Configuration parameters and click on next. It will take about a minute for the process to finish.",
|
||||
"end": "Keycloak is deployed and available as srv-captain--$$cap_appname:8080 to other apps"
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
"id": "$$cap_postgres_version",
|
||||
"label": "Postgres Version",
|
||||
"defaultValue": "9.6",
|
||||
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/library/postgres/tags/",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_keycloak_version",
|
||||
"label": "Keycloak Version",
|
||||
"defaultValue": "6.0.1",
|
||||
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/jboss/keycloak/tags",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_pg_pass",
|
||||
"label": "Postgres Password",
|
||||
"description": "Password strength requeriments: Should contain at least one digit, one lower case, one upper case and at least 12 from the mentioned characters.",
|
||||
"validRegex": "/^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])[0-9a-zA-Z]{12,}$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_keycloak_user",
|
||||
"label": "Keycloak user",
|
||||
"description": "",
|
||||
"validRegex": "/.{1,}/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_keycloak_password",
|
||||
"label": "Keycloak password",
|
||||
"description": "Password strength requeriments: Should contain at least one digit, one lower case, one upper case and at least 12 from the mentioned characters.",
|
||||
"validRegex": "/^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])[0-9a-zA-Z]{12,}$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,52 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "https://www.elastic.co/guide/en/kibana/current/docker.html",
|
||||
"displayName": "kibana",
|
||||
"description": "Kibana is a free and open user interface that lets you visualize your Elasticsearch data and navigate the Elastic Stack.",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"services": {
|
||||
"$$cap_appname": {
|
||||
"containerHttpPort": "5601",
|
||||
"environment": {
|
||||
"SERVER_NAME": "$$cap_appname",
|
||||
"KIBANA_DEFAULTAPPID": "$$cap_KIBANA_DEFAULTAPPID",
|
||||
"MONITORING_ENABLED": "$$cap_MONITORING_ENABLED",
|
||||
"ELASTICSEARCH_HOSTS": "$$cap_ELASTICSEARCH_HOSTS"
|
||||
},
|
||||
"image": "docker.elastic.co/kibana/kibana:$$cap_version",
|
||||
"restart": "always"
|
||||
}
|
||||
},
|
||||
"version": "2"
|
||||
},
|
||||
"instructions": {
|
||||
"end": "That's it! If you get a 502 it might mean that kibana cannot find your elasticsearch instance. Please recheck your configs\n. Ensure basic auth is enabled so your data is not publicly available.",
|
||||
"start": "Provide the ELASTICSEARCH_HOSTS so that kibana can find your elasticsearch instance. be sure to include the http:// protocol in the url.\n Note that Kibana does not have persistent volumes as all data is stored in the elasticsearch instance itself."
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
"label": "Kibana version",
|
||||
"defaultValue": "7.8.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": "Default App id",
|
||||
"defaultValue": "home",
|
||||
"description": "The default app that is loaded when you visit Kibana. Defaults to home",
|
||||
"id": "$$cap_KIBANA_DEFAULTAPPID"
|
||||
},
|
||||
{
|
||||
"label": "MONITORING_ENABLED",
|
||||
"description": "Enable kibana monitoring features?",
|
||||
"defaultValue": "true",
|
||||
"id": "$$cap_MONITORING_ENABLED"
|
||||
},
|
||||
{
|
||||
"label": "ELASTICSEARCH_HOSTS",
|
||||
"description": "URL of the elasticsearch hosts to use. Please include the http or https in the urls. eg. http://srv-captain--elastic",
|
||||
"id": "$$cap_ELASTICSEARCH_HOSTS"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,58 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "https://github.com/Leantime/docker-leantime/blob/master/docker-compose.yml",
|
||||
"displayName": "Leantime",
|
||||
"description": "Open source project management for small teams",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"services": {
|
||||
"$$cap_appname-mysql": {
|
||||
"dockerfileLines": [
|
||||
"FROM mysql:5.7",
|
||||
"CMD [\"--character-set-server=utf8\", \"--collation-server=utf8_unicode_ci\"]"
|
||||
],
|
||||
"volumes": ["$$cap_appname-mysql-data:/var/lib/mysql"],
|
||||
"environment": {
|
||||
"MYSQL_DATABASE": "leantime",
|
||||
"MYSQL_ROOT_PASSWORD": "$$cap_mysql_passwd",
|
||||
"MYSQL_USER": "leantimeuser",
|
||||
"MYSQL_PASSWORD": "$$cap_mysql_passwd"
|
||||
}
|
||||
},
|
||||
"$$cap_appname": {
|
||||
"image": "leantime/leantime:$$cap_leantime_ver",
|
||||
"container_name": "leantime",
|
||||
"environment": {
|
||||
"LEAN_APP_URL": "https://$$cap_appname.$$cap_root_domain",
|
||||
"LEAN_DB_HOST": "srv-captain--$$cap_appname-mysql",
|
||||
"LEAN_DB_USER": "leantimeuser",
|
||||
"LEAN_DB_PASSWORD": "$$cap_mysql_passwd",
|
||||
"LEAN_DB_DATABASE": "leantime"
|
||||
}
|
||||
}
|
||||
},
|
||||
"version": "2",
|
||||
"volumes": {
|
||||
"$$cap_appname-data": {}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"start": "Leantime is a lean project management system for innovators. Designed to help you manage your projects from ideation to delivery.\n See more details here: https://leantime.io",
|
||||
"end": "Leantime is deployed as available as $$cap_appname! You MUST ENABLE HTTPS before accessing the panel."
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
"description": "User password for the database instance.",
|
||||
"defaultValue": "N2cQ4J9VzsfvXwzM",
|
||||
"id": "$$cap_mysql_passwd",
|
||||
"label": "MySQL User Password",
|
||||
"validRegex": "/^(?=.*\\d).{10,}$/"
|
||||
},
|
||||
{
|
||||
"defaultValue": "2.1.4",
|
||||
"id": "$$cap_leantime_ver",
|
||||
"label": "Leantime Version",
|
||||
"validRegex": "/.+/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,70 +0,0 @@
|
|||
{
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"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])+$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,132 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://github.com/Mailtrain-org/mailtrain/blob/development/docker-compose.yml",
|
||||
"displayName": "Mailtrain V2(Beta)",
|
||||
"description": "Mailtrain is a self hosted newsletter application built on Node.js (v10+) and MySQL (v8+) or MariaDB (v10+).",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "3.8",
|
||||
"services": {
|
||||
"$$cap_appname-db": {
|
||||
"image": "mariadb:$$cap_mariadb_version",
|
||||
"notExposeAsWebApp": "true",
|
||||
"volumes": ["$$cap_appname-db-data:/var/lib/mysql"],
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"MYSQL_ROOT_PASSWORD": "$$cap_mariadb_password",
|
||||
"MYSQL_DATABASE": "mailtrain",
|
||||
"MYSQL_USER": "mailtrain",
|
||||
"MYSQL_PASSWORD": "$$cap_mariadb_password"
|
||||
}
|
||||
},
|
||||
"$$cap_appname-redis": {
|
||||
"notExposeAsWebApp": "true",
|
||||
"image": "redis:$$cap_redis_version",
|
||||
"volumes": ["$$cap_appname-redis-data:/data"],
|
||||
"restart": "always"
|
||||
},
|
||||
"$$cap_appname-mongo": {
|
||||
"notExposeAsWebApp": "true",
|
||||
"image": "mongo:$$cap_mongo_version",
|
||||
"volumes": ["$$cap_appname-mongo-data:/data/db"],
|
||||
"restart": "always"
|
||||
},
|
||||
"$$cap_appname": {
|
||||
"image": "mailtrain/mailtrain:$$cap_mailtrain_version",
|
||||
"containerHttpPort": "3000",
|
||||
"depends_on": [
|
||||
"$$cap_appname-db",
|
||||
"$$cap_appname-redis",
|
||||
"$$cap_appname-mongo"
|
||||
],
|
||||
"volumes": ["$$cap_appname-files:/app/server/files"],
|
||||
"environment": {
|
||||
"URL_BASE_TRUSTED": "https://$$cap_appname.$$cap_root_domain",
|
||||
"URL_BASE_SANDBOX": "https://$$cap_appname-$$cap_mailtrain_sandbox-appname.$$cap_root_domain",
|
||||
"URL_BASE_PUBLIC": "https://$$cap_appname-$$cap_mailtrain_lists-appname.$$cap_root_domain",
|
||||
"WWW_PROXY": true,
|
||||
"MONGO_HOST": "srv-captain--$$cap_appname-mongo",
|
||||
"REDIS_HOST": "srv-captain--$$cap_appname-redis",
|
||||
"MYSQL_HOST": "srv-captain--$$cap_appname-db",
|
||||
"MYSQL_PASSWORD": "$$cap_mariadb_password"
|
||||
}
|
||||
},
|
||||
"$$cap_appname-$$cap_mailtrain_sandbox-appname": {
|
||||
"image": "caprover/nginx-reverse-proxy:latest",
|
||||
"restart": "always",
|
||||
"depends_on": ["$$cap_appname"],
|
||||
"environment": {
|
||||
"UPSTREAM_HTTP_ADDRESS": "http://srv-captain--$$cap_appname:3003"
|
||||
}
|
||||
},
|
||||
"$$cap_appname-$$cap_mailtrain_lists-appname": {
|
||||
"image": "caprover/nginx-reverse-proxy:latest",
|
||||
"restart": "always",
|
||||
"depends_on": ["$$cap_appname"],
|
||||
"environment": {
|
||||
"UPSTREAM_HTTP_ADDRESS": "http://srv-captain--$$cap_appname:3004"
|
||||
}
|
||||
}
|
||||
},
|
||||
"volumes": {
|
||||
"$$cap_appname-db-data": {},
|
||||
"$$cap_appname-redis-data": {},
|
||||
"$$cap_appname-mongo-data": {},
|
||||
"$$cap_appname-files": {}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"start": "Mailtrain is a self hosted newsletter application built on Node.js (v10+) and MySQL (v8+) or MariaDB (v10+).",
|
||||
"end": "You can connect to http://$$cap_appname.$$cap_root_domain with the user admin and password test. Do not forget to update it with something more secure."
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
"id": "$$cap_mariadb_version",
|
||||
"label": "Mariadb Version",
|
||||
"defaultValue": "10.5.4",
|
||||
"description": "Check out their Docker page for the valid tags https://hub.docker.com/_/mariadb?tab=tags",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_mariadb_password",
|
||||
"label": "Mariadb User password",
|
||||
"description": "",
|
||||
"validRegex": "/.{1,}/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_redis_version",
|
||||
"label": "Redis Version",
|
||||
"defaultValue": "alpine3.12",
|
||||
"description": "Check out their Docker page for the valid tags https://hub.docker.com/_/redis?tab=tags",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_mongo_version",
|
||||
"label": "Mongo Version",
|
||||
"defaultValue": "4.4.0-rc11",
|
||||
"description": "Check out their Docker page for the valid tags https://hub.docker.com/_/mongo?tab=tags",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_mailtrain_version",
|
||||
"label": "Mailtrain Version",
|
||||
"defaultValue": "latest",
|
||||
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/mailtrain/mailtrain/tags",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_mailtrain_sandbox-appname",
|
||||
"label": "Sandbox Mailtrain App Name",
|
||||
"defaultValue": "sdbx",
|
||||
"description": "",
|
||||
"validRegex": "/^[a-z]{1,}$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_mailtrain_lists-appname",
|
||||
"label": "Public Mailtrain App Name",
|
||||
"defaultValue": "lists",
|
||||
"description": "",
|
||||
"validRegex": "/^[a-z]{1,}$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,55 +0,0 @@
|
|||
{
|
||||
"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",
|
||||
"isOfficial": true,
|
||||
"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,}/"
|
||||
},
|
||||
{
|
||||
"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"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,74 +0,0 @@
|
|||
{
|
||||
"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",
|
||||
"isOfficial": true,
|
||||
"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"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"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,}/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,73 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "https://github.com/mattermost/mattermost-docker",
|
||||
"displayName": "Mattermost",
|
||||
"description": "Mattermost Team Edition open source collaboration/chat software",
|
||||
"isOfficial": true,
|
||||
"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"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"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,}$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,71 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"displayName": "Mautic beta",
|
||||
"description": "Mautic is an open source marketing automation platform.",
|
||||
"isOfficial": true,
|
||||
"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"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"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^\\/])+$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,74 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"displayName": "Miniflux",
|
||||
"documentation": "https://miniflux.app/docs/index.html",
|
||||
"description": "Self hosted RSS server",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "3.8",
|
||||
"services": {
|
||||
"$$cap_appname-db": {
|
||||
"image": "postgres:$$cap_postgres_version",
|
||||
"notExposeAsWebApp": "true",
|
||||
"volumes": ["$$cap_appname-db-data:/var/lib/postgresql/data"],
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"POSTGRES_USER": "miniflux",
|
||||
"POSTGRES_PASSWORD": "$$cap_postgres_password",
|
||||
"POSTGRES_DB": "miniflux"
|
||||
}
|
||||
},
|
||||
"$$cap_appname": {
|
||||
"image": "miniflux/miniflux:$$cap_miniflux_version",
|
||||
"containerHttpPort": "8080",
|
||||
"depends_on": ["$$cap_appname-db"],
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"DATABASE_URL": "postgres://miniflux:$$cap_postgres_password@srv-captain--$$cap_appname-db/miniflux?sslmode=disable",
|
||||
"RUN_MIGRATIONS": "1",
|
||||
"CREATE_ADMIN": "1",
|
||||
"ADMIN_USERNAME": "$$cap_admin_user",
|
||||
"ADMIN_PASSWORD": "$$cap_admin_password"
|
||||
}
|
||||
}
|
||||
},
|
||||
"volumes": {
|
||||
"$$cap_appname-db-data": {}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"start": "Miniflux is a minimalist and opinionated feed reader.",
|
||||
"end": "Miniflux is deployed and the dashboard is available from http://$$cap_appname.$$cap_root_domain."
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
"id": "$$cap_miniflux_version",
|
||||
"label": "Miniflux version",
|
||||
"defaultValue": "2.0.22",
|
||||
"description": "Checkout valid tags at https://hub.docker.com/r/miniflux/miniflux/tags"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_admin_user",
|
||||
"label": "Admin user"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_admin_password",
|
||||
"label": "Admin Password",
|
||||
"defaultValue": "$$cap_gen_random_hex(10)"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_postgres_version",
|
||||
"label": "Postgres Version",
|
||||
"defaultValue": "9.6.18-alpine",
|
||||
"description": "Checkout their docker page for the valid tags https://hub.docker.com/r/library/postgres/tags/",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_postgres_password",
|
||||
"label": "Postgres Password",
|
||||
"defaultValue": "$$cap_gen_random_hex(10)",
|
||||
"description": "",
|
||||
"validRegex": "/.{1,}/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,55 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://hub.docker.com/r/minio/minio",
|
||||
"displayName": "",
|
||||
"description": "MinIO is a cloud storage server compatible with Amazon S3",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "3.3",
|
||||
"services": {
|
||||
"$$cap_appname": {
|
||||
"dockerfileLines": [
|
||||
"FROM minio/minio:$$cap_minio_version",
|
||||
"CMD [\"minio\", \"server\", \"/data\"]"
|
||||
],
|
||||
"containerHttpPort": "9000",
|
||||
"volumes": [
|
||||
"$$cap_appname-db-data:/data",
|
||||
"$$cap_appname-config-data:/root/.minio"
|
||||
],
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"MINIO_ACCESS_KEY": "$$cap_access_key",
|
||||
"MINIO_SECRET_KEY": "$$cap_secret_key"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"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": [
|
||||
{
|
||||
"id": "$$cap_minio_version",
|
||||
"label": "Minio Version",
|
||||
"defaultValue": "latest",
|
||||
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/minio/minio/tags/",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_access_key",
|
||||
"label": "Minio Access Key",
|
||||
"defaultValue": "",
|
||||
"description": "Username to access minio server",
|
||||
"validRegex": "/.{5,}/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_secret_key",
|
||||
"label": "Minio Secret Key",
|
||||
"defaultValue": "",
|
||||
"description": "Password to access minio server",
|
||||
"validRegex": "/.{8,}/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,78 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://hub.docker.com/_/mongo-express/ except it is manually adjusted for port 80",
|
||||
"displayName": "Mongo Express",
|
||||
"description": "Web-based MongoDB admin interface, written with Node.js and express",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "3.3",
|
||||
"services": {
|
||||
"$$cap_appname": {
|
||||
"image": "mongo-express:$$cap_mongoexpress_version",
|
||||
"containerHttpPort": "8081",
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"ME_CONFIG_MONGODB_SERVER": "$$cap_me_server_address",
|
||||
"ME_CONFIG_MONGODB_ADMINUSERNAME": "$$cap_me_server_admin_username",
|
||||
"ME_CONFIG_MONGODB_ADMINPASSWORD": "$$cap_me_server_admin_password",
|
||||
"ME_CONFIG_MONGODB_PORT": "$$cap_me_server_port",
|
||||
"ME_CONFIG_BASICAUTH_USERNAME": "$$cap_me_dashboard_username",
|
||||
"ME_CONFIG_BASICAUTH_PASSWORD": "$$cap_me_dashboard_password",
|
||||
"ME_CONFIG_SITE_COOKIESECRET": "$$cap_appname$$cap_mongoexpress_version",
|
||||
"ME_CONFIG_SITE_SESSIONSECRET": "$$cap_appname$$cap_mongoexpress_version"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"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": [
|
||||
{
|
||||
"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/",
|
||||
"defaultValue": "0.49",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_me_server_address",
|
||||
"label": "MongoDB Server Address",
|
||||
"description": "If MongoDB is created by CapRover, use srv-captain--REPLACE_THIS_WITH_CONTAINER_NAME",
|
||||
"validRegex": "/.{1,}/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_me_server_port",
|
||||
"label": "MongoDB Server Port (default is 27017)",
|
||||
"defaultValue": "27017",
|
||||
"validRegex": "/^([0-9])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_me_server_admin_username",
|
||||
"label": "MongoDB Admin Username",
|
||||
"defaultValue": "",
|
||||
"validRegex": "/.{1,}/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_me_server_admin_password",
|
||||
"label": "MongoDB Admin Password",
|
||||
"defaultValue": "",
|
||||
"validRegex": "/.{1,}/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_me_dashboard_username",
|
||||
"label": "Choose a Mongo-Express Dashboard Username",
|
||||
"defaultValue": "admin",
|
||||
"description": "Restrict access to your Mongo Express dashboard by choosing username/pass",
|
||||
"validRegex": "/^([a-zA-Z0-9])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_me_dashboard_password",
|
||||
"label": "Mongo-Express Dashboard Password",
|
||||
"defaultValue": "",
|
||||
"description": "Restrict access to your Mongo Express dashboard by choosing username/pass",
|
||||
"validRegex": "/^([a-zA-Z0-9])+$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,127 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "https://github.com/halvves/mongodb-backup-s3",
|
||||
"displayName": "MongoDB Backup Amazon S3",
|
||||
"description": "Runs mongodump to backup data using cronjob to an Amazon S3 bucket",
|
||||
"dockerCompose": {
|
||||
"services": {
|
||||
"$$cap_appname": {
|
||||
"environment": {
|
||||
"AWS_ACCESS_KEY_ID": "$$cap_aws_access_key_id",
|
||||
"AWS_SECRET_ACCESS_KEY": "$$cap_aws_secret_access_key",
|
||||
"BUCKET": "$$cap_bucket",
|
||||
"BACKUP_FOLDER": "$$cap_backup_folder",
|
||||
"MONGODB_HOST": "$$cap_mongodb_host",
|
||||
"MONGODB_PORT": "$$cap_mongodb_port",
|
||||
"MONGODB_USER": "$$cap_mongodb_user",
|
||||
"MONGODB_PASS": "$$cap_mongodb_pass",
|
||||
"MONGODB_DB": "$$cap_mongodb_db",
|
||||
"EXTRA_OPTS": "$$cap_extra_opts",
|
||||
"CRON_TIME": "$$cap_cron_time",
|
||||
"TZ": "$$cap_tz",
|
||||
"CRON_TZ": "$$cap_tz",
|
||||
"INIT_BACKUP": "$$cap_init_backup",
|
||||
"INIT_RESTORE": "$$cap_init_restore",
|
||||
"DISABLE_CRON": "$$cap_disable_cron"
|
||||
},
|
||||
"image": "halvves/mongodb-backup-s3@sha256:e709db5e0fe5d44873ac5a385af214e951f2a0366a7c02b515ebf7c983658b0c",
|
||||
"restart": "always"
|
||||
}
|
||||
},
|
||||
"version": "2"
|
||||
},
|
||||
"instructions": {
|
||||
"start": "Runs mongodump to backup data using cronjob to an s3 bucket",
|
||||
"end": "MongoDB Backup S3 is ready"
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
"description": "Your aws access key id (for your s3 bucket)",
|
||||
"id": "$$cap_aws_access_key_id",
|
||||
"label": "AWS ACCESS KEY ID",
|
||||
"validRegex": "/^.+$/"
|
||||
},
|
||||
{
|
||||
"description": "Your aws secret access key (for your s3 bucket)",
|
||||
"id": "$$cap_aws_secret_access_key",
|
||||
"label": "AWS SECRET ACCESS KEY",
|
||||
"validRegex": "/^.+$/"
|
||||
},
|
||||
{
|
||||
"description": "Your s3 bucket.",
|
||||
"id": "$$cap_bucket",
|
||||
"label": "BUCKET",
|
||||
"validRegex": "/^.+$/"
|
||||
},
|
||||
{
|
||||
"description": "Name of folder or path to put backups (eg myapp/db_backups/)",
|
||||
"id": "$$cap_backup_folder",
|
||||
"defaultValue": "mongo_dumps/",
|
||||
"label": "BACKUP_FOLDER"
|
||||
},
|
||||
{
|
||||
"description": "The host/ip of your mongodb database. For CapRover hosted database, use srv-captain--your-mongodb-name",
|
||||
"id": "$$cap_mongodb_host",
|
||||
"label": "MONGODB HOST",
|
||||
"validRegex": "/^.+$/"
|
||||
},
|
||||
{
|
||||
"description": "The port number of your mongodb database",
|
||||
"id": "$$cap_mongodb_port",
|
||||
"label": "MONGODB PORT",
|
||||
"defaultValue": "27017"
|
||||
},
|
||||
{
|
||||
"description": "The username of your mongodb database. If MONGODB_USER is empty while MONGODB_PASS is not, the image will use admin as the default username",
|
||||
"id": "$$cap_mongodb_user",
|
||||
"label": "MONGODB USER",
|
||||
"defaultValue": "admin"
|
||||
},
|
||||
{
|
||||
"description": "The password of your mongodb database",
|
||||
"id": "$$cap_mongodb_pass",
|
||||
"label": "MONGODB PASS",
|
||||
"validRegex": "/^.+$/"
|
||||
},
|
||||
{
|
||||
"description": "The database name to dump. If not specified, it will dump all the databases",
|
||||
"id": "$$cap_mongodb_db",
|
||||
"label": "MONGODB DB"
|
||||
},
|
||||
{
|
||||
"description": "Any extra options to pass to mongodump command. If you see *Unrecognized field 'snapshot'* problem add --forceTableScan here",
|
||||
"id": "$$cap_extra_opts",
|
||||
"label": "EXTRA_OPTS"
|
||||
},
|
||||
{
|
||||
"description": "The interval of cron job to run mongodump. 0 3 * * * by default, which is every day at 03:00hrs.",
|
||||
"id": "$$cap_cron_time",
|
||||
"label": "CRON TIME",
|
||||
"defaultValue": "0 3 * * *"
|
||||
},
|
||||
{
|
||||
"description": "timezone",
|
||||
"id": "$$cap_tz",
|
||||
"label": "TIMEZONE",
|
||||
"defaultValue": "US/Eastern"
|
||||
},
|
||||
{
|
||||
"description": "If set, create a backup when the container launched",
|
||||
"id": "$$cap_init_backup",
|
||||
"label": "INIT BACKUP",
|
||||
"defaultValue": "true"
|
||||
},
|
||||
{
|
||||
"description": "If set (any string, eg. true), restore from latest when container is launched.",
|
||||
"id": "$$cap_init_restore",
|
||||
"label": "INIT RESTORE",
|
||||
"defaultValue": ""
|
||||
},
|
||||
{
|
||||
"description": "if set (any string, eg.true), it will skip setting up automated backups. good for when you want to use this container to seed a dev environment.",
|
||||
"id": "$$cap_disable_cron",
|
||||
"label": "DISABLE CRON",
|
||||
"defaultValue": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,50 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://hub.docker.com/r/mongo/",
|
||||
"displayName": "MongoDB",
|
||||
"description": "MongoDB is a cross-platform document-oriented database program. Classified as a NoSQL database program",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "3.3",
|
||||
"services": {
|
||||
"$$cap_appname": {
|
||||
"image": "mongo:$$cap_mongo_version",
|
||||
"notExposeAsWebApp": "true",
|
||||
"volumes": [
|
||||
"$$cap_appname-db-data:/data/db",
|
||||
"$$cap_appname-db-config:/data/configdb"
|
||||
],
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"MONGO_INITDB_ROOT_USERNAME": "$$cap_mongo_username",
|
||||
"MONGO_INITDB_ROOT_PASSWORD": "$$cap_mongo_password"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"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": [
|
||||
{
|
||||
"id": "$$cap_mongo_version",
|
||||
"label": "MongoDB Version",
|
||||
"defaultValue": "4",
|
||||
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/library/mongo/tags/",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_mongo_username",
|
||||
"label": "MongoDB RootUsername",
|
||||
"defaultValue": "root",
|
||||
"description": "Only use alphanumeric chars.",
|
||||
"validRegex": "/^([a-zA-Z0-9])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_mongo_password",
|
||||
"label": "MongoDB password",
|
||||
"validRegex": "/^\\s*\\S.*$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,68 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://hub.docker.com/_/microsoft-mssql-server",
|
||||
"displayName": "Microsoft SQL",
|
||||
"description": "Microsoft SQL Server is a relational database management system developed by Microsoft",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "3.3",
|
||||
"services": {
|
||||
"$$cap_appname-db": {
|
||||
"image": "mcr.microsoft.com/mssql/server:$$cap_server_version",
|
||||
"notExposeAsWebApp": "true",
|
||||
"volumes": ["$$cap_appname-db-data:/var/opt/mssql"],
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"ACCEPT_EULA": "$$cap_accept_eula",
|
||||
"MSSQL_PID": "$$cap_pid",
|
||||
"MSSQL_SA_PASSWORD": "$$cap_sa_pass",
|
||||
"MSSQL_TCP_PORT": "$$cap_container_port"
|
||||
},
|
||||
"ports": ["$$cap_host_port:$$cap_container_port"]
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"start": "SQL Server is a central part of the Microsoft data platform. SQL Server is an industry leader in operational database management systems (ODBMS). \n\nSQL Server Developer edition lets developers build any kind of application on top of SQL Server. \n\n It includes all the functionality of Enterprise edition, but is licensed for use as a development and test system, not as a production server. \n\n SQL Server Developer Edition cannot be used in a production environment. \n\n The SQL Server 2017 Developer Edition license terms are located here: https://go.microsoft.com/fwlink/?linkid=857698 .\n\n After installation on CapRover, it will be available as srv-captain--YOUR_CONTAINER_NAME at the port specified for \"Container TCP Port\" field to other apps.\n\nEnter your SQL Server Configuration parameters and click on next. It will take about a minute for the process to finish.",
|
||||
"end": "SQL Server is deployed and available as srv-captain--$$cap_appname-db:$$cap_container_port to other apps."
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
"id": "$$cap_server_version",
|
||||
"label": "Version",
|
||||
"defaultValue": "2017-CU12-ubuntu",
|
||||
"description": "Checkout this page for the valid tags https://mcr.microsoft.com/v2/mssql/server/tags/list"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_host_port",
|
||||
"label": "Host Port",
|
||||
"defaultValue": "1433",
|
||||
"description": "Sets the TCP port that the host exposes. This is also used for creating the port mapping.",
|
||||
"validRegex": "/^([0-9])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_container_port",
|
||||
"label": "Container TCP Port",
|
||||
"defaultValue": "1433",
|
||||
"description": "Sets the TCP port that SQL Server container listens to. This is also used for creating the port mapping.",
|
||||
"validRegex": "/^([0-9])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_sa_pass",
|
||||
"label": "SA Password",
|
||||
"description": "The database system administrator (userid = 'sa') password used to connect to SQL Server once the container is running. Important note: This password needs to include at least 8 characters of at least three of these four categories: uppercase letters, lowercase letters, numbers and non-alphanumeric symbols."
|
||||
},
|
||||
{
|
||||
"id": "$$cap_pid",
|
||||
"label": "PID",
|
||||
"description": "Set the SQL Server edition or product key. This will run the container with the edition that is associated with the PID. This the Product ID (PID) or Edition that the container will run with. Acceptable values: Developer, Express, Standard, Enterprise, EnterpriseCore : More info here: https://hub.docker.com/_/microsoft-mssql-server",
|
||||
"defaultValue": "Developer"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_accept_eula",
|
||||
"label": "Accept EULA (Y/N)",
|
||||
"description": "Confirms your acceptance of the End-User Licensing Agreement https://go.microsoft.com/fwlink/?linkid=857698. \n By passing the value \"Y\", you are expressing that you have a valid and existing license for the edition and version of SQL Server that you intend to use. You also agree that your use of SQL Server software running in a Docker container image will be governed by the terms of your SQL Server license.",
|
||||
"validRegex": "/^Y{1}$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,40 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://docs.docker.com/compose/mysql/ port mapping removed from WP as it's not needed",
|
||||
"displayName": "MySQL",
|
||||
"description": "MySQL is a relational database management system based on SQL",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "3.3",
|
||||
"services": {
|
||||
"$$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"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"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": [
|
||||
{
|
||||
"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^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_db_pass",
|
||||
"label": "MySQL Root password",
|
||||
"description": "",
|
||||
"validRegex": "/.{1,}/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,100 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"displayName": "n8n.io",
|
||||
"description": "n8n is a free and open node based Workflow Automation Tool.",
|
||||
"isOfficial": true,
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"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,}/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,106 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://hub.docker.com/_/nextcloud",
|
||||
"displayName": "nextcloud",
|
||||
"description": "Nextcloud is a suite of client-server software for creating and using file hosting services",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "3.3",
|
||||
"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": "nextcloud",
|
||||
"MYSQL_USER": "$$cap_db_user",
|
||||
"MYSQL_PASSWORD": "$$cap_db_pass"
|
||||
}
|
||||
},
|
||||
"$$cap_appname": {
|
||||
"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"],
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"OVERWRITEPROTOCOL": "$$cap_http_https_cors",
|
||||
"MYSQL_DATABASE": "nextcloud",
|
||||
"MYSQL_USER": "$$cap_db_user",
|
||||
"MYSQL_PASSWORD": "$$cap_db_pass",
|
||||
"MYSQL_HOST": "srv-captain--$$cap_appname-db",
|
||||
"NEXTCLOUD_ADMIN_USER": "$$cap_admin_user",
|
||||
"NEXTCLOUD_ADMIN_PASSWORD": "$$cap_admin_pass",
|
||||
"NEXTCLOUD_TRUSTED_DOMAINS": "$$cap_appname.$$cap_root_domain"
|
||||
}
|
||||
},
|
||||
"$$cap_appname-cron": {
|
||||
"dockerfileLines": [
|
||||
"FROM nextcloud:$$cap_nextcloud_version",
|
||||
"ENTRYPOINT [ \"/cron.sh\" ] "
|
||||
],
|
||||
"depends_on": ["$$cap_appname-db", "$$cap_appname"],
|
||||
"notExposeAsWebApp": "true",
|
||||
"documentation": "https://github.com/nextcloud/docker/blob/master/.examples/docker-compose/insecure/mariadb-cron-redis/apache/docker-compose.yml",
|
||||
"restart": "always",
|
||||
"volumes": ["$$cap_appname-data:/var/www/html"]
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"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]?$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://hub.docker.com/r/sonatype/nexus3/",
|
||||
"displayName": "Nexus3",
|
||||
"description": "Nexus is a repository manager. It allows you to proxy, collect, and manage your dependencies",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "3.3",
|
||||
"services": {
|
||||
"$$cap_appname": {
|
||||
"image": "sonatype/nexus3:$$cap__version",
|
||||
"containerHttpPort": "8081",
|
||||
"volumes": ["$$cap_appname-data:/nexus-data"],
|
||||
"restart": "always",
|
||||
"environment": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"start": "Nexus is the world's first and only universal repository solution that's FREE to use. It supports Bower, Docker, Git LFS, Maven, npm, NuGet, PyPI, Ruby Gems, Yum, Apt, Conan, R, CPAN, Raw (Universal),P2 ,Helm and ELPA.\n\nEnter your Nexus Configuration parameters and click on next. \n\n Notes:\n\nDefault credentials are: admin / admin123\n\nIt can take some time (2-3 minutes) for the service to launch in a new container. Check the \"Deployment\" tab logs to determine once Nexus is ready.",
|
||||
"end": "Nexus is deployed and available as srv-captain--$$cap_appname:8081 to other apps."
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
"id": "$$cap__version",
|
||||
"label": "Version",
|
||||
"defaultValue": "3.15.2",
|
||||
"description": "Additional tags can be found here: https://hub.docker.com/r/sonatype/nexus3/tags"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://github.com/caprover/nginx-redirect",
|
||||
"displayName": "Nginx Redirect",
|
||||
"description": "A simple nginx image preloaded with redirect config that allows you to redirect to another URL. Useful for domain alias creation.",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "3.3",
|
||||
"services": {
|
||||
"$$cap_appname": {
|
||||
"image": "caprover/nginx-redirect:latest",
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"RETURN_LOCATION": "return 301 $$cap_redirect_url$request_uri;"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"start": "This is a very simply redirect nginx image. It redirects all HTTP requests to the HTTP address that you define. It's useful when you want to redirect all traffic from www.example.com to example.com, see more details here: https://github.com/caprover/nginx-redirect",
|
||||
"end": "Reverse redirect is deployed and available as $$cap_appname"
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
"id": "$$cap_redirect_url",
|
||||
"label": "Redirect address",
|
||||
"description": "For example use https://caprover.com to redirect all request to CapRover.",
|
||||
"defaultValue": "https://caprover.com",
|
||||
"validRegex": "/^(http:\\/\\/|https:\\/\\/)\\S*$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,40 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://github.com/caprover/nginx-reverse-proxy",
|
||||
"displayName": "Nginx Reverse Proxy",
|
||||
"description": "A simple nginx image preloaded with reverse proxy config that allows you to proxy a URL to another URL",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "3.3",
|
||||
"services": {
|
||||
"$$cap_appname": {
|
||||
"image": "caprover/nginx-reverse-proxy:latest",
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"UPSTREAM_HTTP_ADDRESS": "$$cap_upstream_http_address",
|
||||
"CLIENT_MAX_BODY_SIZE": "$$cap_max_body_size"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"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$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,80 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Built from scratch (https://github.com/nightscout/cgm-remote-monitor)",
|
||||
"displayName": "",
|
||||
"description": "Nightscout is a free and open-source project, and associated social movement, that enables accessing and working with continuous glucose monitor data",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "3.3",
|
||||
"services": {
|
||||
"$$cap_appname-mongodb": {
|
||||
"image": "mongo:$$cap_mongo_version",
|
||||
"notExposeAsWebApp": "true",
|
||||
"volumes": [
|
||||
"$$cap_appname-db-data:/data/db",
|
||||
"$$cap_appname-db-config:/data/configdb"
|
||||
],
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"MONGO_INITDB_ROOT_USERNAME": "root",
|
||||
"MONGO_INITDB_ROOT_PASSWORD": "$$cap_mongo_password"
|
||||
}
|
||||
},
|
||||
"$$cap_appname-nightscout": {
|
||||
"depends_on": ["$$cap_appname-mongodb"],
|
||||
"dockerfileLines": [
|
||||
"FROM node:10",
|
||||
"RUN mkdir -p /opt/app",
|
||||
"WORKDIR /opt/app",
|
||||
"RUN git clone git://github.com/nightscout/cgm-remote-monitor.git /opt/app",
|
||||
"RUN cd /opt/app && git checkout $$cap_nighscout_version && rm -rf .git",
|
||||
"RUN cd /opt/app && npm install && npm run postinstall && npm run env",
|
||||
"EXPOSE 1337",
|
||||
"CMD [\"node\", \"server.js\"]"
|
||||
],
|
||||
"containerHttpPort": "1337",
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"PORT": "1337",
|
||||
"INSECURE_USE_HTTP": "true",
|
||||
"MONGO_CONNECTION": "mongodb://root:$$cap_mongo_password@srv-captain--$$cap_appname-mongodb:27017/nightscout?authSource=admin",
|
||||
"API_SECRET": "$$cap_api_secret",
|
||||
"BASE_URL": "https://replace.me.in.settings.of.website.com",
|
||||
"DISPLAY_UNITS": "mg/dl"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"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": [
|
||||
{
|
||||
"id": "$$cap_mongo_version",
|
||||
"label": "MongoDB Version",
|
||||
"defaultValue": "4",
|
||||
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/library/mongo/tags/",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_mongo_password",
|
||||
"label": "MongoDB password",
|
||||
"description": "Only use alphanumeric chars.",
|
||||
"validRegex": "/^([a-zA-Z0-9])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_nighscout_version",
|
||||
"label": "Nighscout Version",
|
||||
"defaultValue": "0.11.1",
|
||||
"description": "Check out their page for the valid tags https://github.com/nightscout/cgm-remote-monitor/releases",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_api_secret",
|
||||
"label": "API key",
|
||||
"description": "Use a random string (alphanumberic) - minimum 12 characters. See documentation for more details.",
|
||||
"validRegex": "/^([a-zA-Z0-9]){12,}$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,77 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "https://hub.docker.com/_/odoo?tab=description",
|
||||
"description": "Odoo, formerly known as OpenERP, is a suite of open-source business apps written in Python and released under the AGPL license.",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "3.8",
|
||||
"services": {
|
||||
"$$cap_appname-db": {
|
||||
"image": "postgres:$$cap_postgres_version",
|
||||
"notExposeAsWebApp": "true",
|
||||
"volumes": ["$$cap_appname-db-data:/var/lib/postgresql/data"],
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"POSTGRES_USER": "odoo",
|
||||
"POSTGRES_PASSWORD": "$$cap_postgres_password",
|
||||
"POSTGRES_DB": "postgres"
|
||||
}
|
||||
},
|
||||
"$$cap_appname": {
|
||||
"image": "odoo:$$cap_odoo_version",
|
||||
"containerHttpPort": "8069",
|
||||
"depends_on": ["$$cap_appname-db"],
|
||||
"volumes": [
|
||||
"$$cap_appname-odoo-web-data:/var/lib/odoo",
|
||||
"$$cap_appname-config:/etc/odoo",
|
||||
"$$cap_appname-addons:/mnt/extra-addons"
|
||||
],
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"POSTGRES_PASSWORD": "$$cap_postgres_password",
|
||||
"HOST": "srv-captain--$$cap_appname-db"
|
||||
}
|
||||
}
|
||||
},
|
||||
"volumes": {
|
||||
"$$cap_appname-odoo-web-data": {},
|
||||
"$$cap_appname-config": {},
|
||||
"$$cap_appname-addons": {},
|
||||
"$$cap_appname-db-data": {}
|
||||
}
|
||||
},
|
||||
"networks": {
|
||||
"db": {
|
||||
"driver": "bridge"
|
||||
},
|
||||
"search": {
|
||||
"driver": "bridge"
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"start": "Odoo is an open source product CRM",
|
||||
"end": "Odoo is deployed and the dashboard is available from http://$$cap_appname.$$cap_root_domain."
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
"id": "$$cap_postgres_version",
|
||||
"label": "Postgres Version",
|
||||
"defaultValue": "9.6.18-alpine",
|
||||
"description": "Checkout their docker page for the valid tags https://hub.docker.com/r/library/postgres/tags/",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_postgres_password",
|
||||
"label": "Postgres Password",
|
||||
"description": "",
|
||||
"validRegex": "/.{1,}/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_odoo_version",
|
||||
"label": "Odoo Version",
|
||||
"defaultValue": "13.0",
|
||||
"description": "Checkout their docker page for the valid tags https://hub.docker.com/_/odoo?tab=tags",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,131 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://github.com/outline/outline/blob/master/docker-compose.yml",
|
||||
"displayName": "Outline",
|
||||
"description": "An open, extensible, wiki for your team built using React and Node.js.",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"services": {
|
||||
"$$cap_appname-redis": {
|
||||
"image": "redis:5",
|
||||
"notExposeAsWebApp": "true"
|
||||
},
|
||||
"$$cap_appname-fakes3": {
|
||||
"image": "lphoward/fake-s3",
|
||||
"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"],
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"POSTGRES_USER": "$$cap_db_user",
|
||||
"POSTGRES_PASSWORD": "$$cap_db_pass",
|
||||
"POSTGRES_DB": "outline"
|
||||
}
|
||||
},
|
||||
"$$cap_appname-outline": {
|
||||
"depends_on": [
|
||||
"$$cap_appname-fakes3",
|
||||
"$$cap_appname-redis",
|
||||
"$$cap_appname-db"
|
||||
],
|
||||
"image": "outlinewiki/outline:$$cap_outline_version",
|
||||
"environment": {
|
||||
"SECRET_KEY": "$$cap_secret_key",
|
||||
"UTILS_SECRET": "$$cap_utils_secret",
|
||||
|
||||
"AWS_ACCESS_KEY_ID": "get_a_key_from_aws",
|
||||
"AWS_SECRET_ACCESS_KEY": "get_the_secret_of_above_key",
|
||||
"AWS_REGION": "xx-xxxx-x",
|
||||
"AWS_S3_UPLOAD_BUCKET_URL": "http://srv-captain--$$cap_appname-fakes3:4569",
|
||||
"AWS_S3_UPLOAD_BUCKET_NAME": "bucket_name_here",
|
||||
"AWS_S3_UPLOAD_MAX_SIZE": "26214400",
|
||||
"AWS_S3_ACL": "private",
|
||||
|
||||
"SLACK_KEY": "$$cap_slack_key",
|
||||
"SLACK_SECRET": "$$cap_slack_secret",
|
||||
"GOOGLE_CLIENT_ID": "$$cap_google_client_id",
|
||||
"GOOGLE_CLIENT_SECRET": "$$cap_google_client_secret",
|
||||
|
||||
"FORCE_HTTPS": "false",
|
||||
|
||||
"DEPLOYMENT": "self",
|
||||
"ENABLE_UPDATES": "false",
|
||||
"SUBDOMAINS_ENABLED": "false",
|
||||
"WEBSOCKETS_ENABLED": "false",
|
||||
"DEBUG": "cache,presenters,events",
|
||||
|
||||
"URL": "https://$$cap_appname-outline.$$cap_root_domain",
|
||||
"PORT": "80",
|
||||
|
||||
"REDIS_URL": "redis://srv-captain--$$cap_appname-redis:6379",
|
||||
"DATABASE_URL_TEST": "postgres://$$cap_db_user:$$cap_db_pass@srv-captain--$$cap_appname-db:5432/outline-test",
|
||||
"DATABASE_URL": "postgres://$$cap_db_user:$$cap_db_pass@srv-captain--$$cap_appname-db:5432/outline"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"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": [
|
||||
{
|
||||
"id": "$$cap_db_user",
|
||||
"label": "Database user",
|
||||
"defaultValue": "outlineuser",
|
||||
"validRegex": "/^([a-zA-Z0-9])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_db_pass",
|
||||
"label": "Database password",
|
||||
"description": "",
|
||||
"validRegex": "/.{8,}/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_slack_key",
|
||||
"label": "Slack Key",
|
||||
"description": "IMPORTANT: You need to, at least, set one 3rd party login method, either Slack or Google",
|
||||
"defaultValue": "get_a_key_from_slack"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_slack_secret",
|
||||
"label": "Slack Secret",
|
||||
"description": "",
|
||||
"defaultValue": "get_the_secret_of_above_key"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_google_client_id",
|
||||
"label": "Google Client ID"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_google_client_secret",
|
||||
"label": "Google Client Secret",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"id": "$$cap_secret_key",
|
||||
"label": "SECRET_KEY",
|
||||
"description": "Run this command to generate a key: openssl rand -hex 32",
|
||||
"defaultValue": "c63eaeed7ee7459098e2901ed87c8b70817428b85fbe3ef59cb6a79abb2bbf4a",
|
||||
"validRegex": "/^([0-9a-f]){64}$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_utils_secret",
|
||||
"label": "UTILS_SECRET",
|
||||
"description": "Run this command to generate a key: openssl rand -hex 32",
|
||||
"defaultValue": "c9b4d178130f53efc7419eaec9a2e764481269c9602c2ef2e541bdadc63b5bbf",
|
||||
"validRegex": "/^([0-9a-f]){64}$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_outline_version",
|
||||
"label": "Outline Version",
|
||||
"defaultValue": "version-0.41.0",
|
||||
"description": "Check out their page for the valid tags https://hub.docker.com/r/outlinewiki/outline/tags",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,107 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://hub.docker.com/r/parseplatform/parse-server/",
|
||||
"displayName": "",
|
||||
"description": "Parse Server is an open source Backend-as-a-Service(BaaS) framework initially developed by Facebook",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "3.3",
|
||||
"services": {
|
||||
"$$cap_appname-mongodb": {
|
||||
"image": "mongo:$$cap_mongo_version",
|
||||
"notExposeAsWebApp": "true",
|
||||
"volumes": [
|
||||
"$$cap_appname-db-data:/data/db",
|
||||
"$$cap_appname-db-config:/data/configdb"
|
||||
],
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"MONGO_INITDB_ROOT_USERNAME": "root",
|
||||
"MONGO_INITDB_ROOT_PASSWORD": "$$cap_mongo_password"
|
||||
}
|
||||
},
|
||||
"$$cap_appname-parse": {
|
||||
"depends_on": ["$$cap_appname-mongodb"],
|
||||
"image": "parseplatform/parse-server:$$cap_parse_version",
|
||||
"containerHttpPort": "8080",
|
||||
"restart": "always",
|
||||
"volumes": [
|
||||
"$$cap_appname-parse-cloud:/parse-server/cloud",
|
||||
"$$cap_appname-parse-config:/parse-server/config"
|
||||
],
|
||||
"environment": {
|
||||
"PORT": "8080",
|
||||
"PARSE_SERVER_APPLICATION_ID": "$$cap_app_id",
|
||||
"PARSE_SERVER_MASTER_KEY": "$$cap_master_key",
|
||||
"PARSE_SERVER_DATABASE_URI": "mongodb://root:$$cap_mongo_password@srv-captain--$$cap_appname-mongodb:27017/parse?authSource=admin"
|
||||
}
|
||||
},
|
||||
"$$cap_appname-parse-dashboard": {
|
||||
"depends_on": ["$$cap_appname-parse"],
|
||||
"image": "parseplatform/parse-dashboard:$$cap_parse_dashboard_version",
|
||||
"containerHttpPort": "4040",
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"PORT": "4040",
|
||||
"PARSE_DASHBOARD_SERVER_URL": "https://$$cap_appname-parse.$$cap_root_domain/parse",
|
||||
"PARSE_DASHBOARD_MASTER_KEY": "$$cap_master_key",
|
||||
"PARSE_DASHBOARD_APP_ID": "$$cap_app_id",
|
||||
"PARSE_DASHBOARD_APP_NAME": "$$cap_appname-parse",
|
||||
"PARSE_DASHBOARD_USER_ID": "caprover",
|
||||
"PARSE_DASHBOARD_ALLOW_INSECURE_HTTP": "true",
|
||||
"PARSE_DASHBOARD_USER_PASSWORD": "$$cap_parse_dashboard_password"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"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": [
|
||||
{
|
||||
"id": "$$cap_mongo_version",
|
||||
"label": "MongoDB Version",
|
||||
"defaultValue": "4",
|
||||
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/library/mongo/tags/",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_mongo_password",
|
||||
"label": "MongoDB password",
|
||||
"description": "Only use alphanumeric chars.",
|
||||
"validRegex": "/^([a-zA-Z0-9])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_parse_dashboard_version",
|
||||
"label": "Parse Dashboard Version",
|
||||
"defaultValue": "2.0.5",
|
||||
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/parseplatform/parse-dashboard/tags",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_parse_dashboard_password",
|
||||
"label": "Parse Dashboard Password",
|
||||
"validRegex": "/^\\S{8,}$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_parse_version",
|
||||
"label": "Parse Version",
|
||||
"defaultValue": "3.1.3",
|
||||
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/parseplatform/parse-server/tags",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_app_id",
|
||||
"label": "Application ID",
|
||||
"description": "Use a random string. See Parse documentation for more details.",
|
||||
"validRegex": "/^([a-zA-Z0-9])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_master_key",
|
||||
"label": "Master Key",
|
||||
"description": "Use a random string. See Parse documentation for more details.",
|
||||
"validRegex": "/^([a-zA-Z0-9])+$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,108 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://hub.docker.com/r/passbolt/passbolt.",
|
||||
"displayName": "Passbolt",
|
||||
"description": "Passbolt is a free and open source password manager that allows team members to store and share credentials securely.",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "3.4",
|
||||
"services": {
|
||||
"$$cap_appname-db": {
|
||||
"image": "mariadb:10.3",
|
||||
"environment": {
|
||||
"MYSQL_ROOT_PASSWORD": "$$cap_db_root_pass",
|
||||
"MYSQL_DATABASE": "passbolt_oca",
|
||||
"MYSQL_USER": "$$cap_db_user",
|
||||
"MYSQL_PASSWORD": "$$cap_db_pass"
|
||||
},
|
||||
"volumes": ["$$cap_appname-db:/var/lib/mysql"]
|
||||
},
|
||||
"$$cap_appname-pb": {
|
||||
"image": "passbolt/passbolt:2.12.1-debian",
|
||||
"depends_on": ["$$cap_appname-db"],
|
||||
"environment": {
|
||||
"DATASOURCES_DEFAULT_HOST": "srv-captain--$$cap_appname-db:3306",
|
||||
"DATASOURCES_DEFAULT_DATABASE": "passbolt_oca",
|
||||
"DATASOURCES_DEFAULT_USERNAME": "$$cap_db_user",
|
||||
"DATASOURCES_DEFAULT_PASSWORD": "$$cap_db_pass",
|
||||
"APP_FULL_BASE_URL": "$$cap_url",
|
||||
"EMAIL_TRANSPORT_DEFAULT_HOST": "$$cap_email_host",
|
||||
"EMAIL_TRANSPORT_DEFAULT_PORT": "$$cap_email_port",
|
||||
"EMAIL_TRANSPORT_DEFAULT_USERNAME": "$$cap_email_user",
|
||||
"EMAIL_TRANSPORT_DEFAULT_FROM": "$$cap_email_user",
|
||||
"EMAIL_TRANSPORT_DEFAULT_PASSWORD": "$$cap_email_pass",
|
||||
"EMAIL_TRANSPORT_DEFAULT_TLS": "$$cap_email_tls"
|
||||
},
|
||||
"volumes": [
|
||||
"$$cap_appname-gpg:/var/www/passbolt/config/gpg",
|
||||
"$$cap_appname-images:/var/www/passbolt/webroot/img/public"
|
||||
]
|
||||
}
|
||||
},
|
||||
"volumes": {
|
||||
"$$cap_appname-db": {},
|
||||
"$$cap_appname-gpg": {},
|
||||
"$$cap_appname-images": {}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"start": "Passbolt is a free and open source password manager that allows team members to store and share credentials securely.\n\n Enter your Passbolt configuration parameters and click on next. A MariaDB (database) and a Passbolt container will be created for you. The process will take about a minute for the process to finish.",
|
||||
"end": "Passbolt is deployed and available as $$cap_appname-pb . \n\n IMPORTANT: It will take up to 2 minutes for Passbolt to be ready. Before that, you might see a 502 error page.\n\nNote: Once the container is running create your first admin user running the following command in the terminal:\n\n$ docker exec <containerID> su -m -c '/var/www/passbolt/bin/cake passbolt register_user -u your@email.com -f yourname -l surname -r admin' -s /bin/sh www-data\n\nThis registration command will return a single use url required to continue the web browser setup and finish the registration. Your passbolt instance should be available browsing https://yourdomain.com"
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
"id": "$$cap_db_root_pass",
|
||||
"label": "Database Root Password",
|
||||
"defaultValue": "rootpassword"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_db_user",
|
||||
"label": "Database Username",
|
||||
"defaultValue": "passbolt"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_db_pass",
|
||||
"label": "Database Password",
|
||||
"defaultValue": "password"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_pb_version",
|
||||
"label": "Passbolt Version",
|
||||
"defaultValue": "2.12.1-debian",
|
||||
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/passbolt/passbolt/tags/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_url",
|
||||
"label": "Passbolt URL",
|
||||
"description": "This is VERY IMPORTANT, if you won't use a custom domain (ex: km.yourdomain.com), after deployed you will need to go into the App Configs and update the ENV APP_FULL_BASE_URL with the external URL that CapRover assigned to your App, otherwhise it won't work",
|
||||
"defaultValue": "https://yourdomain.com"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_email_host",
|
||||
"label": "Email SMTP Server",
|
||||
"description": "Host used as smtp server. More info: https://help.passbolt.com/configure/email/setup.",
|
||||
"defaultValue": "smtp.gmail.com"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_email_port",
|
||||
"label": "Email SMTP Port",
|
||||
"description": "Port used with the smtp server. More info: https://help.passbolt.com/configure/email/setup",
|
||||
"defaultValue": "587"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_email_user",
|
||||
"label": "Email Username",
|
||||
"defaultValue": "user@gmail.com"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_email_pass",
|
||||
"label": "Email Password",
|
||||
"defaultValue": "password"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_email_tls",
|
||||
"label": "TLS Enabled",
|
||||
"defaultValue": "true"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,139 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://github.com/Chocobozzz/PeerTube/blob/develop/support/docker/production/docker-compose.yml",
|
||||
"displayName": "",
|
||||
"description": "PeerTube is a decentralized video hosting network, based on free/libre software",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "1",
|
||||
"services": {
|
||||
"$$cap_appname-db": {
|
||||
"image": "postgres:$$cap_postgres_version",
|
||||
"notExposeAsWebApp": "true",
|
||||
"volumes": ["$$cap_appname-db-data:/var/lib/postgresql/data"],
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"POSTGRES_USER": "$$cap_db_user",
|
||||
"POSTGRES_PASSWORD": "$$cap_db_pass",
|
||||
"POSTGRES_DB": "peertube"
|
||||
}
|
||||
},
|
||||
"$$cap_appname-redis": {
|
||||
"image": "redis:$$cap_redis_version",
|
||||
"notExposeAsWebApp": "true",
|
||||
"volumes": ["$$cap_appname-redis-data:/data"],
|
||||
"restart": "always"
|
||||
},
|
||||
"$$cap_appname": {
|
||||
"depends_on": ["$$cap_appname-db", "$$cap_appname-redis"],
|
||||
"image": "chocobozzz/peertube:$$cap_peertube_version",
|
||||
"containerHttpPort": "9000",
|
||||
"volumes": [
|
||||
"$$cap_appname-peertube-data:/data",
|
||||
"$$cap_appname-peertube-config:/config"
|
||||
],
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"volumes": {
|
||||
"db_data": {}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"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": [
|
||||
{
|
||||
"id": "$$cap_db_user",
|
||||
"label": "Database user",
|
||||
"defaultValue": "peertubeuser",
|
||||
"validRegex": "/^([a-zA-Z0-9])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_db_pass",
|
||||
"label": "Database password",
|
||||
"description": "",
|
||||
"validRegex": "/.{1,}/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_postgres_version",
|
||||
"label": "Postgress Version",
|
||||
"defaultValue": "10-alpine",
|
||||
"description": "Checkout their docker page for the valid tags https://hub.docker.com/r/library/postgress/tags/",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_redis_version",
|
||||
"label": "Redis Version",
|
||||
"defaultValue": "4-alpine",
|
||||
"description": "Checkout their docker page for the valid tags https://hub.docker.com/r/library/redis/tags/",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_peertube_version",
|
||||
"label": "Peertube Version",
|
||||
"defaultValue": "production-stretch",
|
||||
"description": "Checkout their docker page for the valid tags https://hub.docker.com/r/chocobozzz/peertube/tags/",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_smtp_username",
|
||||
"label": "SMTP username",
|
||||
"defaultValue": ""
|
||||
},
|
||||
{
|
||||
"id": "$$cap_smtp_from",
|
||||
"label": "SMTP from",
|
||||
"defaultValue": ""
|
||||
},
|
||||
{
|
||||
"id": "$$cap_smtp_password",
|
||||
"label": "SMTP password",
|
||||
"defaultValue": ""
|
||||
},
|
||||
{
|
||||
"id": "$$cap_smtp_hostname",
|
||||
"label": "SMTP hostname",
|
||||
"defaultValue": ""
|
||||
},
|
||||
{
|
||||
"id": "$$cap_smtp_port",
|
||||
"label": "SMTP port",
|
||||
"defaultValue": ""
|
||||
},
|
||||
{
|
||||
"id": "$$cap_smtp_tls",
|
||||
"label": "SMTP TLS",
|
||||
"defaultValue": "false"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_smtp_starttls",
|
||||
"label": "SMTP STARTTLS",
|
||||
"defaultValue": "false"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_admin_email",
|
||||
"label": "administrator email",
|
||||
"defaultValue": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://hub.docker.com/r/thajeztah/pgadmin4 ",
|
||||
"displayName": "",
|
||||
"description": "pgAdmin 4 is a complete rewrite of pgAdmin, built using Python and Javascript/jQuery",
|
||||
"dockerCompose": {
|
||||
"version": "3.3",
|
||||
"services": {
|
||||
"$$cap_appname": {
|
||||
"image": "thajeztah/pgadmin4:$$cap_pgadmin4_version",
|
||||
"containerHttpPort": "5050",
|
||||
"restart": "always",
|
||||
"volumes": ["$$cap_appname-data:/pgadmin"]
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"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": [
|
||||
{
|
||||
"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/",
|
||||
"defaultValue": "3.6",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "See https://hub.docker.com/r/sosedoff/pgweb for details",
|
||||
"displayName": "",
|
||||
"description": "Pgweb is a web-based database browser for PostgreSQL, written in Go",
|
||||
"dockerCompose": {
|
||||
"version": "3.3",
|
||||
"services": {
|
||||
"$$cap_appname": {
|
||||
"image": "sosedoff/pgweb:$$cap_pgweb_version",
|
||||
"containerHttpPort": "8081",
|
||||
"restart": "always"
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"start": "pgweb is a web-based database browser for PostgreSQL, written in Go.",
|
||||
"end": "pgweb is deployed."
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
"id": "$$cap_pgweb_version",
|
||||
"label": "pgweb Version",
|
||||
"defaultValue": "0.11.2",
|
||||
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/sosedoff/pgweb/tags",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://hub.docker.com/r/photoprism/photoprism",
|
||||
"displayName": "Photoprism",
|
||||
"description": "An app for browsing, organizing and sharing your personal photo collection.",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "3.3",
|
||||
"services": {
|
||||
"$$cap_appname": {
|
||||
"image": "photoprism/photoprism:$$cap_photoprism_version",
|
||||
"containerHttpPort": "2342",
|
||||
"volumes": ["$$cap_appname-data:/photoprism/originals/"],
|
||||
"restart": "always"
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"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": [
|
||||
{
|
||||
"id": "$$cap_photoprism_version",
|
||||
"label": "Photoprism Version",
|
||||
"defaultValue": "20200427",
|
||||
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/photoprism/photoprism/tags",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,76 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "https://github.com/osixia/docker-openldap",
|
||||
"description": "OpenLDAP with administration interface",
|
||||
"displayName": "OpenLDAP + phpLDAPadmin",
|
||||
"dockerCompose": {
|
||||
"version": "3.8",
|
||||
"services": {
|
||||
"$$cap_appname": {
|
||||
"image": "osixia/openldap:$$cap_openldap_version",
|
||||
"restart": "always",
|
||||
"volumes": ["$$cap_appname-db:/var/lib/ldap"],
|
||||
"notExposeAsWebApp": "true",
|
||||
"environment": {
|
||||
"LDAP_ORGANISATION": "$$cap_openldap_ldap-organisation",
|
||||
"LDAP_DOMAIN": "$$cap_root_domain",
|
||||
"LDAP_ADMIN_PASSWORD": "$$cap_openldap_ldap-admin-password"
|
||||
}
|
||||
},
|
||||
"$$cap_appname-admin": {
|
||||
"image": "osixia/phpldapadmin:$$cap_phpldapadmin_version",
|
||||
"containerHttpPort": "80",
|
||||
"restart": "always",
|
||||
"depends_on": ["$$cap_appname"],
|
||||
"environment": {
|
||||
"PHPLDAPADMIN_TRUST_PROXY_SSL": true,
|
||||
"PHPLDAPADMIN_LDAP_HOSTS": "srv-captain--$$cap_appname",
|
||||
"PHPLDAPADMIN_SERVER_ADMIN": "$$cap_phpldapadmin_admin-email",
|
||||
"PHPLDAPADMIN_SERVER_PATH": "https://$$cap_appname-admin.$$cap_root_domain",
|
||||
"PHPLDAPADMIN_HTTPS": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"volumes": {
|
||||
"$$cap_appname-db": {}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"start": "OpenLDAP Software is an open source implementation of the Lightweight Directory Access Protocol.",
|
||||
"end": "OpenLDAP is deployed and the admin interface is available on http://$$cap_appname-admin.$$cap_root_domain. You can connect by adapting cn=admin,dc=my-company,dc=com. If you want to access to your ldap server from outside, do not forget to add port mapping (389 for ldap with starttls, 636 for ldaps)."
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
"id": "$$cap_openldap_version",
|
||||
"label": "Openldap Version",
|
||||
"defaultValue": "1.4.0",
|
||||
"description": "Checkout their docker page for the valid tags https://hub.docker.com/r/osixia/openldap/tags",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_openldap_ldap-organisation",
|
||||
"label": "Ldap Organisation",
|
||||
"description": "The Organization name",
|
||||
"validRegex": "/.{1,}/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_openldap_ldap-admin-password",
|
||||
"label": "The admin Password",
|
||||
"description": "The admin password of the Openldap",
|
||||
"validRegex": "/.{1,}/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_phpldapadmin_version",
|
||||
"label": "PHPLadapAdmin Version",
|
||||
"defaultValue": "0.9.0",
|
||||
"description": "Checkout their docker page for the valid tags https://hub.docker.com/r/osixia/phpldapadmin/tags",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_phpldapadmin_admin-email",
|
||||
"label": "The admin email",
|
||||
"description": "The admin email of the Openldap administration interface",
|
||||
"validRegex": "/^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,40 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://hub.docker.com/r/phpmyadmin/phpmyadmin/",
|
||||
"displayName": "phpMyAdmin",
|
||||
"description": "phpMyAdmin is a free software tool written in PHP, intended to handle the administration of MySQL over the Web",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "3.3",
|
||||
"services": {
|
||||
"$$cap_appname": {
|
||||
"image": "phpmyadmin/phpmyadmin:$$cap_pma_version",
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"PMA_ARBITRARY": "1",
|
||||
"UPLOAD_LIMIT": "$$cap_upload_limit"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"start": "PhpMyAdmin is the most popular web interface for MySQL & MariaDB. Simply install PhpMyAdmin and then select what database you want to connect to.\n\n Enter your PhpMyAdmin Configuration parameters and click on next. It will take about a minute for the process to finish.",
|
||||
"end": "PhpMyAdmin is deployed and available as $$cap_appname. \n\nNote: Once deployed you can easily change the upload limit file size by modifying the value in the variable in the menu: App Configs>UPLOAD_LIMIT.\n\nIf you need to upload files bigger than 500M you will also need to modify the option: 'client_max_body_size 500m' by clicking in the menu: HTTP Settings>Edit Default Nginx Configurations."
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
"id": "$$cap_upload_limit",
|
||||
"label": "File size upload limit",
|
||||
"description": "It will override the default value for apache and php-fpm inside the container. Default size is 2M",
|
||||
"defaultValue": "2M",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_pma_version",
|
||||
"label": "PHP My Admin Version Tag",
|
||||
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/phpmyadmin/phpmyadmin/tags/",
|
||||
"defaultValue": "5.0.2",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,64 +0,0 @@
|
|||
{
|
||||
"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.",
|
||||
"isOfficial": true,
|
||||
"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^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"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,}/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://hub.docker.com/r/portainer/portainer/",
|
||||
"displayName": "",
|
||||
"description": "Portainer is a lightweight management UI which allows you to easily manage your different Docker environments",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "3.3",
|
||||
"services": {
|
||||
"$$cap_appname": {
|
||||
"containerHttpPort": "9000",
|
||||
"image": "portainer/portainer:$$cap_portainer_version",
|
||||
"volumes": [
|
||||
"/var/run/docker.sock:/var/run/docker.sock",
|
||||
"$$cap_appname-data:/data"
|
||||
],
|
||||
"restart": "always"
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"start": "Portainer is a lightweight management UI which allows you to easily manage your Docker host or Swarm cluster. \n\n More information about this container can be found here:\n https://hub.docker.com/r/portainer/portainer/ .\n\n After installation on CapRover, it will be available as srv-captain--YOUR_CONTAINER_NAME at port 9000 to other CapRover apps .\n\nEnter your portainer Configuration parameters and click on next. It will take about a minute for the process to finish.",
|
||||
"end": "Portainer is deployed and available as srv-captain--$$cap_appname:9000 to other apps."
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
"id": "$$cap_portainer_version",
|
||||
"label": "Portainer Version",
|
||||
"defaultValue": "1.20.2",
|
||||
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/portainer/portainer/tags",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,58 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Read the poste.io documentation @ https://poste.io/doc",
|
||||
"displayName": "Poste.io",
|
||||
"description": "Poste.io - complete mailserver built in one container",
|
||||
"isOfficial": true,
|
||||
"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."
|
||||
},
|
||||
{
|
||||
"id": "$$cap_host",
|
||||
"label": "Hostname",
|
||||
"description": "The full hostname for this captain app. (usually mail.mydomain.com)"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,61 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://hub.docker.com/_/postgres",
|
||||
"displayName": "PostgreSQL",
|
||||
"description": "The PostgreSQL object-relational database system provides reliability and data integrity",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "3.3",
|
||||
"services": {
|
||||
"$$cap_appname-db": {
|
||||
"image": "postgres:$$cap_postgres_version",
|
||||
"notExposeAsWebApp": "true",
|
||||
"volumes": ["$$cap_appname-db-data:/var/lib/postgresql/data"],
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"POSTGRES_USER": "$$cap_pg_user",
|
||||
"POSTGRES_PASSWORD": "$$cap_pg_pass",
|
||||
"POSTGRES_DB": "$$cap_pg_db",
|
||||
"POSTGRES_INITDB_ARGS": "$$cap_pg_initdb_args"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"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": [
|
||||
{
|
||||
"id": "$$cap_postgres_version",
|
||||
"label": "Postgres Version",
|
||||
"defaultValue": "9.6",
|
||||
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/library/postgres/tags/",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_pg_user",
|
||||
"label": "Postgres Username",
|
||||
"description": "",
|
||||
"validRegex": "/.{1,}/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_pg_pass",
|
||||
"label": "Postgres Password",
|
||||
"description": "",
|
||||
"validRegex": "/.{1,}/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_pg_db",
|
||||
"label": "Postgres Default Database",
|
||||
"description": "",
|
||||
"validRegex": "/.{1,}/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_pg_initdb_args",
|
||||
"label": "OPTIONAL: Arguments for 'postgres initdb'",
|
||||
"description": "For example, --data-checksums",
|
||||
"validRegex": "/.{0,}/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,66 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://hub.docker.com/r/prismagraphql/prisma/",
|
||||
"displayName": "",
|
||||
"description": "Prisma 1 is a database abstraction layer that turns your databases into GraphQL APIs with CRUD operations and realtime capabilities",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "3",
|
||||
"services": {
|
||||
"$$cap_appname-db": {
|
||||
"image": "mysql:$$cap_mysql_version",
|
||||
"notExposeAsWebApp": "true",
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"MYSQL_ROOT_PASSWORD": "$$cap_db_pass"
|
||||
},
|
||||
"volumes": ["$$cap_appname-db-data:/var/lib/mysql"]
|
||||
},
|
||||
"$$cap_appname": {
|
||||
"image": "prismagraphql/prisma:$$cap_prisma_version",
|
||||
"restart": "always",
|
||||
"ports": ["4466:4466"],
|
||||
"containerHttpPort": "4466",
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"volumes": {
|
||||
"mysql": null
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"end": "Prisma 1 is deployed and available as $$cap_appname.",
|
||||
"start": "Prisma 1 - Database tools for modern application development. This setup runs Prisma 1 along with a MySQL Database."
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
"id": "$$cap_prisma_version",
|
||||
"label": "Prisma 1 Version",
|
||||
"defaultValue": "1.29",
|
||||
"description": "Check out their GitHub page for their latest version https://github.com/prisma/prisma1",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"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^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_db_pass",
|
||||
"label": "Database password",
|
||||
"description": "",
|
||||
"validRegex": "/.{1,}/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_management_secret",
|
||||
"label": "Prisma 1 Management API secret",
|
||||
"description": "To ensure only entitled users are able to perform actions through the Management API. Minimum 10 characters, at least one letter and one number.",
|
||||
"validRegex": "/^(?=.*\\d).{10,}$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "https://hub.docker.com/r/prom/prometheus/",
|
||||
"displayName": "Prometheus",
|
||||
"description": "Prometheus is a systems and service monitoring system.",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"services": {
|
||||
"$$cap_appname": {
|
||||
"containerHttpPort": "9090",
|
||||
"image": "prom/prometheus@$$cap_version",
|
||||
"restart": "always",
|
||||
"volumes": [
|
||||
"$$cap_appname-config:/etc/prometheus",
|
||||
"$$cap_appname-data:/prometheus"
|
||||
]
|
||||
}
|
||||
},
|
||||
"version": "2",
|
||||
"volumes": {
|
||||
"$$cap_appname-config": {},
|
||||
"$$cap_appname-data": {}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"end": "Prometheus is now starting.",
|
||||
"start": "Read more about Prometheus: https://prometheus.io/"
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
"label": "Prometheus Docker Hash",
|
||||
"defaultValue": "sha256:43b19072ef98fd0ea5a29ac794fbadf365cca6d5247830034c7b86ae9650126c",
|
||||
"description": "Starts with 'sha256:'. Find on Docker Hub. Default is latest as of 2020-06-30.",
|
||||
"id": "$$cap_version"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,55 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://hub.docker.com/_/rabbitmq",
|
||||
"displayName": "RabbitMQ",
|
||||
"description": "RabbitMQ is an open-source message-broker software that originally implemented the Advanced Message Queuing Protocol",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "3.3",
|
||||
"services": {
|
||||
"$$cap_appname": {
|
||||
"image": "rabbitmq:$$cap_rabbitmq_version",
|
||||
"notExposeAsWebApp": "true",
|
||||
"volumes": ["$$cap_appname-rabbitmq-data:/var/lib/rabbitmq"],
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"RABBITMQ_DEFAULT_USER": "$$cap_rabbitmq_user",
|
||||
"RABBITMQ_DEFAULT_PASS": "$$cap_rabbitmq_password",
|
||||
"RABBITMQ_NODENAME": "$$cap_rabbitmq_nodename"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"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": [
|
||||
{
|
||||
"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/",
|
||||
"defaultValue": "3.7",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_rabbitmq_user",
|
||||
"label": "RabbitMQ Default User",
|
||||
"description": "",
|
||||
"validRegex": "/.{1,}/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_rabbitmq_password",
|
||||
"label": "RabbitMQ Default Password",
|
||||
"description": "",
|
||||
"validRegex": "/.{1,}/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_rabbitmq_nodename",
|
||||
"label": "RabbitMQ Nodename",
|
||||
"description": "Nodename is appended to the end of the database directory.",
|
||||
"defaultValue": "rabbit@localhost",
|
||||
"validRegex": "/.{1,}/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://hub.docker.com/r/tomsquest/docker-radicale",
|
||||
"displayName": "Radicale",
|
||||
"description": "Radicale lightweight CalDAV and CardDAV Server",
|
||||
"dockerCompose": {
|
||||
"version": "3.3",
|
||||
"services": {
|
||||
"$$cap_appname": {
|
||||
"containerHttpPort": "5232",
|
||||
"image": "tomsquest/docker-radicale:$$cap_image_tag",
|
||||
"volumes": ["$$cap_appname-data:/data"],
|
||||
"restart": "always",
|
||||
"environment": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"start": "Radicale is a small but powerful CalDAV (calendars, to-do lists) and CardDAV (contacts) server. It is strongly advised to secure your data with user passwords as stated here https://hub.docker.com/r/tomsquest/docker-radicale/",
|
||||
"end": "Radicale is deployed and available as $$cap_appname. To secure your user you can create a config like https://github.com/tomsquest/docker-radicale/blob/master/config and adapt it like stated here https://radicale.org/3.0.html#tutorials/basic-configuration. You need to create an volume pointing to the container path /etc/radicale/config to be picked up by the image."
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
"id": "$$cap_image_tag",
|
||||
"label": "What version/tag do you want?",
|
||||
"description": "Go here to see all versions https://hub.docker.com/r/tomsquest/docker-radicale/tags",
|
||||
"defaultValue": "2.1.12.1",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://hub.docker.com/r/hardware/rainloop",
|
||||
"displayName": "",
|
||||
"description": "RainLoop Webmail - Simple, modern & fast web-based email client",
|
||||
"dockerCompose": {
|
||||
"version": "2",
|
||||
"services": {
|
||||
"$$cap_appname": {
|
||||
"image": "hardware/rainloop:$$cap_rainloop_version",
|
||||
"containerHttpPort": "8888",
|
||||
"restart": "always",
|
||||
"volumes": ["$$cap_appname-data:/rainloop/data"]
|
||||
}
|
||||
},
|
||||
"volumes": {
|
||||
"$$cap_appname-data": {}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"start": "Rainloop is a simple, modern & fast web-based email client. \n\n For initial configuration, see https://www.rainloop.net/docs/configuration/",
|
||||
"end": "Rainloop is deployed and available as $$cap_appname. \n\n It will take about a minute for Rainloop to be ready. Before that, you might see 502 error page."
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
"id": "$$cap_rainloop_version",
|
||||
"label": "Rainloop Version",
|
||||
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/hardware/rainloop/tags",
|
||||
"defaultValue": "1.12.0",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,42 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://hub.docker.com/_/redis",
|
||||
"displayName": "",
|
||||
"description": "Redis is an in-memory data structure store, used as a database, cache and message broker",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "3.3",
|
||||
"services": {
|
||||
"$$cap_appname": {
|
||||
"dockerfileLines": [
|
||||
"FROM redis:$$cap_redis_version",
|
||||
"CMD exec redis-server --requirepass \"$$cap_redis_password\""
|
||||
],
|
||||
"notExposeAsWebApp": "true",
|
||||
"volumes": ["$$cap_appname-redis-data:/data"],
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"REDIS_PASSWORD": "$$cap_redis_password"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"start": "Redis is an open source key-value store that functions as a data structure server.\n\n After installation on CapRover, it will be available as srv-captain--YOUR_CONTAINER_NAME at port 6379 to other CapRover apps.\n\n Enter your Redis container name and click on next. It will take about a minute for the process to finish.",
|
||||
"end": "Redis is deployed and available as srv-captain--$$cap_appname:6379 to other apps. For example with NodeJS: const client = redis.createClient(6379, 'srv-captain--$$cap_appname' , {password: '$$cap_redis_password'})"
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
"id": "$$cap_redis_version",
|
||||
"label": "Redis Version Tag",
|
||||
"description": "Check out their Docker page for the valid tags: https://hub.docker.com/_/redis?tab=tags",
|
||||
"defaultValue": "5",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_redis_password",
|
||||
"label": "Redis Password",
|
||||
"validRegex": "/^([a-zA-Z0-9-_])+$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,40 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "https://hub.docker.com/r/resilio/sync",
|
||||
"displayName": "Resilio Sync",
|
||||
"description": "File synchronization and sharing solution based on BitTorrent technology.",
|
||||
"isOfficial": true,
|
||||
"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"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://hub.docker.com/_/rethinkdb.",
|
||||
"displayName": "RethinkDB",
|
||||
"description": "RethinkDB pushes JSON to your apps in realtime",
|
||||
"isOfficial": true,
|
||||
"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": []
|
||||
}
|
||||
|
|
@ -1,206 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://hub.docker.com/_/sentry/ and https://docs.sentry.io/server/",
|
||||
"displayName": "",
|
||||
"description": "Open-source error tracking with full stacktraces & asynchronous context",
|
||||
"isOfficial": true,
|
||||
"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": "sentry",
|
||||
"POSTGRES_PASSWORD": "$$cap_pg_pass",
|
||||
"POSTGRES_DB": "sentry"
|
||||
}
|
||||
},
|
||||
"$$cap_appname-redis": {
|
||||
"dockerfileLines": [
|
||||
"FROM redis:$$cap_redis_version",
|
||||
"CMD exec redis-server"
|
||||
],
|
||||
"notExposeAsWebApp": "true",
|
||||
"volumes": ["$$cap_appname-redis-data:/data"],
|
||||
"restart": "always"
|
||||
},
|
||||
"$$cap_appname-cron": {
|
||||
"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",
|
||||
"USER $$cap_appname-cron",
|
||||
"CMD sentry run cron"
|
||||
],
|
||||
"notExposeAsWebApp": "true",
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"SENTRY_SECRET_KEY": "$$cap_sentry_secret",
|
||||
"SENTRY_REDIS_HOST": "srv-captain--$$cap_appname-redis"
|
||||
}
|
||||
},
|
||||
"$$cap_appname-worker": {
|
||||
"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",
|
||||
"USER $$cap_appname-worker",
|
||||
"CMD sentry run worker"
|
||||
],
|
||||
"notExposeAsWebApp": "true",
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"SENTRY_SECRET_KEY": "$$cap_sentry_secret",
|
||||
"SENTRY_REDIS_HOST": "srv-captain--$$cap_appname-redis",
|
||||
"SENTRY_REDIS_PORT": "6379",
|
||||
"SENTRY_POSTGRES_HOST": "srv-captain--$$cap_appname-postgres",
|
||||
"SENTRY_DB_NAME": "sentry",
|
||||
"SENTRY_DB_USER": "sentry",
|
||||
"SENTRY_DB_PASSWORD": "$$cap_pg_pass"
|
||||
}
|
||||
},
|
||||
"$$cap_appname": {
|
||||
"dockerfileLines": [
|
||||
"FROM sentry:$$cap_sentry_version",
|
||||
"RUN echo 'auth.allow-registration: false' > /etc/sentry/config.yml",
|
||||
"RUN echo 'beacon.anonymous: true' >> /etc/sentry/config.yml",
|
||||
"RUN echo 'mail.from: \"\"' >> /etc/sentry/config.yml",
|
||||
"RUN echo 'mail.host: \"\"' >> /etc/sentry/config.yml",
|
||||
"RUN echo 'mail.password: \"\"' >> /etc/sentry/config.yml",
|
||||
"RUN echo 'mail.port: 465' >> /etc/sentry/config.yml",
|
||||
"RUN echo 'mail.use-tls: true' >> /etc/sentry/config.yml",
|
||||
"RUN echo 'mail.username: \"\"' >> /etc/sentry/config.yml",
|
||||
"RUN echo 'system.admin-email: \"\"' >> /etc/sentry/config.yml",
|
||||
"RUN echo 'system.url-prefix: \"\"' >> /etc/sentry/config.yml",
|
||||
"RUN echo '#!/bin/bash' >> ./init.sh",
|
||||
"RUN echo 'echo Starting configuration. The App will restart multiple times.' >> ./init.sh",
|
||||
"RUN echo 'echo 1 of 4 : running upgrade' >> ./init.sh",
|
||||
"RUN echo 'sentry upgrade --noinput --traceback --no-repair' >> ./init.sh",
|
||||
"RUN echo 'echo 2 of 4 : set sentry:version-configured' >> ./init.sh",
|
||||
"RUN echo 'sentry config set sentry:version-configured ${CAP_SENTRY_VERSION}' >> ./init.sh",
|
||||
"RUN echo 'echo 3 of 4 : creating user' >> ./init.sh",
|
||||
"RUN echo 'sentry createuser --email=${CAP_SENTRY_SUPERUSER_EMAIL} --password=${CAP_SENTRY_SUPERUSER_PASSWORD} --superuser --no-input' >> ./init.sh",
|
||||
"RUN echo 'echo Configuration completed!' >> ./init.sh",
|
||||
"RUN echo 'echo 4 of 4 : starting application' >> ./init.sh",
|
||||
"RUN echo 'sentry run web' >> ./init.sh",
|
||||
"RUN chmod +x init.sh",
|
||||
"RUN groupadd -r $$cap_appname-sentry && useradd -r -g $$cap_appname-sentry $$cap_appname-sentry",
|
||||
"USER $$cap_appname-sentry",
|
||||
"CMD [\"./init.sh\"]"
|
||||
],
|
||||
"containerHttpPort": "9000",
|
||||
"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",
|
||||
"CAP_SENTRY_SUPERUSER_EMAIL": "$$cap_sentry_superuser_email",
|
||||
"CAP_SENTRY_SUPERUSER_PASSWORD": "$$cap_sentry_superuser_password",
|
||||
"SENTRY_POSTGRES_HOST": "srv-captain--$$cap_appname-postgres",
|
||||
"SENTRY_REDIS_HOST": "srv-captain--$$cap_appname-redis",
|
||||
"SENTRY_REDIS_PORT": "6379",
|
||||
"SENTRY_DB_NAME": "sentry",
|
||||
"SENTRY_DB_USER": "sentry",
|
||||
"SENTRY_DB_PASSWORD": "$$cap_pg_pass",
|
||||
"SENTRY_SECRET_KEY": "$$cap_sentry_secret",
|
||||
"SENTRY_MAILGUN_API_KEY": "$$cap_mailgun_apikey",
|
||||
"SENTRY_SERVER_EMAIL": "$$cap_sentry_server_mail",
|
||||
"SENTRY_EMAIL_HOST": "$$cap_sentry_email_host",
|
||||
"SENTRY_EMAIL_PORT": "$$cap_sentry_email_port",
|
||||
"SENTRY_EMAIL_USER": "$$cap_sentry_email_user",
|
||||
"SENTRY_EMAIL_PASSWORD": "$$cap_sentry_email_password",
|
||||
"SENTRY_EMAIL_USE_TLS": "$$cap_sentry_email_use_tls"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"start": "Open-source error tracking that helps developers monitor and fix crashes in real time.\n\n Information about this container:\n https://hub.docker.com/_/sentry/ \n\nDocumentation:\n https://docs.sentry.io/server/\n\nMinimum Hardware Requirements: At least 3GB Ram\nNot filling this requirement may cause some errors during the initial configuration when running the database migrations.\n\n Enter your Sentry Configuration parameters and click on next. The initial installation will take about 5 minutes for the process to finish.",
|
||||
"end": "Sentry is deployed and available as srv-captain--$$cap_appname:9000. \n\n IMPORTANT: It will take up to 10 minutes for Sentry to be ready. Before that, you might see 502 error page.\n"
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
"id": "$$cap_postgres_version",
|
||||
"label": "Postgres Version Tag",
|
||||
"defaultValue": "9.6",
|
||||
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/library/postgres/tags/",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_redis_version",
|
||||
"label": "Redis Version Tag",
|
||||
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/library/redis/tags/",
|
||||
"defaultValue": "3.2-alpine",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_sentry_version",
|
||||
"label": "Sentry Version Tag",
|
||||
"description": "Check out their Docker page for the valid tags https://hub.docker.com/_/sentry/",
|
||||
"defaultValue": "9.1.0",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"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,}$/"
|
||||
},
|
||||
{
|
||||
"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,}$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_sentry_superuser_email",
|
||||
"label": "Sentry Superuser Email",
|
||||
"validRegex": "/.{1,}/"
|
||||
},
|
||||
{
|
||||
"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,}$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_sentry_server_mail",
|
||||
"label": "Sentry Server Email (optional)",
|
||||
"description": "The email address used for From: in outbound emails.",
|
||||
"defaultValue": "root@localhost",
|
||||
"validRegex": "/.{1,}/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_sentry_email_host",
|
||||
"label": "SMTP email host (optional)"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_sentry_email_port",
|
||||
"label": "SMTP email port (optional)",
|
||||
"defaultValue": 465
|
||||
},
|
||||
{
|
||||
"id": "$$cap_sentry_email_user",
|
||||
"label": "SMTP email user (optional)"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_sentry_email_password",
|
||||
"label": "SMTP email password (optional)"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_sentry_email_use_tls",
|
||||
"label": "SMTP use tls (optional)",
|
||||
"defaultValue": true
|
||||
},
|
||||
{
|
||||
"id": "$$cap_mailgun_apikey",
|
||||
"label": "Mailgun Api key (optional)",
|
||||
"description": "If you're using Mailgun for inbound mail, set your API key and configure a route to forward to /api/hooks/mailgun/inbound/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,112 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "See https://hub.docker.com/r/shyim/shopware for tags and other variables",
|
||||
"displayName": "Shopware",
|
||||
"description": "Shopware is a trendsetting ecommerce platform to power your online business.",
|
||||
"dockerCompose": {
|
||||
"version": "3.3",
|
||||
"services": {
|
||||
"$$cap_appname-db": {
|
||||
"image": "mysql:5.7",
|
||||
"notExposeAsWebApp": "true",
|
||||
"volumes": ["$$cap_appname-db-data:/var/lib/mysql"],
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"MYSQL_ROOT_PASSWORD": "$$cap_db_pass",
|
||||
"MYSQL_DATABASE": "shopware",
|
||||
"MYSQL_USER": "$$cap_db_user",
|
||||
"MYSQL_PASSWORD": "$$cap_db_pass"
|
||||
}
|
||||
},
|
||||
"$$cap_appname-shopware": {
|
||||
"depends_on": ["$$cap_appname-db"],
|
||||
"image": "shyim/shopware:$$cap_sw_version",
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"DATABASE_HOST": "srv-captain--$$cap_appname-db:3306",
|
||||
"DATABASE_URL": "mysql://$$cap_db_user:$$cap_db_pass@srv-captain--$$cap_appname-db:3306/shopware",
|
||||
"DB_USER": "$$cap_db_user",
|
||||
"DB_PASSWORD": "$$cap_db_pass",
|
||||
"APP_URL": "http://$$cap_appname-shopware.$$cap_root_domain",
|
||||
"APP_SECRET": "$$cap_app_scret",
|
||||
"INSTANCE_ID": "$$cap_instance_id",
|
||||
"MAILER_URL": "$$cap_mailer_url",
|
||||
"INSTALL_LOCALE": "$$cap_sw_locale",
|
||||
"INSTALL_CURRENCY": "$$cap_sw_currency",
|
||||
"INSTALL_ADMIN_USERNAME": "$$cap_sw_admin_username",
|
||||
"INSTALL_ADMIN_PASSWORD": "$$cap_sw_admin_password"
|
||||
},
|
||||
"volumes": [
|
||||
"$$cap_appname-state:/state",
|
||||
"$$cap_appname-custom-plugins:/var/www/html/custom/plugins",
|
||||
"$$cap_appname-files:/var/www/html/files",
|
||||
"$$cap_appname-logs:/var/www/html/var/logs",
|
||||
"$$cap_appname-theme:/var/www/html/public/theme",
|
||||
"$$cap_appname-media:/var/www/html/public/media",
|
||||
"$$cap_appname-bundles:/var/www/html/public/bundles",
|
||||
"$$cap_appname-sitemap:/var/www/html/public/sitemap",
|
||||
"$$cap_appname-thumbnail:/var/www/html/public/thumbnail",
|
||||
"$$cap_appname-jwt:/var/www/html/config/jwt"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"start": "Shopware is a trendsetting ecommerce platform to power your online business.",
|
||||
"end": "Shopware is successfully deployed. Please wait a minute before accessing the shop. For help and support checkout https://github.com/shyim/shopware-image"
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
"id": "$$cap_instance_id",
|
||||
"label": "Instance ID (Can be generated with openssl rand -hex 32)",
|
||||
"defaultValue": "10612e3916e153dd3447850e944a03fabe89440970295447a30a75b151bd844e"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_app_scret",
|
||||
"label": "App Secret (Can be generated with openssl rand -hex 32)",
|
||||
"defaultValue": "440dec3766de53010c5ccf6231c182acfc90bd25cff82e771245f736fd276518"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_db_user",
|
||||
"label": "Database user",
|
||||
"defaultValue": "shopwareuser",
|
||||
"validRegex": "/^([a-zA-Z0-9])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_db_pass",
|
||||
"label": "Database password",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"id": "$$cap_sw_version",
|
||||
"label": "Shopware Version",
|
||||
"defaultValue": "6.2.0",
|
||||
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/shyim/shopware/tags/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_mailer_url",
|
||||
"label": "Mailer URL",
|
||||
"defaultValue": "null://localhost"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_sw_locale",
|
||||
"label": "Locale",
|
||||
"defaultValue": "en-GB"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_sw_currency",
|
||||
"label": "Currency",
|
||||
"defaultValue": "EUR"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_sw_admin_username",
|
||||
"label": "Admin Username",
|
||||
"defaultValue": "admin"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_sw_admin_password",
|
||||
"label": "Admin Password",
|
||||
"defaultValue": "shopware"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,53 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "https://hub.docker.com/r/sinusbot/docker",
|
||||
"displayName": "SinusBot",
|
||||
"description": "Music bot for TS3 and Discord.",
|
||||
"isOfficial": true,
|
||||
"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"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,73 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://hub.docker.com/_/sonarqube",
|
||||
"displayName": "",
|
||||
"description": "Catch bugs and vulnerabilities in your app, with thousands of automated Static Code Analysis rules",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "3.3",
|
||||
"services": {
|
||||
"$$cap_appname-db": {
|
||||
"image": "postgres:$$cap_postgres_version",
|
||||
"notExposeAsWebApp": "true",
|
||||
"volumes": ["$$cap_appname-db-data:/var/lib/postgresql/data"],
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"POSTGRES_USER": "sonarqube",
|
||||
"POSTGRES_PASSWORD": "$$cap_pg_pass",
|
||||
"POSTGRES_DB": "sonarqube",
|
||||
"POSTGRES_INITDB_ARGS": "$$cap_pg_initdb_args"
|
||||
}
|
||||
},
|
||||
"$$cap_appname": {
|
||||
"image": "sonarqube:$$cap_sonar_version",
|
||||
"containerHttpPort": "9000",
|
||||
"depends_on": ["$$cap_appname-db"],
|
||||
"volumes": [
|
||||
"$$cap_appname-conf:/opt/sonarqube/conf",
|
||||
"$$cap_appname-data:/opt/sonarqube/data",
|
||||
"$$cap_appname-logs:/opt/sonarqube/logs",
|
||||
"$$cap_appname-extensions:/opt/sonarqube/extensions"
|
||||
],
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"sonar.jdbc.username": "sonarqube",
|
||||
"sonar.jdbc.password": "$$cap_pg_pass",
|
||||
"sonar.jdbc.url": "jdbc:postgresql://srv-captain--$$cap_appname-db/sonarqube"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"start": "SonarQube is an open source product for continuous inspection of code quality. \n This Docker image contains the Community Edition of SonarQube.\n\n Enter your Sonarqube Configuration parameters and click on next. \n\n More information about this container can be found here:\n https://hub.docker.com/_/sonarqube?tab=description\n\n Default username: admin\n Default password: admin\n\n It will take about a minute for the process to finish.",
|
||||
"end": "SonarQube is deployed and available as srv-captain--$$cap_appname:9000 to other apps."
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
"id": "$$cap_postgres_version",
|
||||
"label": "Postgres Version",
|
||||
"defaultValue": "9.6",
|
||||
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/library/postgres/tags/",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_sonar_version",
|
||||
"label": "Sonarqube Version",
|
||||
"defaultValue": "7.7-community",
|
||||
"description": "Check out their Docker page for the valid tags https://hub.docker.com/_/sonarqube?tab=tags/",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_pg_pass",
|
||||
"label": "Postgres Password",
|
||||
"description": "",
|
||||
"validRegex": "/.{1,}/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_pg_initdb_args",
|
||||
"label": "OPTIONAL: Arguments for 'postgres initdb'",
|
||||
"description": "For example, --data-checksums",
|
||||
"validRegex": "/.{0,}/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://hub.docker.com/r/sourcegraph/server/",
|
||||
"displayName": "",
|
||||
"description": "Sourcegraph is a free, self-hosted code search and intelligence server that helps developers find, review, understand, and debug code",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "3.3",
|
||||
"services": {
|
||||
"$$cap_appname": {
|
||||
"containerHttpPort": "7080",
|
||||
"image": "sourcegraph/server:$$cap_container_version",
|
||||
"volumes": [
|
||||
"$$cap_appname-config:/etc/sourcegraph",
|
||||
"$$cap_appname-data:/var/opt/sourcegraph"
|
||||
],
|
||||
"restart": "always"
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"start": "Sourcegraph is a code search and navigation tool (open-source/self-hosted). \n\n More information about this container can be found here: https://hub.docker.com/r/sourcegraph/server/ .\n\n After installation on CapRover, it will be available as srv-captain--YOUR_CONTAINER_NAME at port 7080 to other CapRover apps. \n\nEnter your Sourcegraph Configuration parameters and click on next. It will take about a minute for the process to finish.",
|
||||
"end": "Sourcegraph is deployed and available as srv-captain--$$cap_appname:7080 to other apps. Open the application to create the administrator account. \n\n SECURITY: If the site has no users (i.e., during initial setup), it will always allow the first user to sign up and become site admin **without any approval** (first user to sign up becomes the admin).\n\n In order to use administration console, for critical configurations, the port 2633 needs to be mapped on the host. This port is not mapped, by default, for security reasons and because it's required only for special configurations. The administation console requires an admin username and a strong readonly password generated by the application.\n\n More information about the administration console can be found here: \nhttps://docs.sourcegraph.com/admin/management_console \n\nTo disable the signup option for other users use the administration console and change the boolean property \"allowSignup\" to false. More information here: https://docs.sourcegraph.com/admin/config/critical_config#builtin-password-authentication"
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
"id": "$$cap_container_version",
|
||||
"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^\\/])+$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,76 +0,0 @@
|
|||
{
|
||||
"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"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,51 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://docs.docker.com/engine/examples/running_ssh_service/#build-an-eg_sshd-image ",
|
||||
"displayName": "SSH Container",
|
||||
"description": "Just a simple container that has sshd installed so you can SSH directly into this container.",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "3.3",
|
||||
"services": {
|
||||
"$$cap_appname": {
|
||||
"dockerfileLines": [
|
||||
"FROM ubuntu:16.04",
|
||||
"RUN apt-get update && apt-get install -y openssh-server",
|
||||
"RUN mkdir /var/run/sshd",
|
||||
"RUN echo 'root:$$cap_sshd_password' | chpasswd",
|
||||
"RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config",
|
||||
"# SSH login fix. Otherwise user is kicked off after login",
|
||||
"RUN sed 's@sessions*requireds*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd",
|
||||
"ENV NOTVISIBLE \"in users profile\"",
|
||||
"RUN echo \"export VISIBLE=now\" >> /etc/profile",
|
||||
"EXPOSE 22",
|
||||
"CMD [\"/usr/sbin/sshd\", \"-D\"]"
|
||||
],
|
||||
"ports": ["$$cap_sshd_port:22"],
|
||||
"volumes": ["$$cap_appname-data:/data"],
|
||||
"restart": "always",
|
||||
"environment": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"start": "The following app sets up an SSHd service in a container that you can use to connect to and inspect other container’s volumes, or to get quick access to a test container.\n\n\nIMPORTANT:\nThis setup uses password login. You can optionally mount your keys and use public/private key to log in.",
|
||||
"end": "The container is built and deployed. You can now connect to this container from your local machine by running the following command: \n\n ssh root@IpAddressOfServer -p $$cap_sshd_port"
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
"id": "$$cap_sshd_password",
|
||||
"label": "Your SSH root password",
|
||||
"description": "Enter a secure password",
|
||||
"defaultValue": "pAsSwOrD",
|
||||
"validRegex": "/.{8,}/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_sshd_port",
|
||||
"label": "Your SSH exposed port",
|
||||
"description": "Enter a port number",
|
||||
"defaultValue": "4646",
|
||||
"validRegex": "/^\\d+$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,71 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://github.com/strapi/strapi-docker/blob/master/examples/mongo/docker-compose.yml",
|
||||
"displayName": "",
|
||||
"description": "The Open source Headless CMS Front-End Developers love. Manage your content. Distribute it anywhere",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "3.3",
|
||||
"services": {
|
||||
"$$cap_appname-core": {
|
||||
"depends_on": ["$$cap_appname-mongo"],
|
||||
"containerHttpPort": "1337",
|
||||
"image": "strapi/strapi:$$cap_strapi_version",
|
||||
"volumes": ["$$cap_appname-data:/srv/app"],
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"DATABASE_CLIENT": "mongo",
|
||||
"DATABASE_HOST": "srv-captain--$$cap_appname-mongo",
|
||||
"DATABASE_PORT": "27017",
|
||||
"DATABASE_NAME": "strapi",
|
||||
"DATABASE_USERNAME": "root",
|
||||
"DATABASE_PASSWORD": "$$cap_mongo_password",
|
||||
"DATABASE_AUTHENTICATION_DATABASE": "strapi"
|
||||
}
|
||||
},
|
||||
"$$cap_appname-mongo": {
|
||||
"image": "mongo:$$cap_mongo_version",
|
||||
"notExposeAsWebApp": "true",
|
||||
"volumes": [
|
||||
"$$cap_appname-mongo-data:/data/db",
|
||||
"$$cap_appname-mongo-config:/data/configdb"
|
||||
],
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"MONGO_INITDB_DATABASE": "strapi",
|
||||
"MONGO_INITDB_ROOT_USERNAME": "root",
|
||||
"MONGO_INITDB_ROOT_PASSWORD": "$$cap_mongo_password"
|
||||
}
|
||||
}
|
||||
},
|
||||
"volumes": {
|
||||
"db_data": {}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"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": [
|
||||
{
|
||||
"id": "$$cap_strapi_version",
|
||||
"label": "Strapi Version",
|
||||
"defaultValue": "3.0.0-beta.18.6",
|
||||
"description": "Check out their page for the valid versions https://hub.docker.com/r/strapi/strapi/tags",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_mongo_version",
|
||||
"label": "MongoDB Version",
|
||||
"defaultValue": "4",
|
||||
"description": "Check out their Docker page for the valid tags https://hub.docker.com/r/library/mongo/tags/",
|
||||
"validRegex": "/^([a-zA-Z0-9])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_mongo_password",
|
||||
"label": "MongoDB password",
|
||||
"description": "Only use alphanumeric chars.",
|
||||
"validRegex": "/^([a-zA-Z0-9])+$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,40 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "https://hub.docker.com/r/syncthing/syncthing",
|
||||
"displayName": "Syncthing",
|
||||
"description": "Open Source Continuous File Synchronization.",
|
||||
"isOfficial": true,
|
||||
"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"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,59 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "https://hub.docker.com/_/teamspeak",
|
||||
"displayName": "TeamSpeak",
|
||||
"description": "TeamSpeak is the number one choice VoIP communication system for Online Gaming.",
|
||||
"isOfficial": true,
|
||||
"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."
|
||||
},
|
||||
"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"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
{
|
||||
"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",
|
||||
"isOfficial": true,
|
||||
"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^\\/])+$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://hub.docker.com/r/minimalcompact/thumbor/tags/",
|
||||
"displayName": "",
|
||||
"description": "Thumbor is a smart imaging service. It enables on-demand crop, resizing and flipping of images",
|
||||
"dockerCompose": {
|
||||
"version": "3.3",
|
||||
"services": {
|
||||
"$$cap_appname-db": {
|
||||
"image": "minimalcompact/thumbor:$$cap_thumbor_version",
|
||||
"volumes": ["$$cap_appname-thumbor:/data"],
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"THUMBOR_PORT": "80"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"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^\\/])+$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,46 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Based on https://hub.docker.com/r/nicolaw/tiddlywiki",
|
||||
"displayName": "TiddlyWiki",
|
||||
"description": "TiddlyWiki is a personal wiki and a non-linear notebook for organising and sharing complex information",
|
||||
"dockerCompose": {
|
||||
"version": "3.3",
|
||||
"services": {
|
||||
"$$cap_appname": {
|
||||
"image": "nicolaw/tiddlywiki",
|
||||
"containerHttpPort": "8080",
|
||||
"restart": "always",
|
||||
"volumes": ["$$cap_appname-data:/var/lib/tiddlywiki"],
|
||||
"environment": {
|
||||
"TW_USERNAME": "$$cap_wikusername",
|
||||
"TW_PASSWORD": "$$cap_wikipassword",
|
||||
"NODE_MEM": "$$cap_nodemem"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"start": "TiddlyWiki is a personal wiki and a non-linear notebook for organising and sharing complex information. It is an open-source single page application wiki in the form of a single HTML file that includes CSS, JavaScript, and the content. It is designed to be easy to customize and re-shape depending on application. It facilitates re-use of content by dividing it into small pieces called Tiddlers.",
|
||||
"end": "You TiddlyWiki is deployed; it might take a minute to be ready. See https://$$cap_appname.$$cap_root_domain/#HelloThere to get started."
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
"id": "$$cap_wikusername",
|
||||
"label": "Username",
|
||||
"defaultValue": "anonymous",
|
||||
"description": "Username for authentication (leave blank for a public wiki)"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_wikipassword",
|
||||
"label": "Password",
|
||||
"description": "Password for authentication (leave blank for a public wiki)"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_nodemem",
|
||||
"label": "Max Memory",
|
||||
"defaultValue": "400",
|
||||
"validRegex": "/^[0-9]+$/",
|
||||
"description": "Limit the memory that the server can consume"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,35 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://hub.docker.com/r/verdaccio/verdaccio/",
|
||||
"displayName": "",
|
||||
"description": "Verdaccio is a lightweight private npm proxy registry that allows you to have your own npm registry for free",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "3.3",
|
||||
"services": {
|
||||
"$$cap_appname": {
|
||||
"image": "verdaccio/verdaccio:$$cap__verdaccio_version",
|
||||
"containerHttpPort": "4873",
|
||||
"volumes": [
|
||||
"$$cap_appname-storage:/verdaccio/storage",
|
||||
"$$cap_appname-conf:/verdaccio/conf",
|
||||
"$$cap_appname-plugins:/verdaccio/plugins"
|
||||
],
|
||||
"restart": "always",
|
||||
"environment": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"start": "Verdaccio is a simple, zero-config-required local private npm registry. \n\n No need for an entire database just to get started! Verdaccio comes out of the box with its own tiny database, and the ability to proxy other registries (eg. npmjs.org), caching the downloaded modules along the way. For those looking to extend their storage capabilities, Verdaccio supports various community-made plugins to hook into services such as Amazon's S3, Google Cloud Storage, or create your own plugin. \n\n For more details, see: https://hub.docker.com/r/verdaccio/verdaccio\n\n Enter your verdaccio Configuration parameters and click on next. It will take about a minute for the process to finish.",
|
||||
"end": "Verdaccio is deployed and available as srv-captain--$$cap_appname:4873 to other apps.."
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
"id": "$$cap__verdaccio_version",
|
||||
"label": "Verdaccio Version",
|
||||
"defaultValue": "3.11.6",
|
||||
"description": "Additional tags can be found here: https://hub.docker.com/r/verdaccio/verdaccio/tags"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,41 +0,0 @@
|
|||
{
|
||||
"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.",
|
||||
"isOfficial": true,
|
||||
"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": "/^[^\"]*$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,57 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "Taken from https://hub.docker.com/r/microsoft/vsts-agent/",
|
||||
"displayName": "VSTS",
|
||||
"description": "VSTS is an integrated development environment (IDE) developed as a software product by Microsoft Corp",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"version": "3.3",
|
||||
"services": {
|
||||
"$$cap_appname": {
|
||||
"image": "microsoft/vsts-agent:$$cap_vsts_version",
|
||||
"restart": "always",
|
||||
"environment": {
|
||||
"VSTS_ACCOUNT": "$$cap_vsts_account",
|
||||
"VSTS_TOKEN": "$$cap_vsts_token",
|
||||
"VSTS_AGENT": "$$cap_vsts_name",
|
||||
"VSTS_POOL": "$$cap_vsts_pool"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"instructions": {
|
||||
"start": "Official image for the Visual Studio Team Services (VSTS) agent.",
|
||||
"end": "VSTS Agent is deployed and available as $$cap_appname"
|
||||
},
|
||||
"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/",
|
||||
"defaultValue": "ubuntu-16.04-standard",
|
||||
"validRegex": "/^([^\\s^\\/])+$/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_vsts_account",
|
||||
"label": "VSTS Account",
|
||||
"description": "The name of the Visual Studio account. Take only the account part from your address, e.g. http://{account}.visualstudio.com",
|
||||
"validRegex": "/.{1,}/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_vsts_token",
|
||||
"label": "VSTS Token",
|
||||
"description": "A personal access token (PAT) for the Visual Studio account that has been given at least the Agent Pools (read, manage) scope.",
|
||||
"validRegex": "/.{1,}/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_vsts_name",
|
||||
"label": "VSTS Agent Name",
|
||||
"validRegex": "/.{1,}/"
|
||||
},
|
||||
{
|
||||
"id": "$$cap_vsts_pool",
|
||||
"label": "VSTS Pool",
|
||||
"validRegex": "/.{1,}/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,61 +0,0 @@
|
|||
{
|
||||
"captainVersion": "2",
|
||||
"documentation": "https://docs.requarks.io/",
|
||||
"displayName": "wiki.js",
|
||||
"description": "The most powerful and extensible open source Wiki software",
|
||||
"isOfficial": true,
|
||||
"dockerCompose": {
|
||||
"services": {
|
||||
"$$cap_appname-postgres": {
|
||||
"image": "postgres:$$cap_postgres_version",
|
||||
"environment": {
|
||||
"POSTGRES_DB": "wiki",
|
||||
"POSTGRES_PASSWORD": "$$cap_DB_PASS",
|
||||
"POSTGRES_USER": "wikijs"
|
||||
},
|
||||
"volumes": ["$$cap_appname-db-data:/var/lib/postgresql/data"]
|
||||
},
|
||||
"$$cap_appname": {
|
||||
"containerHttpPort": "3000",
|
||||
"environment": {
|
||||
"DB_TYPE": "postgres",
|
||||
"DB_HOST": "srv-captain--$$cap_appname-postgres",
|
||||
"DB_PORT": "5432",
|
||||
"DB_USER": "wikijs",
|
||||
"DB_PASS": "$$cap_DB_PASS",
|
||||
"DB_NAME": "wiki"
|
||||
},
|
||||
"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": "Postgres Version",
|
||||
"defaultValue": "11-alpine",
|
||||
"id": "$$cap_postgres_version"
|
||||
},
|
||||
{
|
||||
"label": "Database Password",
|
||||
"description": "Password to connect to the database",
|
||||
"defaultValue": "daTaBaSePaSsWorD",
|
||||
"id": "$$cap_DB_PASS"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,66 +0,0 @@
|
|||
{
|
||||
"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.",
|
||||
"isOfficial": true,
|
||||
"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, it’s 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"
|
||||
},
|
||||
{
|
||||
"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^\\/])+$/"
|
||||
}
|
||||
]
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue