Ich habe eine funktionierende Discourse-Installation zum Laufen gebracht.
Docker installieren – hier nicht behandelt
Discourse installieren –
git clone https://github.com/discourse/discourse_docker.git /var/discourse
cd /var/discourse
app.yaml in /var/discource/containers konfigurieren
app.yml zum Entfernen der Ports 80+443 anpassen
## Nach Änderungen an dieser Datei MÜSSEN Sie neu erstellen
## /var/discourse/launcher rebuild app
##
## SEIEN SIE *SEHR* VORSICHTIG BEIM BEARBEITEN!
## YAML-DATEIEN SIND SEHR, SEHR EMPFINDLICH GEGEN FEHLER BEI LEERZEICHEN ODER AUSRICHTUNG!
## Besuchen Sie http://www.yamllint.com/, um diese Datei bei Bedarf zu validieren
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.template.yml"
- "templates/web.socketed.template.yml"
#- "templates/web.ratelimited.template.yml"
## Welche TCP/IP-Ports soll dieser Container bereitstellen?
## Wenn Sie möchten, dass Discourse einen Port mit einem anderen Webserver wie Apache oder Nginx teilt,
## siehe https://meta.discourse.org/t/17247 für Details
expose:
#- "25654:80" # http
#- "443:443" # https
params:
db_default_text_search_config: "pg_catalog.english"
## Setzen Sie db_shared_buffers auf maximal 25% des Gesamtspeichers.
## wird automatisch von bootstrap basierend auf erkanntem RAM gesetzt, oder Sie können überschreiben
db_shared_buffers: "128MB"
## kann die Sortierleistung verbessern, erhöht aber den Speicherverbrauch pro Verbindung
#db_work_mem: "40MB"
## Welche Git-Revision soll dieser Container verwenden? (Standard: tests-passed)
#version: tests-passed
env:
LANG: en_US.UTF-8
# DISCOURSE_DEFAULT_LOCALE: en
## Wie viele gleichzeitige Webanfragen werden unterstützt? Hängt von Speicher und CPU-Kernen ab.
## wird automatisch von bootstrap basierend auf erkannten CPUs gesetzt, oder Sie können überschreiben
UNICORN_WORKERS: 2
## TODO: Der Domainname, auf den diese Discourse-Instanz reagieren wird
## Betrachten Sie dies als das, was sich in einen server_name in einer Nginx-Konfiguration verwandelt
DISCOURSE_HOSTNAME: 'your.site.com'
## Auskommentieren, wenn der Container mit demselben
## Hostnamen (-h Option) wie oben angegeben gestartet werden soll (Standard "$hostname-$config")
#DOCKER_USE_HOSTNAME: true
## TODO: Liste von per Komma getrennten E-Mails, die beim ersten Anmelden Administrator und Entwickler werden
## Beispiel 'user1@example.com,user2@example.com'
## Diese E-Mail wird verwendet, um sich zum ersten Mal bei der Discourse-Instanz anzumelden.
DISCOURSE_DEVELOPER_EMAILS: 'email@your.com'
## TODO: Der SMTP-Mailserver, der zum Überprüfen neuer Konten und zum Senden von Benachrichtigungen verwendet wird
DISCOURSE_SMTP_ADDRESS: smtp.your.com
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: email@your.com
DISCOURSE_SMTP_PASSWORD: addpasswordhere # WARNUNG ein '#' Zeichen im Passwort kann Probleme verursachen!
## Es gäbe keine Probleme wie oben mit dem Passwort, wenn dies ein JSON-Objekt wäre
## Die CDN-Adresse für diese Discourse-Instanz (konfiguriert zum Abrufen)
## siehe https://meta.discourse.org/t/14857 für Details
#DISCOURSE_CDN_URL: //discourse-cdn.example.com
## Der Docker-Container ist zustandslos; alle Daten werden in /shared gespeichert
volumes:
- volume:
host: /var/discourse/shared/standalone
guest: /shared
- volume:
host: /var/discourse/shared/standalone/log/var-log
guest: /var/log
## Plugins kommen hierher
## siehe https://meta.discourse.org/t/19157 für Details
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/discourse/docker_manager.git
## Alle benutzerdefinierten Befehle, die nach dem Erstellen ausgeführt werden sollen
run:
- exec: echo "Beginn der benutzerdefinierten Befehle"
## Wenn Sie die Absender-E-Mail-Adresse für Ihre erste Registrierung festlegen möchten, kommentieren Sie sie aus und ändern Sie sie:
## Nachdem Sie die erste Registrierungs-E-Mail erhalten haben, kommentieren Sie die Zeile wieder aus. Sie muss nur einmal ausgeführt werden.
- exec: rails r "SiteSetting.notification_email='noreply@khophi.co'"
- exec: echo "Ende der benutzerdefinierten Befehle"
Finden Sie /usr/local/nginx/conf/conf.d
Bearbeiten Sie die relevante Konfiguration
hinzufügen
proxy_pass http://unix:/var/discourse/shared/standalone/nginx.http.sock:;
proxy_set_header Host $http_host;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
zu location / {
include /usr/local/nginx/conf/503include-only.conf; mit einem # auskommentieren
auch
#include /usr/local/nginx/conf/pre-staticfiles-local-yourdomain.com.conf;
#include /usr/local/nginx/conf/pre-staticfiles-global.conf;
#include /usr/local/nginx/conf/staticfiles.conf;
#include /usr/local/nginx/conf/drop.conf;
#include /usr/local/nginx/conf/errorpage.conf;
#include /usr/local/nginx/conf/vts_server.conf;