From e954eb6bcdb618b005a89bfe7a4eb261909916e6 Mon Sep 17 00:00:00 2001 From: dalareo Date: Mon, 1 Feb 2016 13:16:19 +0100 Subject: [PATCH] added educaas templates --- templates/MongoDB/0/README.md | 18 + templates/MongoDB/0/docker-compose.yml | 35 + templates/MongoDB/0/rancher-compose.yml | 19 + templates/MongoDB/catalogIcon-mongodb.svg | 37 + templates/MongoDB/config.yml | 5 + templates/ghost/0/docker-compose.yml | 4 + templates/ghost/0/rancher-compose.yml | 9 + templates/ghost/catalogIcon-ghost.svg | 317 ++++++++ templates/ghost/config.yml | 5 + templates/odoo/0/docker-compose.yml | 11 + templates/odoo/0/rancher-compose.yml | 8 + templates/odoo/catalogIcon-odoo.svg | 54 ++ templates/odoo/config.yml | 5 + templates/owncloud/0/docker-compose.yml | 12 + templates/owncloud/0/rancher-compose.yml | 9 + templates/owncloud/catalogIcon-owncloud.svg | 762 ++++++++++++++++++ templates/owncloud/config.yml | 5 + templates/rocket.chat/0/docker-compose.yml | 36 + templates/rocket.chat/0/rancher-compose.yml | 10 + .../rocket.chat/catalogIcon-rocket.chat.svg | 140 ++++ templates/rocket.chat/config.yml | 5 + templates/taiga/0/docker-compose.yml | 18 + templates/taiga/0/rancher-compose.yml | 10 + templates/taiga/catalogIcon-taiga.svg | 137 ++++ templates/taiga/config.yml | 5 + templates/wekan/0/docker-compose.yml | 18 + templates/wekan/0/rancher-compose.yml | 10 + templates/wekan/catalogIcon-wekan.svg | 650 +++++++++++++++ templates/wekan/config.yml | 5 + templates/wekan/wekan-logo.png | Bin 0 -> 23760 bytes templates/wordpress/0/docker-compose.yml | 11 + templates/wordpress/0/rancher-compose.yml | 10 + templates/wordpress/catalogIcon-wordpress.svg | 588 ++++++++++++++ templates/wordpress/config.yml | 5 + 34 files changed, 2973 insertions(+) create mode 100644 templates/MongoDB/0/README.md create mode 100644 templates/MongoDB/0/docker-compose.yml create mode 100644 templates/MongoDB/0/rancher-compose.yml create mode 100644 templates/MongoDB/catalogIcon-mongodb.svg create mode 100644 templates/MongoDB/config.yml create mode 100644 templates/ghost/0/docker-compose.yml create mode 100644 templates/ghost/0/rancher-compose.yml create mode 100644 templates/ghost/catalogIcon-ghost.svg create mode 100644 templates/ghost/config.yml create mode 100644 templates/odoo/0/docker-compose.yml create mode 100644 templates/odoo/0/rancher-compose.yml create mode 100644 templates/odoo/catalogIcon-odoo.svg create mode 100644 templates/odoo/config.yml create mode 100644 templates/owncloud/0/docker-compose.yml create mode 100644 templates/owncloud/0/rancher-compose.yml create mode 100644 templates/owncloud/catalogIcon-owncloud.svg create mode 100644 templates/owncloud/config.yml create mode 100644 templates/rocket.chat/0/docker-compose.yml create mode 100644 templates/rocket.chat/0/rancher-compose.yml create mode 100644 templates/rocket.chat/catalogIcon-rocket.chat.svg create mode 100644 templates/rocket.chat/config.yml create mode 100644 templates/taiga/0/docker-compose.yml create mode 100644 templates/taiga/0/rancher-compose.yml create mode 100644 templates/taiga/catalogIcon-taiga.svg create mode 100644 templates/taiga/config.yml create mode 100644 templates/wekan/0/docker-compose.yml create mode 100644 templates/wekan/0/rancher-compose.yml create mode 100644 templates/wekan/catalogIcon-wekan.svg create mode 100644 templates/wekan/config.yml create mode 100644 templates/wekan/wekan-logo.png create mode 100644 templates/wordpress/0/docker-compose.yml create mode 100644 templates/wordpress/0/rancher-compose.yml create mode 100644 templates/wordpress/catalogIcon-wordpress.svg create mode 100644 templates/wordpress/config.yml diff --git a/templates/MongoDB/0/README.md b/templates/MongoDB/0/README.md new file mode 100644 index 0000000..5d1109f --- /dev/null +++ b/templates/MongoDB/0/README.md @@ -0,0 +1,18 @@ +# MongoDB + + +### Info: + + This template creates MongoDB replica set on top of Rancher. Replica set size starts with 3 MongoDB instances, the replica set has the ability to scale up automatically when adding new instances. + + +### Usage: + + Select MongoDB from catalog. + + Enter the name of the replica set. + + Click deploy. + + MongoDB can now be accessed over the Rancher network. + diff --git a/templates/MongoDB/0/docker-compose.yml b/templates/MongoDB/0/docker-compose.yml new file mode 100644 index 0000000..2a4724a --- /dev/null +++ b/templates/MongoDB/0/docker-compose.yml @@ -0,0 +1,35 @@ +mongo-cluster: + restart: always + environment: + MONGO_SERVICE_NAME: mongo-cluster + tty: true + entrypoint: /opt/rancher/bin/entrypoint.sh + command: + - --replSet + - "${replset_name}" + image: mongo:3.0 + labels: + io.rancher.container.hostname_override: container_name + io.rancher.sidekicks: mongo-base, mongo-datavolume + volumes_from: + - mongo-datavolume + - mongo-base +mongo-base: + restart: always + net: none + tty: true + labels: + io.rancher.container.hostname_override: container_name + io.rancher.container.start_once: true + image: rancher/mongodb-conf:v0.1.0 + stdin_open: true + entrypoint: /bin/true +mongo-datavolume: + net: none + labels: + io.rancher.container.hostname_override: container_name + io.rancher.container.start_once: true + volumes: + - /data/db + entrypoint: /bin/true + image: busybox diff --git a/templates/MongoDB/0/rancher-compose.yml b/templates/MongoDB/0/rancher-compose.yml new file mode 100644 index 0000000..3a55cc2 --- /dev/null +++ b/templates/MongoDB/0/rancher-compose.yml @@ -0,0 +1,19 @@ +.catalog: + name: "MongoDB" + version: "3.0.0-rancher1" + description: "MongoDB Replica Set" + uuid: mongodb-0 + minimum_rancher_version: v0.46.0 + questions: + - variable: replset_name + description: "Name of the MongoDB replicaSet" + label: "ReplicaSet Name" + type: "string" + required: true + default: "rs0" +mongo-cluster: + scale: 3 + metadata: + mongo: + yml: + replset.name: "${replset_name}" diff --git a/templates/MongoDB/catalogIcon-mongodb.svg b/templates/MongoDB/catalogIcon-mongodb.svg new file mode 100644 index 0000000..0fd0d97 --- /dev/null +++ b/templates/MongoDB/catalogIcon-mongodb.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/MongoDB/config.yml b/templates/MongoDB/config.yml new file mode 100644 index 0000000..de44927 --- /dev/null +++ b/templates/MongoDB/config.yml @@ -0,0 +1,5 @@ +name: MongoDB +description: | + MongoDB Replica Set. +version: 3.0.0-rancher1 +category: Database diff --git a/templates/ghost/0/docker-compose.yml b/templates/ghost/0/docker-compose.yml new file mode 100644 index 0000000..62a7744 --- /dev/null +++ b/templates/ghost/0/docker-compose.yml @@ -0,0 +1,4 @@ +ghost: + image: ghost + ports: + - "80:2368" diff --git a/templates/ghost/0/rancher-compose.yml b/templates/ghost/0/rancher-compose.yml new file mode 100644 index 0000000..1598eb5 --- /dev/null +++ b/templates/ghost/0/rancher-compose.yml @@ -0,0 +1,9 @@ +.catalog: + name: "Ghost" + version: "v0.1-educaas" + description: "Blog powered by Ghost. Requires no database" + uuid: ghost-0 + minimum_rancher_version: v0.51.0 + questions: + +ghost: diff --git a/templates/ghost/catalogIcon-ghost.svg b/templates/ghost/catalogIcon-ghost.svg new file mode 100644 index 0000000..a2335ec --- /dev/null +++ b/templates/ghost/catalogIcon-ghost.svg @@ -0,0 +1,317 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/templates/ghost/config.yml b/templates/ghost/config.yml new file mode 100644 index 0000000..7458168 --- /dev/null +++ b/templates/ghost/config.yml @@ -0,0 +1,5 @@ +name: Ghost +description: | + Blog powered by Ghost +version: v0.1-educaas +category: Blogging diff --git a/templates/odoo/0/docker-compose.yml b/templates/odoo/0/docker-compose.yml new file mode 100644 index 0000000..1195219 --- /dev/null +++ b/templates/odoo/0/docker-compose.yml @@ -0,0 +1,11 @@ +odoo: + image: odoo + ports: + - "8069:8069" + links: + - db +db: + image: postgres + environment: + - POSTGRES_USER=odoo + - POSTGRES_PASSWORD=odoo diff --git a/templates/odoo/0/rancher-compose.yml b/templates/odoo/0/rancher-compose.yml new file mode 100644 index 0000000..d630867 --- /dev/null +++ b/templates/odoo/0/rancher-compose.yml @@ -0,0 +1,8 @@ +.catalog: + name: "Odoo" + version: "0.1-educaas" + description: "ERP management powered by Odoo" + uuid: odoo-0 + questions: + +odoo: diff --git a/templates/odoo/catalogIcon-odoo.svg b/templates/odoo/catalogIcon-odoo.svg new file mode 100644 index 0000000..305ad4d --- /dev/null +++ b/templates/odoo/catalogIcon-odoo.svg @@ -0,0 +1,54 @@ + + + + + + + + + + + diff --git a/templates/odoo/config.yml b/templates/odoo/config.yml new file mode 100644 index 0000000..7f50781 --- /dev/null +++ b/templates/odoo/config.yml @@ -0,0 +1,5 @@ +name: Odoo +description: | + ERP management powered by Odoo +version: v0.1-educaas +category: ERP diff --git a/templates/owncloud/0/docker-compose.yml b/templates/owncloud/0/docker-compose.yml new file mode 100644 index 0000000..d08460f --- /dev/null +++ b/templates/owncloud/0/docker-compose.yml @@ -0,0 +1,12 @@ +owncloud: + image: owncloud + ports: + - "80:80" + links: + - db + environment: + +db: + image: mariadb + environment: + - MYSQL_ROOT_PASSWORD=password diff --git a/templates/owncloud/0/rancher-compose.yml b/templates/owncloud/0/rancher-compose.yml new file mode 100644 index 0000000..756d515 --- /dev/null +++ b/templates/owncloud/0/rancher-compose.yml @@ -0,0 +1,9 @@ +.catalog: + name: "Owncloud" + version: "v0.1-educaas" + description: "Library service powered by Owncloud" + uuid: odoo-0 + minimum_rancher_version: v0.51.0 + questions: + +owncloud: diff --git a/templates/owncloud/catalogIcon-owncloud.svg b/templates/owncloud/catalogIcon-owncloud.svg new file mode 100644 index 0000000..9ac167c --- /dev/null +++ b/templates/owncloud/catalogIcon-owncloud.svg @@ -0,0 +1,762 @@ + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/templates/owncloud/config.yml b/templates/owncloud/config.yml new file mode 100644 index 0000000..a02f605 --- /dev/null +++ b/templates/owncloud/config.yml @@ -0,0 +1,5 @@ +name: Owncloud +description: | + Library service powered by Owncloud +version: v0.1-educaas +category: Repository diff --git a/templates/rocket.chat/0/docker-compose.yml b/templates/rocket.chat/0/docker-compose.yml new file mode 100644 index 0000000..2637c3c --- /dev/null +++ b/templates/rocket.chat/0/docker-compose.yml @@ -0,0 +1,36 @@ +mongo: + image: mongo +# volumes: +# - ./data/runtime/db:/data/db +# - ./data/dump:/dump + command: mongod --smallfiles --oplogSize 128 + +rocketchat: + image: rocketchat/rocket.chat:latest +# volumes: +# - ./uploads:/app/uploads + environment: + - PORT=3000 + - ROOT_URL=http://yourhost:3000 + - MONGO_URL=mongodb://mongo:27017/rocketchat + links: + - mongo:mongo + ports: + - 3000:3000 + +# hubot, the popular chatbot (add the bot user first and change the password before starting this image) +hubot: + image: rocketchat/hubot-rocketchat + environment: + - ROCKETCHAT_URL=rocketchat:3000 + - ROCKETCHAT_ROOM=GENERAL + - ROCKETCHAT_USER=bot + - ROCKETCHAT_PASSWORD=botpassword + - BOT_NAME=bot +# you can add more scripts as you'd like here, they need to be installable by npm + - EXTERNAL_SCRIPTS=hubot-help,hubot-seen,hubot-links,hubot-diagnostics + links: + - rocketchat:rocketchat +# this is used to expose the hubot port for notifications on the host on port 3001, e.g. for hubot-jenkins-notifier + ports: + - 3001:8080 diff --git a/templates/rocket.chat/0/rancher-compose.yml b/templates/rocket.chat/0/rancher-compose.yml new file mode 100644 index 0000000..03e9beb --- /dev/null +++ b/templates/rocket.chat/0/rancher-compose.yml @@ -0,0 +1,10 @@ +.catalog: + name: "RocketChat" + version: "v0.1-educaas" + description: "Have your own Slack like online chat, built with Meteor." + uuid: rocketchat-0 + minimum_rancher_version: v0.51.0 + questions: + + +rocketchat: diff --git a/templates/rocket.chat/catalogIcon-rocket.chat.svg b/templates/rocket.chat/catalogIcon-rocket.chat.svg new file mode 100644 index 0000000..7473ef0 --- /dev/null +++ b/templates/rocket.chat/catalogIcon-rocket.chat.svg @@ -0,0 +1,140 @@ + + + +image/svg+xml \ No newline at end of file diff --git a/templates/rocket.chat/config.yml b/templates/rocket.chat/config.yml new file mode 100644 index 0000000..0cd19d3 --- /dev/null +++ b/templates/rocket.chat/config.yml @@ -0,0 +1,5 @@ +name: RocketChat +description: | + Have your own Slack like online chat, built with Meteor. +version: v0.1-educaas +category: Chat diff --git a/templates/taiga/0/docker-compose.yml b/templates/taiga/0/docker-compose.yml new file mode 100644 index 0000000..4db16a4 --- /dev/null +++ b/templates/taiga/0/docker-compose.yml @@ -0,0 +1,18 @@ +postgres: + image: postgres + +taigaback: + image: ipedrazas/taiga-back + links: + - postgres:postgres + ports: + - "8000:8000" + +taigafront: + image: ipedrazas/taiga-front + links: + - taigaback:taiga-back + ports: + - "80:80" + environment: + - "API_NAME=boot2docker" diff --git a/templates/taiga/0/rancher-compose.yml b/templates/taiga/0/rancher-compose.yml new file mode 100644 index 0000000..8fa4baf --- /dev/null +++ b/templates/taiga/0/rancher-compose.yml @@ -0,0 +1,10 @@ +.catalog: + name: "Taiga" + version: "v0.1-educaas" + description: "Project management platform for agile developers" + uuid: taiga-0 + minimum_rancher_version: v0.51.0 + questions: + + +taiga: diff --git a/templates/taiga/catalogIcon-taiga.svg b/templates/taiga/catalogIcon-taiga.svg new file mode 100644 index 0000000..eb4edb5 --- /dev/null +++ b/templates/taiga/catalogIcon-taiga.svg @@ -0,0 +1,137 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/taiga/config.yml b/templates/taiga/config.yml new file mode 100644 index 0000000..553729a --- /dev/null +++ b/templates/taiga/config.yml @@ -0,0 +1,5 @@ +name: Taiga +description: | + Project management platform for agile developers +version: v0.1-educaas1 +category: Agile diff --git a/templates/wekan/0/docker-compose.yml b/templates/wekan/0/docker-compose.yml new file mode 100644 index 0000000..c611526 --- /dev/null +++ b/templates/wekan/0/docker-compose.yml @@ -0,0 +1,18 @@ +wekandb: + image: mongo +# volumes: +# - ./data/runtime/db:/data/db +# - ./data/dump:/dump + command: mongod --smallfiles --oplogSize 128 + ports: + - 27017 + +wekan: + image: mquandalle/wekan + links: + - wekandb + environment: + - MONGO_URL=mongodb://wekandb/wekan + - ROOT_URL=http://localhost:80 + ports: + - 80:80 diff --git a/templates/wekan/0/rancher-compose.yml b/templates/wekan/0/rancher-compose.yml new file mode 100644 index 0000000..3aa1d2f --- /dev/null +++ b/templates/wekan/0/rancher-compose.yml @@ -0,0 +1,10 @@ +.catalog: + name: "Wekan" + version: "v0.1-educaas" + description: "The open-source Trello-like kanban (build with Meteor)" + uuid: cloudflare-0 + minimum_rancher_version: v0.51.0 + questions: + + +wekan: diff --git a/templates/wekan/catalogIcon-wekan.svg b/templates/wekan/catalogIcon-wekan.svg new file mode 100644 index 0000000..86eb28c --- /dev/null +++ b/templates/wekan/catalogIcon-wekan.svg @@ -0,0 +1,650 @@ + + + +image/svg+xml \ No newline at end of file diff --git a/templates/wekan/config.yml b/templates/wekan/config.yml new file mode 100644 index 0000000..ac486b3 --- /dev/null +++ b/templates/wekan/config.yml @@ -0,0 +1,5 @@ +name: Wekan +description: | + The open-source Trello-like kanban (build with Meteor) +version: v0.1-educaas +category: Kanban diff --git a/templates/wekan/wekan-logo.png b/templates/wekan/wekan-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..457e02e6b7f7611bc3d3e878a9bfa65501cce76f GIT binary patch literal 23760 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 LNkvXXu0mjf`jj77 literal 0 HcmV?d00001 diff --git a/templates/wordpress/0/docker-compose.yml b/templates/wordpress/0/docker-compose.yml new file mode 100644 index 0000000..cfa4ec0 --- /dev/null +++ b/templates/wordpress/0/docker-compose.yml @@ -0,0 +1,11 @@ +wordpress: + image: wordpress + links: + - db:mysql + ports: + - 80:80 + +db: + image: mariadb + environment: + MYSQL_ROOT_PASSWORD: example diff --git a/templates/wordpress/0/rancher-compose.yml b/templates/wordpress/0/rancher-compose.yml new file mode 100644 index 0000000..e45674a --- /dev/null +++ b/templates/wordpress/0/rancher-compose.yml @@ -0,0 +1,10 @@ +.catalog: + name: "Wordpress" + version: "v0.1-educaas" + description: "Blog tool, publishing platform and CMS" + uuid: Wordpress-0 + minimum_rancher_version: v0.51.0 + questions: + + +wordpress: diff --git a/templates/wordpress/catalogIcon-wordpress.svg b/templates/wordpress/catalogIcon-wordpress.svg new file mode 100644 index 0000000..7739575 --- /dev/null +++ b/templates/wordpress/catalogIcon-wordpress.svg @@ -0,0 +1,588 @@ + + + +image/svg+xml \ No newline at end of file diff --git a/templates/wordpress/config.yml b/templates/wordpress/config.yml new file mode 100644 index 0000000..d92812a --- /dev/null +++ b/templates/wordpress/config.yml @@ -0,0 +1,5 @@ +name: Wordpress +description: | + Blog tool, publishing platform and CMS +version: v0.1-educaas1 +category: Blog