Cloudron makes it easy to run web apps like WordPress, Nextcloud, GitLab on your server. Find out more or install now.


Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Bookmarks
  • Search
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo

Cloudron Forum

Apps - Status | Demo | Docs | Install
  1. Cloudron Forum
  2. Keila
  3. First two quick questions

First two quick questions

Scheduled Pinned Locked Moved Keila
12 Posts 4 Posters 1.0k Views 4 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • andreasduerenA Online
    andreasduerenA Online
    andreasdueren
    App Dev
    wrote on last edited by
    #3

    This should work for the start.sh:

    #!/bin/bash
    
    set -euo pipefail
    
    echo "==> Creating directories"
    mkdir -p /app/data/uploads
    chown -R cloudron:cloudron /app/data
    
    # Generate secret key on first run
    if [ ! -f /app/data/secret_key.txt ]; then
        echo "==> Generating new secret key"
        head -c 48 /dev/urandom | base64 > /app/data/secret_key.txt
    fi
    
    # Create .env file on first run with user-configurable options
    if [ ! -f /app/data/.env ]; then
        echo "==> Creating .env file with default configuration"
        cat > /app/data/.env <<'EOF'
    # Keila Configuration
    # This file contains user-configurable options. System-critical settings
    # (database, URL, deployment) are managed by Cloudron and cannot be changed here.
    
    # Logging
    # Options: debug, info, warning, error
    LOG_LEVEL=info
    
    # User Registration
    # Set to true to disable new user registration
    DISABLE_REGISTRATION=false
    
    # Captcha Configuration (optional)
    # Providers: hcaptcha, friendly_captcha
    # CAPTCHA_PROVIDER=
    # CAPTCHA_SITE_KEY=
    # CAPTCHA_SECRET_KEY=
    
    # System Mailer Configuration (optional - uses Cloudron defaults)
    # Only uncomment if you need to override Cloudron's email settings
    # MAILER_TYPE=smtp
    # MAILER_SMTP_FROM_EMAIL=
    # MAILER_SMTP_HOST=
    # MAILER_SMTP_PORT=587
    # MAILER_SMTP_USER=
    # MAILER_SMTP_PASSWORD=
    # MAILER_ENABLE_STARTTLS=true
    
    # Additional Options
    # See https://www.keila.io/docs/configuration for more options
    EOF
        chown cloudron:cloudron /app/data/.env
    fi
    
    # Load user-configurable environment from .env file
    if [ -f /app/data/.env ]; then
        set -a
        source /app/data/.env
        set +a
    fi
    
    # Export environment variables for Keila
    # Note: System-critical variables below override any values from .env
    export PORT=4000
    export DB_URL=${CLOUDRON_POSTGRESQL_URL}
    export SECRET_KEY_BASE=$(cat /app/data/secret_key.txt)
    
    # Configure URLs from Cloudron environment variables
    export URL_HOST=${CLOUDRON_APP_DOMAIN}
    export URL_PATH="/"
    export URL_SCHEMA="https"
    export URL_PORT="443"
    
    # Configure email settings
    export MAILER_TYPE=smtp
    export MAILER_SMTP_FROM_EMAIL=${CLOUDRON_MAIL_FROM}
    export MAILER_SMTP_HOST=${CLOUDRON_MAIL_SMTP_SERVER}
    export MAILER_SMTP_PORT=${CLOUDRON_MAIL_SMTP_PORT}
    export MAILER_SMTP_USER=${CLOUDRON_MAIL_SMTP_USERNAME}
    export MAILER_SMTP_PASSWORD=${CLOUDRON_MAIL_SMTP_PASSWORD}
    export MAILER_ENABLE_STARTTLS=false
    
    # Configure user content directory
    export USER_CONTENT_DIR=/app/data/uploads
    
    export PGPASSWORD=${CLOUDRON_POSTGRESQL_PASSWORD}
    USER_TABLE_EXISTS=$(psql ${CLOUDRON_POSTGRESQL_URL} -XAwt -c "SELECT EXISTS ( SELECT FROM pg_tables WHERE schemaname = 'public' AND tablename = 'users')")
    if [[ $USER_TABLE_EXISTS == "t" ]]; then
        ADMIN_EXISTS=$(PGPASSWORD=${CLOUDRON_POSTGRESQL_PASSWORD} psql -h ${CLOUDRON_POSTGRESQL_HOST} -p ${CLOUDRON_POSTGRESQL_PORT} -U ${CLOUDRON_POSTGRESQL_USERNAME} -d ${CLOUDRON_POSTGRESQL_DATABASE} -AXqtc "SELECT count(*) FROM users u JOIN user_groups ug ON ug.user_id=u.id JOIN groups g ON ug.group_id=g.id WHERE g.name='root'")
    fi
    if [[ ${USER_TABLE_EXISTS:-} == "f" || ${ADMIN_EXISTS:-} -eq 0 ]]; then
        echo "==> Exporting default admin credentials on first run"
        export KEILA_USER="admin@cloudron.local"
        export KEILA_PASSWORD="changeme123"
    fi
    
    echo "==> Starting Keila"
    exec gosu cloudron:cloudron /app/code/bin/keila start
    
    andreasduerenA 1 Reply Last reply
    3
    • andreasduerenA andreasdueren

      This should work for the start.sh:

      #!/bin/bash
      
      set -euo pipefail
      
      echo "==> Creating directories"
      mkdir -p /app/data/uploads
      chown -R cloudron:cloudron /app/data
      
      # Generate secret key on first run
      if [ ! -f /app/data/secret_key.txt ]; then
          echo "==> Generating new secret key"
          head -c 48 /dev/urandom | base64 > /app/data/secret_key.txt
      fi
      
      # Create .env file on first run with user-configurable options
      if [ ! -f /app/data/.env ]; then
          echo "==> Creating .env file with default configuration"
          cat > /app/data/.env <<'EOF'
      # Keila Configuration
      # This file contains user-configurable options. System-critical settings
      # (database, URL, deployment) are managed by Cloudron and cannot be changed here.
      
      # Logging
      # Options: debug, info, warning, error
      LOG_LEVEL=info
      
      # User Registration
      # Set to true to disable new user registration
      DISABLE_REGISTRATION=false
      
      # Captcha Configuration (optional)
      # Providers: hcaptcha, friendly_captcha
      # CAPTCHA_PROVIDER=
      # CAPTCHA_SITE_KEY=
      # CAPTCHA_SECRET_KEY=
      
      # System Mailer Configuration (optional - uses Cloudron defaults)
      # Only uncomment if you need to override Cloudron's email settings
      # MAILER_TYPE=smtp
      # MAILER_SMTP_FROM_EMAIL=
      # MAILER_SMTP_HOST=
      # MAILER_SMTP_PORT=587
      # MAILER_SMTP_USER=
      # MAILER_SMTP_PASSWORD=
      # MAILER_ENABLE_STARTTLS=true
      
      # Additional Options
      # See https://www.keila.io/docs/configuration for more options
      EOF
          chown cloudron:cloudron /app/data/.env
      fi
      
      # Load user-configurable environment from .env file
      if [ -f /app/data/.env ]; then
          set -a
          source /app/data/.env
          set +a
      fi
      
      # Export environment variables for Keila
      # Note: System-critical variables below override any values from .env
      export PORT=4000
      export DB_URL=${CLOUDRON_POSTGRESQL_URL}
      export SECRET_KEY_BASE=$(cat /app/data/secret_key.txt)
      
      # Configure URLs from Cloudron environment variables
      export URL_HOST=${CLOUDRON_APP_DOMAIN}
      export URL_PATH="/"
      export URL_SCHEMA="https"
      export URL_PORT="443"
      
      # Configure email settings
      export MAILER_TYPE=smtp
      export MAILER_SMTP_FROM_EMAIL=${CLOUDRON_MAIL_FROM}
      export MAILER_SMTP_HOST=${CLOUDRON_MAIL_SMTP_SERVER}
      export MAILER_SMTP_PORT=${CLOUDRON_MAIL_SMTP_PORT}
      export MAILER_SMTP_USER=${CLOUDRON_MAIL_SMTP_USERNAME}
      export MAILER_SMTP_PASSWORD=${CLOUDRON_MAIL_SMTP_PASSWORD}
      export MAILER_ENABLE_STARTTLS=false
      
      # Configure user content directory
      export USER_CONTENT_DIR=/app/data/uploads
      
      export PGPASSWORD=${CLOUDRON_POSTGRESQL_PASSWORD}
      USER_TABLE_EXISTS=$(psql ${CLOUDRON_POSTGRESQL_URL} -XAwt -c "SELECT EXISTS ( SELECT FROM pg_tables WHERE schemaname = 'public' AND tablename = 'users')")
      if [[ $USER_TABLE_EXISTS == "t" ]]; then
          ADMIN_EXISTS=$(PGPASSWORD=${CLOUDRON_POSTGRESQL_PASSWORD} psql -h ${CLOUDRON_POSTGRESQL_HOST} -p ${CLOUDRON_POSTGRESQL_PORT} -U ${CLOUDRON_POSTGRESQL_USERNAME} -d ${CLOUDRON_POSTGRESQL_DATABASE} -AXqtc "SELECT count(*) FROM users u JOIN user_groups ug ON ug.user_id=u.id JOIN groups g ON ug.group_id=g.id WHERE g.name='root'")
      fi
      if [[ ${USER_TABLE_EXISTS:-} == "f" || ${ADMIN_EXISTS:-} -eq 0 ]]; then
          echo "==> Exporting default admin credentials on first run"
          export KEILA_USER="admin@cloudron.local"
          export KEILA_PASSWORD="changeme123"
      fi
      
      echo "==> Starting Keila"
      exec gosu cloudron:cloudron /app/code/bin/keila start
      
      andreasduerenA Online
      andreasduerenA Online
      andreasdueren
      App Dev
      wrote on last edited by
      #4

      @girish I donโ€™t have permission to clone repos or anything on the git. Could you test this and deploy if it works?

      1 Reply Last reply
      1
      • jamesJ Offline
        jamesJ Offline
        james
        Staff
        wrote on last edited by
        #5

        Hello @andreasdueren
        The git repo https://git.cloudron.io/packages/keila-app is publicly accessible and can be cloned publicly:

        git clone https://git.cloudron.io/packages/keila-app
        

        Did you mean you have no permission to fork the repository?

        andreasduerenA 1 Reply Last reply
        0
        • jamesJ james

          Hello @andreasdueren
          The git repo https://git.cloudron.io/packages/keila-app is publicly accessible and can be cloned publicly:

          git clone https://git.cloudron.io/packages/keila-app
          

          Did you mean you have no permission to fork the repository?

          andreasduerenA Online
          andreasduerenA Online
          andreasdueren
          App Dev
          wrote on last edited by
          #6

          @james Nope can't fork, can't create repros either

          1 Reply Last reply
          2
          • girishG Do not disturb
            girishG Do not disturb
            girish
            Staff
            wrote on last edited by
            #7

            @andreasdueren can you check again now?

            andreasduerenA 2 Replies Last reply
            1
            • girishG girish

              @andreasdueren can you check again now?

              andreasduerenA Online
              andreasduerenA Online
              andreasdueren
              App Dev
              wrote on last edited by
              #8

              @girish Works, thanks

              1 Reply Last reply
              0
              • girishG girish

                @andreasdueren can you check again now?

                andreasduerenA Online
                andreasduerenA Online
                andreasdueren
                App Dev
                wrote on last edited by
                #9

                @girish Actually, still not. Just tried to fork Element but it returns Limit reached You've reached your limit of 100 projects created. Contact your GitLab administrator.

                1 Reply Last reply
                0
                • girishG Do not disturb
                  girishG Do not disturb
                  girish
                  Staff
                  wrote on last edited by
                  #10

                  @andreasdueren I made your limit 1000 now. Does that help?

                  1 Reply Last reply
                  0
                  • andreasduerenA Online
                    andreasduerenA Online
                    andreasdueren
                    App Dev
                    wrote on last edited by
                    #11

                    Nope, must be a different thing blocking it then.

                    Screenshot 2025-11-06 at 09.49.43.png

                    1 Reply Last reply
                    0
                    • girishG Do not disturb
                      girishG Do not disturb
                      girish
                      Staff
                      wrote on last edited by
                      #12

                      @andreasdueren oh sorry ๐Ÿ˜• checking.

                      1 Reply Last reply
                      1

                      Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                      Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                      With your input, this post could be even better ๐Ÿ’—

                      Register Login
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • Bookmarks
                      • Search