From fdd48de7e3d3088354607c03af1559f30056fa8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio?= Date: Sun, 5 Jul 2020 21:20:51 +0300 Subject: [PATCH] [WIP] Influxdb one click app (#211) * First draft for influxdb one click app * Add influx logo * Add start and end * lowercase logo filename * Run prettier --- public/v2/apps/influxdb.json | 118 +++++++++++++++++++++++++++++++++++ public/v2/logos/influxdb.png | Bin 0 -> 27634 bytes 2 files changed, 118 insertions(+) create mode 100644 public/v2/apps/influxdb.json create mode 100644 public/v2/logos/influxdb.png diff --git a/public/v2/apps/influxdb.json b/public/v2/apps/influxdb.json new file mode 100644 index 0000000..89731a0 --- /dev/null +++ b/public/v2/apps/influxdb.json @@ -0,0 +1,118 @@ +{ + "captainVersion": "2", + "documentation": "Taken from https://hub.docker.com/_/influxdb", + "displayName": "InfluxDb", + "description": "InfluxDB is a time series database built from the ground up to handle high write and query loads. InfluxDB is meant to be used as a backing store for any use case involving large amounts of timestamped data, including DevOps monitoring, application metrics, IoT sensor data, and real-time analytics.", + "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" + } + ] +} diff --git a/public/v2/logos/influxdb.png b/public/v2/logos/influxdb.png new file mode 100644 index 0000000000000000000000000000000000000000..ca5eb53742edb3c0614cf5f920940e421203c37b GIT binary patch literal 27634 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

NG6H+#HJ8EAiKL; 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 b