one-click-apps icon indicating copy to clipboard operation
one-click-apps copied to clipboard

App Suggestion: Budibase

Open developer-uhwi opened this issue 4 years ago • 3 comments

Please tell us what app you'd like to see on CapRover as a one-click app. Budibase is an open source low-code platform, helping thousands of teams build apps for their workplace in minutes.

Do you know if there is any official Docker image for the app? https://hub.docker.com/r/budibase/apps/tags?page=1&ordering=last_updated

developer-uhwi avatar Sep 29 '21 14:09 developer-uhwi

Is there a way we can contribute these? I'd love to see this one in particular.

seiyria avatar Jun 01 '22 17:06 seiyria

Absolutely! Just open a PR! Here is an example: https://github.com/caprover/one-click-apps/pull/640/files

githubsaturn avatar Jun 02 '22 02:06 githubsaturn

Alright, this one unfortunately got a bit more complicated than I expected, but maybe someone can take it across the finish line. Based on the docs here which links to this docker compose, I came up with the following. Naturally, it errors out when trying to install the first service with a generic network error so I'm not sure what to investigate from there.

captainVersion: 4
version: 1

services:
    $$cap_appname:
        image: budibase/apps:$$cap_budibase_version
        environment:
            JWT_SECRET: testsecret
            PORT: 4002
            COUCH_DB_URL: http://budibase:budibase@$$cap_appname-couchdb:5984
            WORKER_URL: http://$$cap_appname-worker:4003
            MINIO_URL: http://$$cap_appname-minio:9000
            MINIO_ACCESS_KEY: budibase
            MINIO_SECRET_KEY: budibase
            COUCH_DB_PASSWORD: budibase
            COUCH_DB_USERNAME: budibase
            REDIS_URL: $$cap_appname-redis:6379
            REDIS_PASSWORD: budibase
            INTERNAL_API_KEY: budibase
        ports:
            - 10000:10000
        hostname: $$cap_appname.$$cap_root_domain
        depends_on:
          - $$cap_appname-worker
          - $$cap_appname-redis
        
    $$cap_appname-worker:
        image: budibase/worker:$$cap_budibase_version
        environment:
            JWT_SECRET: testsecret
            PORT: 4003
            CLUSTER_PORT: 10000
            COUCH_DB_URL: http://budibase:budibase@$$cap_appname-couchdb:5984
            APPS_URL: http://$$cap_appname:4002
            MINIO_URL: http://$$cap_appname-minio:9000
            MINIO_ACCESS_KEY: budibase
            MINIO_SECRET_KEY: budibase
            COUCH_DB_PASSWORD: budibase
            COUCH_DB_USERNAME: budibase
            REDIS_URL: $$cap_appname-redis:6379
            REDIS_PASSWORD: budibase
            INTERNAL_API_KEY: budibase
        depends_on:
          - $$cap_appname-redis
          - $$cap_appname-minio
          - $$cap_appname-couch-init
        
    $$cap_appname-minio:
        image: minio/minio
        volumes:
          - $$cap_appname-minio-data:/data
        environment:
          MINIO_ACCESS_KEY: budibase
          MINIO_SECRET_KEY: budibase
          MINIO_BROWSER: "off"
        command: server /data
        healthcheck:
          test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
          interval: 30s
          timeout: 20s
          retries: 3
        
    $$cap_appname-proxy:
        image: budibase/proxy:$$cap_budibase_version
        ports:
          - "10000:10000"
        depends_on:
          - $$cap_appname-minio
          - $$cap_appname-worker
          - $$cap_appname
          - $$cap_appname-couchdb
        
    $$cap_appname-couchdb:
        image: ibmcom/couchdb3
        ports:
          - "10000:10000"
        environment:
          COUCHDB_PASSWORD=budibase
          COUCHDB_USER=budibase
        volumes:
          - $$cap_appname-couchdb-data:/opt/couchdb/data
        
    $$cap_appname-couch-init:
        image: curlimages/curl
        environment:
          PUT_CALL: "curl -u budibase:budibase -X PUT $$cap_appname-couchdb:5984"
        depends_on:
          - $$cap_appname-couchdb
        command: ["sh","-c","sleep 10 && $${PUT_CALL}/_users && $${PUT_CALL}/_replicator; fg;"]
        
    $$cap_appname-redis:
        image: redis
        command: redis-server --requirepass budibase
        volumes:
          - $$cap_appname-redis-data:/data

volumes:
  $$cap_appname-couchdb-data:
    driver: local
  $$cap_appname-minio-dataa:
    driver: local
  $$cap_appname-redis-data:
    driver: local

caproverOneClickApp:
    variables:
        - id: $$cap_budibase_version
          label: Budibase Version
          defaultValue: v1.0.194
          description: Check out their Docker page for the valid tags https://hub.docker.com/r/budibase/apps/tags
          validRegex: /^v([^\s^\/])+$/

    instructions:
        start: >-
            Budibase lets you instantly turn data into apps. You can connect to anything from Google Sheets to Postgres to a REST API for data and quickly design internal applications and dashboards.
        end: >-
            Budibase has been successfully deployed.
    displayName: Budibase
    isOfficial: false
    description: Budibase lets you instantly turn data into apps. You can connect to anything from Google Sheets to Postgres to a REST API for data and quickly design internal applications and dashboards.
    documentation: Taken from https://hub.docker.com/r/budibase/apps.

seiyria avatar Jun 02 '22 14:06 seiyria