From b28f4c19402c5d4e311a831f63adc2a1c0157044 Mon Sep 17 00:00:00 2001 From: Kasra Bigdeli Date: Sat, 12 Jan 2019 20:44:05 -0800 Subject: [PATCH] Added minio, strapi, nextcloud --- one-click-apps/v1/minio.json | 55 ++++++++++++++++++++++ one-click-apps/v1/mysql.json | 2 +- one-click-apps/v1/nextcloud.json | 35 ++++++++++++++ one-click-apps/v1/strapi.json | 80 ++++++++++++++++++++++++++++++++ 4 files changed, 171 insertions(+), 1 deletion(-) create mode 100644 one-click-apps/v1/minio.json create mode 100644 one-click-apps/v1/nextcloud.json create mode 100644 one-click-apps/v1/strapi.json diff --git a/one-click-apps/v1/minio.json b/one-click-apps/v1/minio.json new file mode 100644 index 0000000..de4916a --- /dev/null +++ b/one-click-apps/v1/minio.json @@ -0,0 +1,55 @@ +{ + "captainVersion": "1", + "documentation": "Taken from https://hub.docker.com/r/minio/minio", + "dockerCompose": + { + "version": "3.3", + "services": + { + "$$cap_appname": + { + "dockerfileLines": [ + "FROM minio/minio:$$cap_minio_version", + "CMD minio server /data" + ], + "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": "Checkout their docker page for the valid tags https://hub.docker.com/r/minio/minio/tags/", + "validRegex": "/.{1,}/" + }, + { + "id": "$$cap_access_key", + "label": "Minio Access Key", + "defaultValue": "latest", + "description": "Username to acess minio server", + "validRegex": "/.{5,}/" + }, + { + "id": "$$cap_secret_key", + "label": "Minio Secret Key", + "defaultValue": "latest", + "description": "Password to acess minio server", + "validRegex": "/.{8,}/" + }] + +} diff --git a/one-click-apps/v1/mysql.json b/one-click-apps/v1/mysql.json index 02e87a5..2c57eff 100644 --- a/one-click-apps/v1/mysql.json +++ b/one-click-apps/v1/mysql.json @@ -15,7 +15,7 @@ "restart": "always", "environment": { - "MYSQL_ROOT_PASSWORD": "$$cap_mysql_version" + "MYSQL_ROOT_PASSWORD": "$$cap_db_pass" } } } diff --git a/one-click-apps/v1/nextcloud.json b/one-click-apps/v1/nextcloud.json new file mode 100644 index 0000000..dec6067 --- /dev/null +++ b/one-click-apps/v1/nextcloud.json @@ -0,0 +1,35 @@ +{ + "captainVersion": "1", + "documentation": "Taken from https://hub.docker.com/_/nextcloud", + "dockerCompose": + { + "version": "3.3", + "services": + { + "$$cap_appname-db": + { + "image": "nextcloud:$$cap_nextcloud_version", + "volumes": [ + "$$cap_appname-db-data:/var/www/html" + ], + "restart": "always", + "environment": + { + } + } + } + }, + "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 available as $$cap_appname" + }, + "variables": [ + { + "id": "$$cap_nextcloud_version", + "label": "NextCloud Version", + "defaultValue": "15", + "description": "Checkout their docker page for the valid tags https://hub.docker.com/r/library/nextcloud/tags/", + "validRegex": "/.{1,}/" + }] + +} diff --git a/one-click-apps/v1/strapi.json b/one-click-apps/v1/strapi.json new file mode 100644 index 0000000..6348b16 --- /dev/null +++ b/one-click-apps/v1/strapi.json @@ -0,0 +1,80 @@ +{ + "captainVersion": "1", + "documentation": "Taken from https://github.com/strapi/strapi-docker/blob/master/docker-compose.yml", + "dockerCompose": + { + "version": "3.3", + "services": + { + "$$cap_appname-core": + { + "depends_on": [ + "$$cap_appname-mongo" + ], + "image": "strapi/strapi:$$cap_strapi_version", + "volumes": [ + "$$cap_appname-data:/usr/src/api/strapi-app" + ], + "restart": "always", + "environment": + { + "APP_NAME": "$$cap_appname", + "DATABASE_CLIENT": "mongo", + "DATABASE_HOST": "srv-captain--$$cap_appname-mongo", + "DATABASE_PORT": "27017", + "DATABASE_NAME": "strapi", + "DATABASE_USERNAME": "root", + "DATABASE_PASSWORD": "$$cap_mongo_password", + "HOST": "localhost", + "DATABASE_AUTHENTICATION_DATABASE": "strapi" + } + }, + "$$cap_appname-mongo": + { + "image": "mongo:$$cap_mongo_version", + "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 ", + "end":"Strapi is deployed and available as $$cap_appname" + }, + "variables": [ + { + "id": "$$cap_strapi_version", + "label": "Strapi Version", + "defaultValue": "v3.0.0-alpha.14.5", + "description": "Checkout their docker page for the valid tags https://hub.docker.com/r/strapi/strapi/tags/", + "validRegex": "/.{1,}/" + }, + { + "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])+$/" + }] + +}