From 7398a710b6493b9a3cf1f3fb5a183e6f97c874fc Mon Sep 17 00:00:00 2001 From: Andre Kutianski Date: Fri, 9 Dec 2022 22:58:45 -0300 Subject: [PATCH] add Greenlight to one-click-apps (#805) --- public/v4/apps/greenlight.yml | 217 +++++++++++++++++++++++++++++++++ public/v4/logos/greenlight.png | Bin 0 -> 18804 bytes 2 files changed, 217 insertions(+) create mode 100644 public/v4/apps/greenlight.yml create mode 100644 public/v4/logos/greenlight.png diff --git a/public/v4/apps/greenlight.yml b/public/v4/apps/greenlight.yml new file mode 100644 index 0000000..a8d3c4b --- /dev/null +++ b/public/v4/apps/greenlight.yml @@ -0,0 +1,217 @@ +captainVersion: 4 +services: + $$cap_appname-greenlight: + image: bigbluebutton/greenlight:v2 + volumes: + - $$cap_appname-greenlight-log:/usr/src/app/log + - $$cap_appname-greenlight-storage:/usr/src/app/storage + caproverExtra: + containerHttpPort: '80' + environment: + SECRET_KEY_BASE: $$cap_SECRET_KEY_BASE + BIGBLUEBUTTON_ENDPOINT: $$cap_BIGBLUEBUTTON_ENDPOINT + BIGBLUEBUTTON_SECRET: $$cap_BIGBLUEBUTTON_SECRET + SAFE_HOSTS: $$cap_SAFE_HOSTS + ALLOW_GREENLIGHT_ACCOUNTS: $$cap_ALLOW_GREENLIGHT_ACCOUNTS + RECAPTCHA_SITE_KEY: $$cap_RECAPTCHA_SITE_KEY + RECAPTCHA_SECRET_KEY: $$cap_RECAPTCHA_SECRET_KEY + GOOGLE_ANALYTICS_TRACKING_ID: $$cap_GOOGLE_ANALYTICS_TRACKING_ID + ALLOW_MAIL_NOTIFICATIONS: $$cap_ALLOW_MAIL_NOTIFICATIONS + SMTP_SERVER: $$cap_SMTP_SERVER + SMTP_PORT: $$cap_SMTP_PORT + SMTP_DOMAIN: $$cap_SMTP_DOMAIN + SMTP_USERNAME: $$cap_SMTP_USERNAME + SMTP_PASSWORD: $$cap_SMTP_PASSWORD + SMTP_AUTH: $$cap_SMTP_AUTH + SMTP_STARTTLS_AUTO: $$cap_SMTP_STARTTLS_AUTO + SMTP_SENDER: $$cap_SMTP_SENDER + SMTP_TEST_RECIPIENT: $$cap_SMTP_TEST_RECIPIENT + RELATIVE_URL_ROOT: '/' + ROOM_FEATURES: $$cap_ROOM_FEATURES + PAGINATION_NUMBER: $$cap_PAGINATION_NUMBER + NUMBER_OF_ROWS: $$cap_NUMBER_OF_ROWS + ENABLE_GOOGLE_CALENDAR_BUTTON: $$cap_ENABLE_GOOGLE_CALENDAR_BUTTON + MAINTENANCE_MODE: $$cap_MAINTENANCE_MODE + MAINTENANCE_WINDOW: $$cap_MAINTENANCE_WINDOW + HELP_URL: $$cap_HELP_URL + ENABLE_SSL: $$cap_ENABLE_SSL + DB_ADAPTER: $$cap_DB_ADAPTER + DB_HOST: $$cap_DB_HOST + DB_PORT: $$cap_DB_PORT + DB_NAME: $$cap_DB_NAME + DB_USERNAME: $$cap_DB_USERNAME + DB_PASSWORD: $$cap_DB_PASSWORD + CABLE_ADAPTER: $$cap_CABLE_ADAPTER + DEFAULT_REGISTRATION: $$cap_DEFAULT_REGISTRATION + AWS_ACCESS_KEY_ID: $$cap_AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY: $$cap_AWS_SECRET_ACCESS_KEY + AWS_REGION: $$cap_AWS_REGION + AWS_BUCKET: $$cap_AWS_BUCKET + WEB_CONCURRENCY: $$cap_WEB_CONCURRENCY +caproverOneClickApp: + variables: + - id: $$cap_SECRET_KEY_BASE + description: Create a Secret Key for Rails + label: SECRET_KEY_BASE + defaultValue: $$cap_gen_random_hex(32) + - id: $$cap_BIGBLUEBUTTON_ENDPOINT + description: The endpoint for your BigBlueButton + defaultValue: https://scalelite.eunarede.stream/bigbluebutton/ + label: BIGBLUEBUTTON_ENDPOINT + - id: $$cap_BIGBLUEBUTTON_SECRET + description: The secret for your BigBlueButton + label: BIGBLUEBUTTON_SECRET + - id: $$cap_SAFE_HOSTS + description: The hostname that the application is accessible + label: SAFE_HOSTS + defaultValue: $$cap_appname.$$cap_root_domain + - id: $$cap_ALLOW_GREENLIGHT_ACCOUNTS + description: Set this to true if you want GreenLight to support user signup + label: ALLOW_GREENLIGHT_ACCOUNTS + defaultValue: 'true' + - id: $$cap_DEFAULT_REGISTRATION + description: Specify the default registration to be used by Greenlight + label: DEFAULT_REGISTRATION + defaultValue: 'open' + - id: $$cap_WEB_CONCURRENCY + description: The amount of workers (separate processes) used by the web server + label: WEB_CONCURRENCY + defaultValue: '2' + - id: $$cap_ENABLE_SSL + description: ENABLE_SSL + label: ENABLE_SSL + defaultValue: 'false' + - id: $$cap_ROOM_FEATURES + description: Specify which settings you would like the users to configure on room + label: ROOM_FEATURES + defaultValue: 'mute-on-join,require-moderator-approval,anyone-can-start,all-join-moderator,recording' + - id: $$cap_PAGINATION_NUMBER + description: Specify the maximum number of records to be sent to the BigBlueButton API in one call + label: PAGINATION_NUMBER + defaultValue: '10' + - id: $$cap_NUMBER_OF_ROWS + description: Specify the maximum number of rows that should be displayed per page for a paginated table + label: NUMBER_OF_ROWS + defaultValue: '10' + - id: $$cap_ENABLE_GOOGLE_CALENDAR_BUTTON + description: ENABLE_GOOGLE_CALENDAR_BUTTON + label: ENABLE_GOOGLE_CALENDAR_BUTTON + defaultValue: 'true' + - id: $$cap_GOOGLE_ANALYTICS_TRACKING_ID + description: GOOGLE_ANALYTICS_TRACKING_ID + label: GOOGLE_ANALYTICS_TRACKING_ID + defaultValue: '' + - id: $$cap_RECAPTCHA_SITE_KEY + description: RECAPTCHA_SITE_KEY + label: RECAPTCHA_SITE_KEY + defaultValue: '' + - id: $$cap_RECAPTCHA_SECRET_KEY + description: RECAPTCHA_SECRET_KEY + label: RECAPTCHA_SECRET_KEY + defaultValue: '' + - id: $$cap_DB_ADAPTER + description: DB_ADAPTER + label: DB_ADAPTER + defaultValue: 'postgresql' + - id: $$cap_CABLE_ADAPTER + description: CABLE_ADAPTER + label: CABLE_ADAPTER + defaultValue: 'postgresql' + - id: $$cap_DB_HOST + description: DB_HOST + label: DB_HOST + defaultValue: 'srv-captain--postgres-db' + - id: $$cap_DB_PORT + description: DB_PORT + label: DB_PORT + defaultValue: '5432' + - id: $$cap_DB_NAME + description: DB_NAME + label: DB_NAME + - id: $$cap_DB_USERNAME + description: DB_USERNAME + label: DB_USERNAME + defaultValue: 'postgres' + - id: $$cap_DB_PASSWORD + description: DB_PASSWORD + label: DB_PASSWORD + - id: $$cap_ALLOW_MAIL_NOTIFICATIONS + description: ALLOW_MAIL_NOTIFICATIONS + label: ALLOW_MAIL_NOTIFICATIONS + defaultValue: 'false' + - id: $$cap_SMTP_TEST_RECIPIENT + description: SMTP_TEST_RECIPIENT + label: SMTP_TEST_RECIPIENT + defaultValue: '' + - id: $$cap_SMTP_SERVER + description: SMTP_SERVER + label: SMTP_SERVER + defaultValue: '' + - id: $$cap_SMTP_PORT + description: SMTP_PORT + label: SMTP_PORT + defaultValue: '' + - id: $$cap_SMTP_DOMAIN + description: SMTP_DOMAIN + label: SMTP_DOMAIN + defaultValue: '' + - id: $$cap_SMTP_USERNAME + description: SMTP_USERNAME + label: SMTP_USERNAME + defaultValue: '' + - id: $$cap_SMTP_PASSWORD + description: SMTP_PASSWORD + label: SMTP_PASSWORD + defaultValue: '' + - id: $$cap_SMTP_AUTH + description: SMTP_AUTH + label: SMTP_AUTH + defaultValue: '' + - id: $$cap_SMTP_STARTTLS_AUTO + description: SMTP_STARTTLS_AUTO + label: SMTP_STARTTLS_AUTO + defaultValue: '' + - id: $$cap_SMTP_SENDER + description: SMTP_SENDER + label: SMTP_SENDER + defaultValue: '' + - id: $$cap_MAINTENANCE_MODE + description: MAINTENANCE_MODE + label: MAINTENANCE_MODE + defaultValue: '' + - id: $$cap_MAINTENANCE_WINDOW + description: MAINTENANCE_WINDOW + label: MAINTENANCE_WINDOW + defaultValue: '' + - id: $$cap_HELP_URL + description: HELP_URL + label: HELP_URL + defaultValue: '#' + - id: $$cap_AWS_ACCESS_KEY_ID + description: AWS_ACCESS_KEY_ID + label: AWS_ACCESS_KEY_ID + defaultValue: '' + - id: $$cap_AWS_SECRET_ACCESS_KEY + description: AWS_SECRET_ACCESS_KEY + label: AWS_SECRET_ACCESS_KEY + defaultValue: '' + - id: $$cap_AWS_REGION + description: AWS_REGION + label: AWS_REGION + defaultValue: '' + - id: $$cap_AWS_BUCKET + description: AWS_BUCKET + label: AWS_BUCKET + defaultValue: '' + instructions: + start: >- + Greenlight 2.0 (referred hereafter as simply “Greenlight”) is a Ruby on Rails application that provides a simple interface for users to create rooms, start meetings, and manage recordings. + + Remember that this app will not create a Database by itself. You need to provide all that information. + end: >- + Greenlight is deployed and available as $$cap_appname-wordpress . + + IMPORTANT: It will take up to 2 minutes for Greenlight to be ready. Before that, you might see a 502 error page. + displayName: Greenlight (no database) + description: This will create a Greenlight only. You will need to create and configure the database information manually. Intended for advanced users. + documentation: Taken from https://docs.bigbluebutton.org/greenlight/gl-overview.html. diff --git a/public/v4/logos/greenlight.png b/public/v4/logos/greenlight.png new file mode 100644 index 0000000000000000000000000000000000000000..3d2ec29b019b65703fa77d663139e0cc930b5974 GIT binary patch literal 18804 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 BNF@LO literal 0 HcmV?d00001