Container - Beispiel Discourse

Version vom 4. April 2024, 09:31 Uhr von Rb (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Dies ist ein Beispielskript zum erstellen einer Discourse Installation mit den Container-Images des Drittanbieters Bitnami. Sie können dieses Skript in Ihrem Account über SSH nach Aktivierung des Container-Features ausführen. Eine Anleitung dazu finden Sie Hier.

Nach erfolgreicher Einrichtung können Sie den Discourse Container im DCP unter Subdomains auswählen.

Die Offizielle Dokumentation zu den Container Images finden Sie Hier.

Bitte beachten Sie, dass dieses Skript nur als Beispiel dient! Wir bieten für diese art von Deployment keinen weiteren Support an.


Bitte lesen Sie sich das Beispielskript vor der Ausführung durch und füllen Sie alle benötigten Felder aus.


# Discourse Setup script
## Das Skript wird Sie nach Erstellung nach einer E-Mail sowie einem Passwort für den Administrations-Account fragen.
## Bitte füllen Sie dort Ihre gewünschten Daten aus.

# Achtung! Bevor Sie Discourse Installieren müssen Sie im DCP eine neue Postgresql Datenbank anlegen!


# Discourse spezifische Einstellungen
DISCOURSE_PORT=<Ein Port zwischen 40000 und 40100>
VHOST=<Subdomain unter welche die Discourse Installation erreichbar sein soll>
VERSION=3.1.3

# Postgresql Datenbank
## Datenbank Name 
### Dieser wird Ihnen im DCP bei Erstellung der Datenbank angezeigt
DB=<Postgresql DB Name>

## Datenbank Passwort welches Sie bei Erstellung der Datenbank angegeben haben
DB_PASS=<Postgresql DB Passwort>


# Email
SMTP_HOST=smtp.artfiles.de
SMTP_USER=<E-Mail Account unter welchem Discourse E-Mails verschicken soll>
SMTP_PASSWORD=<Passwort für den E-Mail Account>
SMTP_PORT=25

# Redis
## Redis Datenbank Port
REDIS_PORT=<Ein Port zwischen 40000 und 40100>

## Redis Datenbank Passwort
### Dieses Passwort muss nur einmalig gesetzt werden und sollte möglichst zufällig generiert sein.
REDIS_PASSWORD=<Redis Passwort>


# Erstelle Volume für Redis
podman-cli volume create redis_data

# Starte Redis
podman-cli run -d --name redis \
  -p $REDIS_PORT:6379 \
  --env REDIS_PASSWORD=$REDIS_PASSWORD \
  --volume redis_data:/bitnami/redis \
  bitnami/redis:latest


# Erstelle Volume für Discourse
podman-cli volume create discourse_data

# Starte Discourse
podman-cli run -d --name discourse \
  -p $DISCOURSE_PORT:3000 \
  --env DISCOURSE_REDIS_HOST=10.0.2.2 \
  --env DISCOURSE_REDIS_PORT_NUMBER=$REDIS_PORT \
  --env DISCOURSE_REDIS_PASSWORD=$REDIS_PASSWORD \
  --env DISCOURSE_DATABASE_HOST=sql.local \
  --env DISCOURSE_DATABASE_USER=$DB \
  --env DISCOURSE_DATABASE_PASSWORD=$DB_PASS \
  --env DISCOURSE_DATABASE_NAME=$DB \
  --env DISCOURSE_HOST=$VHOST \
  --env DISCOURSE_ENABLE_HTTPS=yes \
  --env SMTP_HOST=$SMTP_HOST \
  --env SMTP_USER=$SMTP_USER \
  --env SMTP_PASSWORD=$SMTP_PASSWORD \
  --env SMTP_PORT=$SMTP_PORT \
  --volume discourse_data:/bitnami/discourse \
  --network slirp4netns:allow_host_loopback=true \
  bitnami/discourse:$VERSION

# Starte Discourse Sidekiq Container
podman-cli run -d --name sidekiq \
  --env DISCOURSE_REDIS_HOST=10.0.2.2 \
  --env DISCOURSE_REDIS_PORT_NUMBER=$REDIS_PORT \
  --env DISCOURSE_REDIS_PASSWORD=$REDIS_PASSWORD \
  --env DISCOURSE_DATABASE_HOST=sql.local \
  --env DISCOURSE_DATABASE_USER=$DB \
  --env DISCOURSE_DATABASE_PASSWORD=$DB_PASS \
  --env DISCOURSE_DATABASE_NAME=$DB \
  --env DISCOURSE_HOST=$VHOST \
  --env DISCOURSE_ENABLE_HTTPS=yes \
  --env SMTP_HOST=$SMTP_HOST \
  --env SMTP_USER=$SMTP_USER \
  --env SMTP_PASSWORD=$SMTP_PASSWORD \
  --env SMTP_PORT=$SMTP_PORT \
  --volume discourse_data:/bitnami/discourse \
  --network slirp4netns:allow_host_loopback=true \
  bitnami/discourse:$VERSION /opt/bitnami/scripts/discourse-sidekiq/run.sh

# Starte Discourse Admin setup
podman-cli exec -it discourse /bin/bash -c "cd /opt/bitnami/discourse && RAILS_ENV=production bundle exec rake admin:create"