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 00000000..110b10bf Binary files /dev/null and b/apps/grist/metadata/logo.jpg differ