diff --git a/templates/nuxeo/0/README.md b/templates/nuxeo/0/README.md new file mode 100644 index 0000000..385cc30 --- /dev/null +++ b/templates/nuxeo/0/README.md @@ -0,0 +1,13 @@ +# Nuxeo + + +This templates deploys a Nuxeo server with all its companions (Elasticsearch, Redis and Postgres) to be able to run Nuxeo on top of you Rancher infrastructure + + +# How to use it ? + +Just create and launch the stack. After that, you have to point a load balancer of you infrasctructure to the internal stack load balancer. + +We made this choice, since it allows to start several Nuxeo server instance on the same infrastructure. + +After that you can login with the regular user/password combination Administrator/Administrator. \ No newline at end of file diff --git a/templates/nuxeo/0/docker-compose.yml b/templates/nuxeo/0/docker-compose.yml new file mode 100644 index 0000000..2bb88b2 --- /dev/null +++ b/templates/nuxeo/0/docker-compose.yml @@ -0,0 +1,94 @@ +postgres-datavolume: + labels: + io.rancher.container.start_once: 'true' + io.rancher.container.hostname_override: container_name + image: nuxeo/postgres + entrypoint: chown -R postgres:postgres /var/lib/postgresql/data + volume_driver: ${volumedriver} + volumes: + - nuxeo-postgres:/var/lib/postgresql/data + +postgres: + image: nuxeo/postgres + environment: + - POSTGRES_USER=nuxeo + - POSTGRES_PASSWORD=nuxeo + labels: + io.rancher.sidekicks: postgres-datavolume + io.rancher.container.hostname_override: container_name + volumes_from: + - postgres-datavolume + +# Copied from default Rancher ES Stack : don't modifiy service names +elasticsearch-masters: + image: rancher/elasticsearch-conf:v0.4.0 + labels: + io.rancher.container.hostname_override: container_name + io.rancher.sidekicks: elasticsearch-base-master,elasticsearch-datavolume-masters +elasticsearch-datavolume-masters: + labels: + elasticsearch.datanode.config.version: '0' + io.rancher.container.hostname_override: container_name + io.rancher.container.start_once: true + entrypoint: /bin/true + image: elasticsearch:1.7.3 + volume_driver: ${volumedriver} +elasticsearch-base-master: + labels: + elasticsearch.master.config.version: '0' + io.rancher.container.hostname_override: container_name + image: elasticsearch:1.7.3 + net: "container:elasticsearch-masters" + volumes_from: + - elasticsearch-masters + - elasticsearch-datavolume-masters + entrypoint: + - /opt/rancher/bin/run.sh + + +redis: + labels: + io.rancher.container.hostname_override: container_name + tty: true + image: redis:3.0.3 + stdin_open: true + +nuxeo-datavolume: + labels: + io.rancher.container.start_once: 'true' + io.rancher.container.hostname_override: container_name + image: nuxeo + entrypoint: /bin/true + volume_driver: ${volumedriver} + volumes: + - /var/lib/nuxeo/data + - /var/log/nuxeo + +nuxeo: + environment: + NUXEO_CLID: ${clid} + NUXEO_PACKAGES: ${packages} + NUXEO_DB_HOST: postgres + NUXEO_DB_TYPE: postgresql + NUXEO_ES_HOSTS: elasticsearch:9300 + NUXEO_DATA: /data/nuxeo/data/ + NUXEO_LOG: /data/nuxeo/log/ + labels: + io.rancher.sidekicks: nuxeo-datavolume + io.rancher.container.hostname_override: container_name + io.rancher.scheduler.affinity:container_label_ne: io.rancher.stack_service.name=$${stack_name}/$${service_name} + image: nuxeo:FT + links: + - redis:redis + - postgres:postgres + - elasticsearch-masters:elasticsearch + volumes_from: + - nuxeo-datavolume + +lb: + expose: + - 80:8080 + image: rancher/load-balancer-service + links: + - nuxeo:nuxeo + diff --git a/templates/nuxeo/0/rancher-compose.yml b/templates/nuxeo/0/rancher-compose.yml new file mode 100644 index 0000000..b440f0a --- /dev/null +++ b/templates/nuxeo/0/rancher-compose.yml @@ -0,0 +1,63 @@ +.catalog: + name: "Nuxeo Platform" + version: "rancher-1.0" + description: | + Enterprise Content Management + Platform for Business Applications + uuid: nuxeo-1 + questions: + - variable: clid + description: "A valid CLID to be able to download packages from Nuxeo Online Services. in the form part1\npart2" + label: "CLID" + type: "string" + required: false + default: "" + - variable: "packages" + type: "string" + label: "List of Nuxeo packages" + description: | + List of Nuxeo packages + default: nuxeo-web-mobile nuxeo-drive nuxeo-diff nuxeo-spreadsheet nuxeo-dam nuxeo-template-rendering nuxeo-template-rendering-samples nuxeo-showcase-content + - variable: "volumedriver" + type: "string" + label: "Volume driver" + description: | + Specifiy docker volume driver to use + default: local + +nuxeo: + scale: 1 + health_check: + port: 8080 + # Interval is measured in milliseconds + interval: 5000 + unhealthy_threshold: 5 + # For TCP, request_line needs to be '' + # TCP Example: + # request_line: '' + request_line: GET /nuxeo/login.jsp + healthy_threshold: 2 + # Response timeout is measured in milliseconds + response_timeout: 2000 + +elasticsearch: + metadata: + elasticsearch: + yml: + cluster.name: "${cluster_name}" + node.name: "$${HOSTNAME}" + node.data: "true" + node.master: "true" + +lb: + scale: 1 + load_balancer_config: + lb_cookie_stickiness_policy: + cookie: lbsticky + haproxy_config: {} + health_check: + port: 42 + interval: 2000 + unhealthy_threshold: 3 + healthy_threshold: 2 + response_timeout: 2000 \ No newline at end of file diff --git a/templates/nuxeo/catalogIcon-nuxeo.svg b/templates/nuxeo/catalogIcon-nuxeo.svg new file mode 100644 index 0000000..734dde6 --- /dev/null +++ b/templates/nuxeo/catalogIcon-nuxeo.svg @@ -0,0 +1,172 @@ + +image/svg+xml \ No newline at end of file diff --git a/templates/nuxeo/config.yml b/templates/nuxeo/config.yml new file mode 100644 index 0000000..1077e5d --- /dev/null +++ b/templates/nuxeo/config.yml @@ -0,0 +1,6 @@ +name: Nuxeo Platform +description: | + Enterprise Content Management + Platform for Business Applications +version: 8.1 +category: ECM