Was ist der beste Weg, Discourse Forum auf einer Proxmox VM zu installieren und es im Internet verfügbar zu machen

Hallo, ich bin neu bei all diesen Server-Sachen.

Bitte helft mir, Discourse in einer Proxmox-VM oder einem Container zum Laufen zu bringen.
Oder gibt es irgendwo ein vorkonfiguriertes Image, das ich importieren kann?

Vielen Dank.

@pfaffman verfügt möglicherweise über ein bezahltes Installationsverfahren, das er durchführen kann. Es ist jeden Cent wert.

Danke, Alex!

Das Erste wäre, sich die offizielle Standardinstallation von Discourse anzusehen, aber wenn man sich anschaut, was Proxmox ist, denke ich, die Antwort lautet: „Frag sie.

Ich bin mir nicht sicher, was du an der Tatsache, dass es auf einer Proxmox-VM läuft, besonders findest. Installiere Ubuntu 18 in einer VM. Öffne die Ports 80 und 443 für das Internet. Folge der oben verlinkten Discourse-Dokumentation. Bei welchem Teil brauchst du Hilfe?

Ich bin mit Server-Dingen noch komplett neu, lerne aber gerade dazu.
So wie jetzt: Es macht keinen Unterschied, welchen Hypervisor ich verwende. THX

In der Anleitung steht:
Du musst SSH-Zugang haben (ich habe ihn über lokale IP & Putty) zu einem 64-Bit-Linux-Server mit Docker-Unterstützung.
(Meinst du damit, dass Docker vor Beginn der Installation noch nicht installiert sein darf??)

Sollte es eine VM sein oder ist auch ein CT möglich?
Was empfiehlst du?

Welche Linux-Distribution würdest du empfehlen?

Ich denke, der Rest ist in der Anleitung klar, aber wir werden sehen.

Es kann installiert sein oder auch nicht. Wenn es nicht installiert ist, wird es vom Installations-Skript automatisch nachinstalliert.

Ich bin mir nicht sicher, ob Docker in einem CT ordnungsgemäß funktioniert – man würde dann einen Container innerhalb eines Containers betreiben, was Probleme verursachen könnte. Greifen Sie lieber zu einer VM.

Die Anleitung sagt:

Die Standardeinstellung von der aktuellen unterstützten LTS-Version von Ubuntu Server funktioniert einwandfrei

Wenn Sie nichts gegen Ubuntu haben, würde ich diese verwenden (ich nutze sie für meine Discourse-Websites). Die aktuelle LTS-Version ist 20.04. Mein früherer Beitrag erwähnte „Ubuntu 18“, weil ich diese Version verwende (und sie noch weitere drei Jahre unterstützt wird, also habe ich keine Eile, sie zu wechseln). Für eine neue Installation ist es jedoch wahrscheinlich besser, die aktuelle Version zu verwenden.

Die VM befindet sich dann in meinem Netzwerk mit der IP-Adresse. Leitet ein Nginx-Reverse-Proxy die Domain für Discourse vom Router an die IP-Adresse der VM auf Port 80 weiter? Wie sollte das Setup aussehen?

Ich denke, ich muss vor der Installation ein Let’s Encrypt-Zertifikat beantragen, damit diese Verbindung funktioniert.

Ich denke, du hast wahrscheinlich recht. Du müsstest auch das integrierte Let’s Encrypt in der Discourse-Installation deaktivieren. Das ist möglich, aber ich hatte bisher wenig Anlass, das zu tun. Aber ich bin mir sicher, dass eine Suche hier im Forum Anleitungen dazu finden würde.

Ich bin mir nicht sicher, ob ich ein Skript ändern kann. (Das klingt für einen Anfänger gefährlich.)

Was ist, wenn ich die Ports 80 und 443 direkt an die VM zur Installation weiterleite und sie nach Abschluss wieder auf RevManager umstelle?

Oder nur Port 80?

Ich denke auch, dass es in dieser Situation eine gute Idee wäre, wenn jemand bereits ein Zertifikat hat, im Skript einfach (als Anfänger kann ich nicht sagen, wie kompliziert das ist) eine Frage zu stellen: „Zertifikat Y/N?

Das wirst du tun müssen. Discourse-setup funktioniert für deine Einrichtung nicht. Du hast einen ausgesprochen schwierigen Weg gewählt. Es gibt How-to-Anleitungen für die Installation mit anderen Webservern.

