Direkt zum Hauptinhalt

Installation über einen Docker container

Voraussetzungen:

Docker: https://www.docker.com/get-started

Docker installieren

Siehe Buch -> Installation

Budibase installieren

Als Befehl

sudo docker run -d -t \
  --name=budibase \
  -p 10000:80 \
  -v /home/duffy/budibasedata:/data \
  --restart unless-stopped \
  budibase/budibase:latest

Environment Parameter

Variablenname Beschreibung
CUSTOM_DOMAIN Wenn eine Domain im Format domain.com festgelegt ist, versucht Budibase automatisch, ein SSL-Zertifikat zu erstellen und HTTPS für diese Domain zu verwenden. Die Domain muss bereits auf den Budibase-Container gerichtet sein, damit dies korrekt überprüft werden kann.
INTERNAL_API_KEY Ein API-Schlüssel, der zum Zugriff auf viele Kernkomponenten verwendet werden kann. Dieser sollte auf eine zufällige Zeichenkette aktualisiert werden.
JWT_SECRET Ein geheimer Schlüssel, der zum Sichern aller Sitzungen mit Budibase verwendet wird. Dies sollte auf eine zufällige Zeichenkette aktualisiert werden. Beachten Sie, dass das Ändern dieser Zeichenkette alle vorhandenen Sitzungen ungültig macht.
MINIO_ACCESS_KEY und MINIO_SECRET_KEY Diese beiden Umgebungsvariablen sollten auf eine Kombination aus zufälligen Zeichenketten festgelegt werden, um den Zugriff auf MinIO abzusichern. Diese können auch verwendet werden, um sich im MinIO-Browser anzumelden, wenn gewünscht.
REDIS_PASSWORD Das Passwort, das zum Zugriff auf die Redis-Instanz verwendet wird. Dies sollte auf eine zufällige Zeichenkette festgelegt werden, um die Sicherheit zu gewährleisten.
COUCHDB_USER und COUCHDB_PASSWORD Diese beiden Umgebungsvariablen definieren den CouchDB-Benutzernamen und das Passwort, die zum Zugriff auf den Hauptadministrationsbenutzer verwendet werden. Diese können auch verwendet werden, um auf die Fauxton-Benutzeroberfläche zuzugreifen.

oder als Composer Datei

version: "3"

services:
  budibase:
    restart: unless-stopped
    image: budibase/budibase:latest
    ports:
      - "8080:80"
    environment:
      JWT_SECRET: <secret>
      MINIO_ACCESS_KEY: <secret>
      MINIO_SECRET_KEY: <secret>
      REDIS_PASSWORD: <secret>
      COUCHDB_USER: <secret>
      COUCHDB_PASSWORD: <secret>
      INTERNAL_API_KEY: <secret>
    volumes:
      - budibase_data:/data

volumes:
  budibase_data:
    driver: local
    driver_opts:
      type: none
      o: bind
      device: /home/duffy/budibasedata

Nun kann ein Webbrowser geöffnet werden

http://127.0.0.1:8080

Screenshot 2023-04-21 at 14-12-56 Budibase.png

HTTPS hinzufügen

Dazu ein neues Verzeichnis namens certs im Verzeichnis wo die composer Datei liegt erstellen.

mkdir certs

Nun ins Verzeichnis gehen und das Zertifikat anlegen.

cd /home/duffy/budibasedockertemplate/certs
openssl req -newkey rsa:4096 -x509 -sha256 -days 365 -nodes -out selfsigned.crt -keyout private.key

nun die Fragen beantworten.
DE
und der Comman name als URL. Bei selbstsigniert eigentlich egal

Ausgabe:

......................................++++
.....................++++
writing new private key to 'private.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:DE
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:budibase.local.lan
Email Address []:

Nun wieder ein Verzeichnis zurück ins Template Verzeichnis und eine neue nginx Config namens "nginx-ssl.conf"

Inhalt dieser Datei:

worker_processes 1;

events {
  worker_connections 1024;
}

http {
  server {
    listen 8080;
    return 301 https://$host$request_uri;
  }

  server {
    listen 443 ssl;
    ssl_certificate /etc/ssl/certs/selfsigned.crt;
    ssl_certificate_key /etc/ssl/private/private.key;

    location / {
      proxy_pass http://budibase:80;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;
    }
  }
}

Nun die Composer Datei editieren und drei volumes hinzufügen die auf die Dateien linken

....
volumes:
 ...
 - ./certs/selfsigned.crt:/etc/ssl/certs/selfsigned.crt
 - ./certs/private.key:/etc/ssl/private/private.key
 - ./nginx-ssl.conf:/etc/nginx/nginx.conf

 ...
 

 nun die ports anspassen von 8080:80 auf 443:443
   ports:
      - "443:443"

Nun das Image per compose aktualisieren

docker-compose down
docker-compose up -d

Das komplette docker-compose.yml

version: "3"

services:
  budibase:
    restart: unless-stopped
    image: budibase/budibase:latest
    ports:
      - "443:443"
    volumes:
      - budibase_data:/data
      - /home/duffy/budibasedata/certs/selfsigned.crt:/etc/ssl/certs/selfsigned.crt
      - /home/duffy/budibasedata/certs/private.key/:/etc/ssl/private/private.key
    environment:
      - DOMAIN=https://yourdomain.com
      - SSL_CERT_PATH=/etc/ssl/certs/selfsigned.crt
      - SSL_KEY_PATH=/etc/ssl/private/private.key
      - PORT=443
      - SECURE_PORT=443

volumes:
  budibase_data:
    driver: local
    driver_opts:
      type: none
      o: bind
      device: /home/duffy/budibasedata