Erstmal vorweg, langfristig sollte die Node.js-App auch in der Lage sein, Mails zu senden. Hab ich zwar in PHP auf normalen Webservern schon oft genug gemacht, aber wie genau es in Node funktioniert, habe ich mir tatsächlich noch nicht angeschaut. Das wird erst später relevant. Wäre aber auch gut, wenn man über die gleiche Domain manuell Mails verschicken kann. Daher bin ich davon ausgegangen, dass es Sinn macht, den Mailserver auf dem gleichen Server zu haben.
Währe zwar nett, während der Entwicklung den Mailserver direkt parat zu haben, wichtiger wäre aber erstmal die Node-App. Wenn es für die Node-App irrelevant wäre, auf welchem Server der Mailserver läuft, kann man das auch noch trenne. Aber gerade während der Entwicklung wäre es nützlich, alles beisammen zu haben.
Bevor ich versucht habe, das über NPM zu machen, war die App schonmal über die Domain erreichbar. Zumindest teilweise. Die Index.html konnte man aufrufen, aber keine statischen Assets, da gab es einen Fehler aufgrund von fehlendem SSL. Sowas war mir auch neu, aber ich dachte mir, bevor ich jetzt versuche, einen Workaround zu suchen, mach ich einfach SSL drauf, dann weiß ich auch gleich, wie das geht. Hier hab ich mich vom CCP etwas in die Irre führen lassen, da unter "Kostenloses SSL" angezeigt wurde "Ihre Domain erfüllt die Anforderungen nicht", dachte ich, ich brauche ein anderes Zertifikat. Und deshalb habe ich jetzt ein RapidSSL Zertifikat. Sowas nennt man glaube ich im Fachjargon einen "Anfängerfehler". Waren nur ein paar Euro, aber da ich das Zertifikat nun schon habe, kann ich es ja auch verwenden. Ich muss es ja nicht verlängern und kann dann später auf Let's Encrypt umsteigen.
Wenn ich mit docker inspect das Netzwerk anschaue, sehe ich meinen Container dort aufgelistet. Mailcow zwar nicht, aber das können wir wie gesagt erstmal zurückstellen.
Das ist der Output:
[
{
"Name": "mein-netzwerk",
"Id": "0d7fc..." ,
"Created": "2022-11-09T18:55:53.987844446+01:00",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "172.20.0.0/16",
"Gateway": "172.20.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"5894...": {
"Name": "meine-node-app-1",
"EndpointID": "5959502...",
"MacAddress": "...",
"IPv4Address": "172.20.0.2/16",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {}
}
]
Alles anzeigen
DNS sieht wie folgt aus für die Domain:
Host |
Type |
MX |
Destination |
Gültig |
* |
A |
|
[IPv4 des Servers] |
yes |
@ |
A |
|
[IPv4 des Servers] |
yes |
@ |
MX |
10 |
mail.meinedomain.de |
yes |
@ |
TXT |
|
v=spf1 +a +mx +a:mail.example.com -all |
yes |
dkim._domainkey |
TXT |
|
v=DKIM1;k=rsa;t=s;s=email;p=[...] |
yes |
ftp |
A |
|
[IPv4 des Servers] |
yes |
mail |
|
|
[IPv4 des Servers] |
yes |
www |
CNAME |
|
@ |
yes |
_dmarc |
TXT |
|
v=DMARC1; p=none |
yes |
Bei genauerem Hinsehen wundert mich gerade der Eintrag mit mail.example.com. War das ein automatisch generierter Platzhalter oder wo kommt der her? Muss ich daran etwas anpassen oder ihn entfernen, und sieht der Rest in Ordnung aus?
Ich kann mich nicht genug für die kontinuierliche Unterstützung bedanken, aber trotzdem nochmal vielen Dank für die Hilfe bisher.
tom434 TBT