diff --git a/one-click-apps/v1/adminer.json b/one-click-apps/v1/adminer.json new file mode 100644 index 0000000..61394b9 --- /dev/null +++ b/one-click-apps/v1/adminer.json @@ -0,0 +1,50 @@ +{ + "captainVersion": "1", + "documentation": "Taken from https://hub.docker.com/_/adminer except it is manually adjusted for port 80", + "dockerCompose": + { + "version": "3.3", + "services": + { + "$$cap_appname": + { + "dockerfileLines": [ + "FROM adminer:$$cap_adminer_version", + "USER root", + "EXPOSE 80", + "CMD ['php', '-S', '[::]:80', '-t', '/var/www/html' ]" + ], + "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": "Checkout their docker page for the valid tags https://hub.docker.com/r/library/adminer/tags/", + "defaultValue": "4", + "validRegex": "/^([a-zA-Z0-9-.])+$/" + }, + { + "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])+$/" + }] + +} diff --git a/one-click-apps/v1/couchdb.json b/one-click-apps/v1/couchdb.json new file mode 100644 index 0000000..8e5cb7f --- /dev/null +++ b/one-click-apps/v1/couchdb.json @@ -0,0 +1,45 @@ +{ + "captainVersion": "1", + "documentation": "Taken from https://hub.docker.com/_/couchdb/", + "dockerCompose": + { + "version": "3.3", + "services": + { + "$$cap_appname": + { + "image": "couchdb:$$cap_couchdb_version", + "restart": "always", + "environment": + { + "ADMINER_PLUGINS": "$$cap_couchdb_user", + "ADMINER_DESIGN": "$$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 CaptainDuckDuck, it will be available as srv-captain--YOUR_CONTAINER_NAME at port 5984 to other CaptainDuckDuck 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": "Checkout their docker page for the valid tags https://hub.docker.com/r/library/couchdb/tags/", + "defaultValue": "2", + "validRegex": "/^([a-zA-Z0-9-.])+$/" + }, + { + "id": "$$cap_couchdb_user", + "label": "CouchDB Username", + "defaultValue": "mainuser", + "validRegex": "/^([a-zA-Z0-9_])+$/" + }, + { + "id": "$$cap_couchdb_password", + "label": "CouchDB Password", + "defaultValue": "", + "validRegex": "/.{1,}/" + }] + +} diff --git a/one-click-apps/v1/parse.json b/one-click-apps/v1/parse.json new file mode 100644 index 0000000..31c7e82 --- /dev/null +++ b/one-click-apps/v1/parse.json @@ -0,0 +1,78 @@ +{ + "captainVersion": "1", + "documentation": "Taken from https://hub.docker.com/r/parseplatform/parse-server/", + "dockerCompose": + { + "version": "3.3", + "services": + { + "$$cap_appname-mongodb": + { + "image": "mongo:$$cap_mongo_version", + "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", + "restart": "always", + "environment": + { + "PORT": "80", + "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" + } + } + } + }, + "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 and available as $$cap_appname-parse." + }, + "variables": [ + { + "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": "/^([a-zA-Z0-9])+$/" + }, + { + "id": "$$cap_mongo_password", + "label": "MongoDB password", + "description": "Only use alphanumeric chars.", + "validRegex": "/^([a-zA-Z0-9])+$/" + }, + { + "id": "$$cap_parse_version", + "label": "Parse Version", + "defaultValue": "3.1.3", + "description": "Checkout their docker page for the valid tags https://hub.docker.com/r/parseplatform/parse-server/tags", + "validRegex": "/^([a-zA-Z0-9\\.])+$/" + }, + { + "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])+$/" + }] + +}