From 8c96db771e6ff4ccab86416a9a981e346fc17e60 Mon Sep 17 00:00:00 2001 From: Tyler W <7053824+tylrw@users.noreply.github.com> Date: Sun, 30 Jul 2023 06:02:42 -0300 Subject: [PATCH] feat: add Grist (#906) --- apps/grist/config.json | 27 ++++++++++++++++++ apps/grist/docker-compose.yml | 43 +++++++++++++++++++++++++++++ apps/grist/metadata/description.md | 5 ++++ apps/grist/metadata/logo.jpg | Bin 0 -> 44181 bytes 4 files changed, 75 insertions(+) create mode 100644 apps/grist/config.json create mode 100644 apps/grist/docker-compose.yml create mode 100644 apps/grist/metadata/description.md create mode 100644 apps/grist/metadata/logo.jpg diff --git a/apps/grist/config.json b/apps/grist/config.json new file mode 100644 index 00000000..12b90598 --- /dev/null +++ b/apps/grist/config.json @@ -0,0 +1,27 @@ +{ + "name": "Grist", + "available": true, + "port": 8484, + "exposable": true, + "id": "grist", + "description": "Grist is a modern relational spreadsheet. It combines the flexibility of a spreadsheet with the robustness of a database to organize your data and make you more productive.", + "tipi_version": 1, + "version": "1.1.2", + "categories": ["utilities"], + "short_desc": "Grist is the evolution of spreadsheets.", + "author": "https://github.com/gristlabs", + "source": "https://github.com/gristlabs/grist-core", + "website": "https://www.getgrist.com/", + "form_fields": [ + { + "type": "", + "label": "GRIST_SANDBOX_FLAVOR", + "required": true, + "options": [ + { "label": "unsandboxed", "value": "unsandboxed" }, + { "label": "gvisor", "value": "gvisor" } + ], + "env_variable": "GRIST_SANDBOX_FLAVOR" + } + ] +} \ No newline at end of file diff --git a/apps/grist/docker-compose.yml b/apps/grist/docker-compose.yml new file mode 100644 index 00000000..4a71591a --- /dev/null +++ b/apps/grist/docker-compose.yml @@ -0,0 +1,43 @@ +version: "2.1" + +services: + grist: + container_name: grist + environment: + - APP_HOME_URL=${APP_PROTOCOL:-http}://${APP_DOMAIN} + - GRIST_SANDBOX_FLAVOR=${GRIST_SANDBOX_FLAVOR} + image: "gristlabs/grist:1.1.2" + ports: + - "${APP_PORT}:8484" + restart: always + volumes: + - "${APP_DATA_DIR}/data/grist-data:/persist" + networks: + - tipi_main_network + labels: + # Main + traefik.enable: true + traefik.http.middlewares.grist-web-redirect.redirectscheme.scheme: https + traefik.http.services.grist.loadbalancer.server.port: 8484 + # Web + traefik.http.routers.grist-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.grist-insecure.entrypoints: web + traefik.http.routers.grist-insecure.service: grist + traefik.http.routers.grist-insecure.middlewares: grist-web-redirect + # Websecure + traefik.http.routers.grist.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.grist.entrypoints: websecure + traefik.http.routers.grist.service: grist + traefik.http.routers.grist.tls.certresolver: myresolver + # Local domain + traefik.http.routers.grist-local-insecure.rule: Host(`grist.${LOCAL_DOMAIN}`) + traefik.http.routers.grist-local-insecure.entrypoints: web + traefik.http.routers.grist-local-insecure.service: grist + traefik.http.routers.grist-local-insecure.middlewares: grist-web-redirect + # Local domain secure + traefik.http.routers.grist-local.rule: Host(`grist.${LOCAL_DOMAIN}`) + traefik.http.routers.grist-local.entrypoints: websecure + traefik.http.routers.grist-local.service: grist + traefik.http.routers.grist-local.tls: true + + diff --git a/apps/grist/metadata/description.md b/apps/grist/metadata/description.md new file mode 100644 index 00000000..03684e79 --- /dev/null +++ b/apps/grist/metadata/description.md @@ -0,0 +1,5 @@ +# Grist is the evolution of spreadsheets + +Grist is a modern relational spreadsheet. It combines the flexibility of a spreadsheet with the robustness of a database to organize your data and make you more productive. + +https://user-images.githubusercontent.com/118367/151245587-892e50a6-41f5-4b74-9786-fe3566f6b1fb.mp4 diff --git a/apps/grist/metadata/logo.jpg b/apps/grist/metadata/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..110b10bf7d505e2ad6dabff5c14f5b63b98fdf6a GIT binary patch literal 44181 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 YK5y{Pz~kQwJO1xK{{xq9*Uy3f2k7ol_y7O^ literal 0 HcmV?d00001