Ich würde empfehlen, zuerst eine einfachere Installation auszuprobieren.

THX
Kannst du mir bitte sagen, wie ich das Skript ändere?
Ich werde es versuchen.
Ich muss diese Dinge lernen.

Was hältst du von diesem Vorschlag?

Oder wäre das perfekt!

Das würde funktionieren und die skriptgesteuerte Installation problemlos abschließen lassen. Das Problem ist jedoch, dass deine Discourse-Installation nun erwartet, ihr eigenes TLS-Zertifikat zu verwalten, was sie nicht mehr kann, sobald du die Weiterleitung von Ports 80 und 443 an diese VM stoppst. Du musst Discourse also anweisen, gar nicht zu versuchen, ein Zertifikat zu beantragen oder TLS zu verwalten. Ich glaube (obwohl ich das nicht getestet habe), dass du das erreichen kannst, indem du die Zeilen web.ssl.template.yml und web.letsencrypt.ssl.template.yml in app.yml auskommentierst. Auch unter Run other websites on the same machine as Discourse findest du relevante Informationen, die dies ebenfalls unterstützen.

Es gibt keinen echten Grund, das zu tun, da es trivial ist (sofern du die Dinge nicht unnötig komplizierst, wie du es tust), einfach ein neues Zertifikat zu beantragen – die Tatsache, dass du bereits ein Zertifikat hast, spielt dabei keine Rolle. Der komplizierende Faktor in deinem geplanten Setup ist nicht, dass du bereits ein Zertifikat hast, sondern dass diese Anordnung es Discourse nicht erlaubt, sein eigenes Zertifikat zu verwalten.

DANKE, ich werde es versuchen.
Bedeutung:
Port 80 & 443 vom Router auf die IP der VM weiterleiten.
Dann kann ich mit dem normalen Skript installieren.
Wenn die Installation abgeschlossen ist, bearbeite ich die Dateien?

Andere Anforderungen

Hostname für dein Discourse? [discourse.example.com]:
NoIp.domain.com von No-IP

E-Mail-Adresse für Admin-Konto(s)? [me@example.com, you@example.com]:
→ Kann ich hier auch eine E-Mail-Adresse von 1und1 (IONOS) angeben?
me@MEINE.Domain.com
unterschiedlich von NoIp.domain.com?

SMTP-Server-Adresse? [smtp.example.com]: → von IONOS
SMTP-Port? [587]: → von IONOS
SMTP-Benutzername? [user@example.com]: → ist die E-Mail
SMTP-Passwort? [pa$word]: → OK
Let’s Encrypt-Konto-E-Mail? (ENTER zum Überspringen) [me@example.com]: E-Mail vom No-IP-Konto aber ohne Passwort?

Nein, ich meine, bearbeite die Datei, bevor die Installation ausgeführt wird. Wie oben erwähnt, kannst du das discourse-setup-Skript nicht verwenden.

Du kannst jede beliebige E-Mail-Adresse (oder mehrere) verwenden, unabhängig von der Domain.

Stelle sicher, dass der Server Massen-E-Mails zulässt, falls du beabsichtigst, dies einmal als öffentliches Forum zu nutzen.

Warum sollte es ein Passwort benötigen? Der einzige Zweck dieser E-Mail ist es, dass Let’s Encrypt dich über eine bevorstehende Zertifikatsabläufe informiert (was eigentlich nie passieren sollte). Aber dein Container sollte ohnehin kein Zertifikat abrufen.

DANKE
Ich denke, ich kann das Skript verwenden, nachdem ich alle Informationen gesammelt habe.
Ich werde später eine Zusammenfassung meiner Konfiguration erstellen, die ich einrichten werde.

Ich freue mich darauf, deinen Fortschritt zu sehen.

Das sollte mit dem Skript funktionieren.

Anstatt eines gemieteten VPS verwende ich eine VM im Netzwerk.

Domain.xx als CNAME auf Fritz!Domain
Fritz!Box leitet Port 80 & 443 an die IP des Reverse Managers weiter.
Der Reverse Manager leitet Domain.xx an Port 80 & 443 an die IP der VM (IP 2) weiter.

Keine Zertifikate auf Domain.xx.

Auf der VM (IP 2) habe ich nur ein frisches Ubuntu installiert.
Wie kann ich testen?
Was halten Sie davon?