From 98ccaefdd32bc90911b21b3f9cb8349f1e1dcf73 Mon Sep 17 00:00:00 2001 From: Christophe Marois Date: Wed, 2 Jun 2021 08:33:07 -0400 Subject: [PATCH] Add NocoDB (#437) --- public/v4/apps/nocodb.yml | 59 +++++++++++++++++++++++++++++++++++++ public/v4/logos/nocodb.png | Bin 0 -> 13262 bytes 2 files changed, 59 insertions(+) create mode 100644 public/v4/apps/nocodb.yml create mode 100644 public/v4/logos/nocodb.png diff --git a/public/v4/apps/nocodb.yml b/public/v4/apps/nocodb.yml new file mode 100644 index 0000000..81983eb --- /dev/null +++ b/public/v4/apps/nocodb.yml @@ -0,0 +1,59 @@ +captainVersion: 4 +services: + '$$cap_appname': + image: nocodb/nocodb:$$cap_version + restart: always + environment: + NC_DB: '$$cap_nc_db' + DATABASE_URL: '$$cap_database_url' + NC_PUBLIC_URL: '$$cap_public_url' + NC_AUTH_JWT_SECRET: '$$cap_auth_jwt_secret' + NC_SENTRY_DSN: '$$cap_sentry_dsn' + NC_CONNECT_TO_EXTERNAL_DB_DISABLED: '$$cap_connect_to_external_db_disabled' + NC_DISABLE_TELE: '$$cap_disable_tele' + volumes: + - '$$cap_appname-data:/srv/data' + caproverExtra: + containerHttpPort: '8080' +caproverOneClickApp: + variables: + - id: '$$cap_version' + label: NocoDB Version + defaultValue: '0.9.19' + description: Check out their Docker page for the valid tags https://hub.docker.com/r/nocodb/nocodb/tags + validRegex: "/^([^\\s^\\/])+$/" + - id: '$$cap_nc_db' + label: NC_DB + defaultValue: '' + description: 'MySQL, PostgreSQL and MSSQL connection urls supported. If absent: A local SQLite will be created in root folder' + - id: '$$cap_database_url' + label: DATABASE_URL + defaultValue: '' + description: JDBC URL Format. Can be used instead of NC_DB. Used in 1-Click Heroku deployment + - id: '$$cap_public_url' + label: NC_PUBLIC_URL + defaultValue: '' + description: 'Used for sending Email invitations. If absent: Best guess from http request params' + - id: '$$cap_auth_jwt_secret' + label: NC_AUTH_JWT_SECRET + defaultValue: '$$cap_gen_random_hex(64)' + description: 'JWT secret used for auth and storing other secrets. If absent: A Random secret will be generated' + - id: '$$cap_sentry_dsn' + label: NC_SENTRY_DSN + defaultValue: '' + description: For Sentry monitoring + - id: '$$cap_connect_to_external_db_disabled' + label: NC_CONNECT_TO_EXTERNAL_DB_DISABLED + defaultValue: '' + description: Disable Project creation with external database. (Enter "1" to disable) + - id: '$$cap_disable_tele' + label: NC_DISABLE_TELE + defaultValue: '' + description: Disable telemetry (Enter "1" to disable) + instructions: + start: 'NocoDB is an open source #NoCode platform that turns any database into a smart spreadsheet. https://github.com/nocodb/nocodb - https://www.nocodb.com/' + end: NocoDB has been successfully deployed! It might take a minute or two to boot though, during which time you might get a 502 + displayName: NocoDB + isOfficial: true + description: The Open Source Airtable Alternative - Turns any MySQL, PostgreSQL, SQL Server, SQLite & MariaDB into a smart-spreadsheet. + documentation: See https://github.com/nocodb/nocodb diff --git a/public/v4/logos/nocodb.png b/public/v4/logos/nocodb.png new file mode 100644 index 0000000000000000000000000000000000000000..dec31a6dd889029be38a8c05cf9441f10b7e9d3a GIT binary patch literal 13262 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 U