From d081b64ce277966f1d7fac2ba2eabf8675524231 Mon Sep 17 00:00:00 2001 From: Boris Mann Date: Tue, 15 Jan 2019 19:04:03 -0800 Subject: [PATCH] Heroku deploy support (#861) * Adding app.json for Heroku -- Procfile already exists * Removed required false and changed values to strings * Required is required! * Tested and working install * Apply suggestions from code review Thanks to @tommoor for updating the descriptions for items I wasn't sure about. Added! Co-Authored-By: bmann * missing coma --- app.json | 143 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 143 insertions(+) create mode 100644 app.json diff --git a/app.json b/app.json new file mode 100644 index 000000000..f2ee9849d --- /dev/null +++ b/app.json @@ -0,0 +1,143 @@ +{ + "name": "Outline", + "description": "Open source wiki and knowledge base for growing teams", + "website": "https://www.getoutline.com/", + "repository": "https://github.com/outline/outline", + "keywords": [ + "wiki", + "team", + "node", + "markdown", + "slack" + ], + "success_url": "/", + "formation": { + "web": { + "quantity": 1, + "size": "Hobby" + } + }, + "image": "heroku/node", + "addons": [ + { + "plan": "heroku-redis" + }, + { + "plan": "heroku-postgresql" + } + ], + "scripts": { + "postdeploy": "yarn sequelize db:migrate" + }, + "env": { + "SECRET_KEY": { + "description": "A secret key", + "generator": "secret", + "required": true + }, + "DEPLOYMENT": { + "description": "Should be 'self' for self hosted installations, turns off things like pricing pages", + "value": "self", + "required": true + }, + "ENABLE_UPDATES": { + "value": "true", + "required": true + }, + "SUBDOMAINS_ENABLED": { + "value": "false", + "required": true, + "description": "Allows each team to have a different subdomain. Not recommend when self hosting" + }, + "URL": { + "description": "https://{your app name}.herokuapp.com", + "required": true + }, + "GOOGLE_CLIENT_ID": { + "description": "See https://developers.google.com/identity/protocols/OAuth2 to create a new Google OAuth client. You must configure at least one of Slack or Google to control login.", + "required": false + }, + "GOOGLE_CLIENT_SECRET": { + "description": "", + "required": false + }, + "GOOGLE_ALLOWED_DOMAINS": { + "description": "Comma separated list of domains to be allowed (optional). If not set, all Google apps domains are allowed by default", + "required": false + }, + "SLACK_KEY": { + "description": "See https://api.slack.com/apps to create a new Slack app. You must configure at least one of Slack or Google to control login.", + "required": false + }, + "SLACK_SECRET": { + "description": "Your Slack client secret - d2dc414f9953226bad0a356cXXXXYYYY", + "required": false + }, + "SLACK_VERIFICATION_TOKEN": { + "description": "Your Slack verification token - PLxk6OlXXXXXVj3YYYY", + "required": false + }, + "SLACK_APP_ID": { + "description": "A0XXXXXXXXX", + "required": false + }, + "AWS_ACCESS_KEY_ID": { + "description": "Needed to save file uploads. Optional for dev / testing.", + "required": false + }, + "AWS_SECRET_ACCESS_KEY": { + "description": "", + "required": false + }, + "AWS_S3_UPLOAD_BUCKET_NAME": { + "description": "yourbucket.example.com", + "required": false + }, + "AWS_S3_UPLOAD_BUCKET_URL": { + "description": "Live web link to your bucket. For CNAMEs, https://yourbucket.example.com", + "required": false + }, + "AWS_S3_UPLOAD_MAX_SIZE": { + "description": "Maximum file upload size in bytes", + "value": "26214400", + "required": false + }, + "SMTP_HOST": { + "description": "smtp.example.com (optional)", + "required": false + }, + "SMTP_PORT": { + "description": "1234 (optional)", + "required": false + }, + "SMTP_USERNAME": { + "description": "me@example.com (optional)", + "required": false + }, + "SMTP_PASSWORD": { + "description": "(optional)", + "required": false + }, + "SMTP_FROM_EMAIL": { + "description": "wiki@example.com (optional)", + "required": false + }, + "SMTP_REPLY_EMAIL": { + "description": "wikireply@example.com (optional)", + "required": false + }, + "GOOGLE_ANALYTICS_ID": { + "description": "UA-xxxx (optional)", + "required": false + }, + "BUGSNAG_KEY": { + "description": "An API key for bugsnag if you wish to collect error reporting (optional)", + "required": false + }, + "GITHUB_ACCESS_TOKEN": { + "description": "An API token for GitHub, optional for self hosted (optional)", + "required": false + } + + } + }