caprover / one-click-apps

Community Maintained One Click Apps (https://github.com/caprover/caprover)
Apache License 2.0
557 stars 544 forks source link

App Suggestion: EdgeDB #794

Open zulvkr opened 1 year ago

zulvkr commented 1 year ago

Please tell us what app you'd like to see on CapRover as a one-click app.

EdgeDB is an open-source, young and modern database designed as a spiritual successor to SQL and the relational paradigm.

It aims to do: Better schema definition and migration system Better query language Ships with cli and UI

It has client in typescript, go, python and some other languages, with client codegen and type safety support like Prisma.

Do you know if there is any official Docker image for the app?

https://hub.docker.com/r/edgedb/edgedb

iron3oxide commented 12 months ago

+1

Boscop commented 2 months ago

Yeah, having EdgeDB as a one-click app would be nice.

Boscop commented 1 month ago

@zulvkr @iron3oxide I wrote this yaml based on postgres.yml and the EdgeDB self-hosting doc and then in CapRover/Apps I selected to deploy a One-Click app, then I selected this template:

{4E6170AB-3E24-438C-86BC-11FABCF43C57}

and then I pasted this yaml into the textarea. It deployed without errors, but I'm new to CapRover so I'm not sure if everything is correct. Can you check this please? :) E.g. what about volumes?

captainVersion: 4
services:
    $$cap_appname:
        image: edgedb/edgedb:$$cap_edgedb_version
        volumes:
            - $$cap_appname-data:/var/lib/edgedb/data
        restart: always
        environment:
            EDGEDB_SERVER_PASSWORD: $$cap_edgedb_password
            EDGEDB_SERVER_TLS_CERT_MODE: $$cap_edgedb_tls_mode
            EDGEDB_DOCKER_APPLY_MIGRATIONS: $$cap_edgedb_apply_migrations
        caproverExtra:
            notExposeAsWebApp: 'true'
caproverOneClickApp:
    variables:
        - id: $$cap_edgedb_version
          label: Version
          defaultValue: 'latest'
          description: Check out their Docker page for the valid tags https://hub.docker.com/r/edgedb/edgedb/tags
          validRegex: /^([^\s^\/])+$/
        - id: $$cap_edgedb_password
          label: EdgeDB Server Password
          defaultValue: $$cap_gen_random_hex(16)
          description: Password for the EdgeDB server
          validRegex: /.{1,}/
        - id: $$cap_edgedb_tls_mode
          label: TLS Certificate Mode
          defaultValue: 'generate_self_signed'
          description: TLS certificate mode (generate_self_signed, provide, or disable)
          validRegex: /^(generate_self_signed|provide|disable)$/
        - id: $$cap_edgedb_apply_migrations
          label: Apply Migrations
          defaultValue: 'default'
          description: Whether to apply migrations (always, never, default)
          validRegex: /^(always|never|default)$/
    instructions:
        start: |-
            EdgeDB is an open-source object-relational database with a powerful query language, strict schema, and native GraphQL support.
            This One-Click-App will deploy EdgeDB on your CapRover instance.
        end: |-
            EdgeDB is deployed and available as `srv-captain--$$cap_appname:5656` to other apps.
            To connect to EdgeDB, use the following connection string:
            `edgedb://edgedb:$$cap_edgedb_password@srv-captain--$$cap_appname:5656`

            Note: If you want to include schema migrations, mount a volume at `/dbschema` in your application container.
    displayName: EdgeDB
    isOfficial: false
    description: EdgeDB - The next-generation object-relational database.
    documentation: https://www.edgedb.com/docs/guides/deployment/docker