From 1ec46526f8dd4c65e5447b9af0b2cf4f904e124d Mon Sep 17 00:00:00 2001 From: Kasra Bigdeli Date: Sun, 5 Apr 2020 12:26:59 -0400 Subject: [PATCH] Added outline --- public/v2/apps/outline.json | 134 ++++++++++++++++++++++++++++++++++++ public/v2/logos/outline.png | Bin 0 -> 17702 bytes 2 files changed, 134 insertions(+) create mode 100644 public/v2/apps/outline.json create mode 100644 public/v2/logos/outline.png diff --git a/public/v2/apps/outline.json b/public/v2/apps/outline.json new file mode 100644 index 0000000..565349c --- /dev/null +++ b/public/v2/apps/outline.json @@ -0,0 +1,134 @@ +{ + "captainVersion": "2", + "documentation": "Taken from https://github.com/outline/outline/blob/master/docker-compose.yml", + "displayName": "Outline", + "description": "An open, extensible, wiki for your team built using React and Node.js.", + "dockerCompose": { + "services": { + "$$cap_appname-redis": { + "image": "redis:5", + "notExposeAsWebApp": "true" + }, + "$$cap_appname-fakes3": { + "image": "lphoward/fake-s3", + "volumes": [ + "$$cap_appname-fakes3:/fakes3_root" + ], + "notExposeAsWebApp": "true" + }, + "$$cap_appname-db": { + "image": "postgres:12.2", + "notExposeAsWebApp": "true", + "volumes": [ + "$$cap_appname-db-data:/var/lib/postgresql/data" + ], + "restart": "always", + "environment": { + "POSTGRES_USER": "$$cap_db_user", + "POSTGRES_PASSWORD": "$$cap_db_pass", + "POSTGRES_DB": "outline" + } + }, + "$$cap_appname-outline": { + "depends_on": [ + "$$cap_appname-fakes3", + "$$cap_appname-redis", + "$$cap_appname-db" + ], + "image": "outlinewiki/outline:$$cap_outline_version", + "environment": { + "SECRET_KEY": "$$cap_secret_key", + "UTILS_SECRET": "$$cap_utils_secret", + + "AWS_ACCESS_KEY_ID": "get_a_key_from_aws", + "AWS_SECRET_ACCESS_KEY": "get_the_secret_of_above_key", + "AWS_REGION": "xx-xxxx-x", + "AWS_S3_UPLOAD_BUCKET_URL": "http://srv-captain--$$cap_appname-fakes3:4569", + "AWS_S3_UPLOAD_BUCKET_NAME": "bucket_name_here", + "AWS_S3_UPLOAD_MAX_SIZE": "26214400", + "AWS_S3_ACL": "private", + + "SLACK_KEY": "$$cap_slack_key", + "SLACK_SECRET": "$$cap_slack_secret", + "GOOGLE_CLIENT_ID": "$$cap_google_client_id", + "GOOGLE_CLIENT_SECRET": "$$cap_google_client_secret", + + "FORCE_HTTPS": "false", + + "DEPLOYMENT": "self", + "ENABLE_UPDATES": "false", + "SUBDOMAINS_ENABLED": "false", + "WEBSOCKETS_ENABLED": "false", + "DEBUG": "cache,presenters,events", + + "URL": "https://$$cap_appname-outline.$$cap_root_domain", + "PORT": "80", + + "REDIS_URL": "redis://srv-captain--$$cap_appname-redis:6379", + "DATABASE_URL_TEST": "postgres://$$cap_db_user:$$cap_db_pass@srv-captain--$$cap_appname-db:5432/outline-test", + "DATABASE_URL": "postgres://$$cap_db_user:$$cap_db_pass@srv-captain--$$cap_appname-db:5432/outline" + } + } + } + }, + "instructions": { + "start": "Outline is an open, extensible, wiki for your team built using React and Node.js.", + "end": "IMPORTANT: before you start using Outline, you need to \n\n 1) enable HTTPS \n 2) Force HTTPS \n 3) Enable Websocket in $$cap_appname-outline. You can customize more settings by environmental variables described here: https://github.com/outline/outline/blob/0deecfac446c37545e0787b3d32062e608a950ab/.env.sample \n\n IMPORTANT: It will take up to 2 minutes for it to be ready. Before that, you might see a 502 error page.\n" + }, + "variables": [{ + "id": "$$cap_db_user", + "label": "Database user", + "defaultValue": "outlineuser", + "validRegex": "/^([a-zA-Z0-9])+$/" + }, + { + "id": "$$cap_db_pass", + "label": "Database password", + "description": "", + "validRegex": "/.{8,}/" + }, + { + "id": "$$cap_slack_key", + "label": "Slack Key", + "description": "IMPORTANT: You need to, at least, set one 3rd party login method, either Slack or Google", + "defaultValue": "get_a_key_from_slack" + }, + { + "id": "$$cap_slack_secret", + "label": "Slack Secret", + "description": "", + "defaultValue": "get_the_secret_of_above_key" + }, + { + "id": "$$cap_google_client_id", + "label": "Google Client ID" + }, + { + "id": "$$cap_google_client_secret", + "label": "Google Client Secret", + "description": "" + }, + { + "id": "$$cap_secret_key", + "label": "SECRET_KEY", + "description": "Run this command to generate a key: openssl rand -hex 32", + "defaultValue": "c63eaeed7ee7459098e2901ed87c8b70817428b85fbe3ef59cb6a79abb2bbf4a", + "validRegex": "/^([0-9a-f]){64}$/" + }, + { + "id": "$$cap_utils_secret", + "label": "UTILS_SECRET", + "description": "Run this command to generate a key: openssl rand -hex 32", + "defaultValue": "c9b4d178130f53efc7419eaec9a2e764481269c9602c2ef2e541bdadc63b5bbf", + "validRegex": "/^([0-9a-f]){64}$/" + }, + { + "id": "$$cap_outline_version", + "label": "Outline Version", + "defaultValue": "version-0.41.0", + "description": "Check out their page for the valid tags https://hub.docker.com/r/outlinewiki/outline/tags", + "validRegex": "/^([^\\s^\\/])+$/" + } + ] + +} \ No newline at end of file diff --git a/public/v2/logos/outline.png b/public/v2/logos/outline.png new file mode 100644 index 0000000000000000000000000000000000000000..35c78f28e36417b0d1fc33ec937c9688f0656302 GIT binary patch literal 17702 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