Hilfestellung gesucht: Homeserver mit Docker

  • Hey,

    zu Hause betreibe ich einen kleinen Homeserver (Lenovo ThinkCentre M700) mit einer i5-6400T (2.20GHz) CPU, 16GB (2x8GB) RAM und einer 1TB Festplatte.
    Distribution: Ubuntu Server 24.04 (minimal), Docker mit Portainer und den Anwendungen PhotoPrism,TeddyCloud, Watchtower und Syncthing.

    Zusätzlich betreibe ich einen Raspberry Pi3B+ mit Pihole (+ unbound) und Syncthing. Per Cronjob aktualisiere ich die Filterlisten von Pihole (täglich um 4 Uhr morgens) und unbound (alle 6 Monate).

    Bisher laufen beide Systeme einwandfrei.

    Auf dem Lenovo-Server würde ich nun gerne Pihole mit installieren, um den Pi3B+ außer Betrieb nehmen zu können, da macht mir die DNS-Auflösung unter Ubuntu aber Probleme. Auch wollte ich dort einen Webserver nutzen, da scheint es unter Ubuntu jedoch nur PHP 8.1 offiziell zu geben. Daher die erste Frage, wäre Debian für den Lenovo besser geeignet?

    Der Webserver benötigt Apache2, MariaDB oder PostgreSQL und natürlich PHP. Die Webserveranwendung wird jedoch auch nur lokal genutzt und wird nicht über das Internet erreichbar sein. Ein XMPP/Jabber Server wollte ich zukünftig noch einrichten, dieser soll dann über das Internet erreichbar sein (hat die geringste Priorität). Auch würde ich gerne mein kleines PHP-Projekt über TOR erreichbar machen, da ich häufiger Anfragen diesbezüglich erhalte. Bei diesem Projekt habe ich durch den Webhoster aber nur eingeschränkten Zugriff, daher würde ich die Weiterleitung über HTML (<meta http-equiv="onion-location" content="http://<your-onion-service-address>.onion" />) einrichten, das sollte auch ausreichen. Aber wie installiere ich unter Docker TOR, das es offiziell als Docker-Image gar nicht gibt? Einen Relay würde meine Fritzbox nicht schaffen, daher benötige ich nur die Verbindung in das TOR-Netzwerk.

    Bisher betreibe ich das System ohne Firewall (ufw), da es theoretisch nur über mein Heimnetzwerk erreichbar ist bzw. über die Fritzbox VPN-Verbindung. Ist das auf dauer problematisch, oder kann ich mich auf meine Fritzbox verlassen?

    Macht es Sinn mehrere User auf dem System zu erstellen oder würde einer mit root Rechten ausreichen?

    Durch PhotoPrism habe ich schon einen Container mit MariaDB, sollte ich diesen mit verwenden oder lieber einen neuen Container erstellen?

    Wenn ich PHP über Docker installieren will, muss ich die Dockerfile dann unter /home/user/docker/ ablegen?

    Bisher habe ich alles über docker-compose erstellt, eine Dockerfile habe ich noch nie erstellt.


    Es muss nicht jede Frage direkt beantwortet werden, ich bin über jede Aufklärung dankbar.

  • ***** The main PPA for supported PHP versions with many PECL ext... : Ondřej Surý
    Co-installable PHP versions: PHP 5.6, PHP 7.x, PHP 8.x and most requested extensions are included. Only Supported Ubuntu Releases…
    launchpad.net

    Hol dir das PPA rein, dann hast du alles direkt bis PHP 8.4.

    Wieso eigentlich Apache2 und nicht NGINX oder ähnliches?

    A red dragon falls from the heavens... Ah, that memory has been lost. A shame. It was a favorite of mine...

  • Wenn du eh Docker nutzen willst, warum dann den WebServer lokal betreiben?
    Es gibt php images und nginx images. Du kannst beides getrennt laufen lassen und packst einfach die beiden Container in ein Docker-Netz und kannst dann in der nginx config einfach angeben, dass PHP Anfragen an den PHP container gehen sollen.

    Datenbanken gibts auch als Container und je nachdem welchen Container du bereits hast kannst du diesen DB container auch weiterverwenden.
    Oben schreibst du was vonm Portainer, warum nutzt du es dann nicht? Du kannst ja da recht einfach einen Stack erstellen und dein Dockerfile reinkopieren, Portainer macht dann den Rest +-

    Musician, Programmer, Linux Geek and what not. more...

  • Oben schreibst du was vonm Portainer, warum nutzt du es dann nicht? Du kannst ja da recht einfach einen Stack erstellen und dein Dockerfile reinkopieren, Portainer macht dann den Rest

    Den part habe ich irgendwie vergessen, aber ja, wenn man Portainer verwendet, wieso nicht nutzen.

    A red dragon falls from the heavens... Ah, that memory has been lost. A shame. It was a favorite of mine...

  • Wieso eigentlich Apache2 und nicht NGINX oder ähnliches?

    Die ganzen rewrites müsste ich für nginx umschreiben, das wollte ich mir ersparen.
    PPA wäre für die PHP Version eine Lösung.

    Du kannst ja da recht einfach einen Stack erstellen und dein Dockerfile reinkopieren, Portainer macht dann den Rest +-

    Über Stack mache ich auch das meiste. Nur wie bekomme ich da die Dockerfile hinein? Ich gebe dort doch den Pfad zur Dockerfile an.

  • Die ganzen rewrites müsste ich für nginx umschreiben, das wollte ich mir ersparen.

    Ist jetzt kein Hexenwerk und einfach gemacht.

    Über Stack mache ich auch das meiste. Nur wie bekomme ich da die Dockerfile hinein? Ich gebe dort doch den Pfad zur Dockerfile an.

    Nein? Also sicherlich kann man das so tun, ist aber kein muss:

    Musician, Programmer, Linux Geek and what not. more...

  • Ich verstehe nur Bahnhof :whistling:

    Ich hab jetzt mal zum testen über VMWare Debian 12 (minimal) installiert und darauf Docker & Portainer installiert.

    So sieht meine Docker compose nun aus:

    Dockerfile:

    Wie soll ich diese Dockerfile in Compose hineinbekommen? Das verstehe ich nicht.

    Die Datenbank habe ich damit in einem Volume, die Webdaten unter /home/home/www.

    Bei build: /home/home/.php8-1 bin ich mir unsicher, es könnte auch

    Code
    build:
          context: php
          dockerfile: ./home/home/.php8-1.Dockerfile

    sein? Ich weiß halt nicht wo der docker Ordner standardmäßig unter Portainer liegen soll.

  • Naja bei build gibst du den Pfad an wo dein Build stattfinden soll. Bei dir oben liegt also unter /home/home/.php8-1 sowohl das Dockerfile als auch die php.ini

    Der Pfad kann natuerlich auch angepasst werden. Eigentlich wuerde ich den Pfad nicht in ein komisches Home-Verzeichniss packen sondern unter das Docker-Root z.B. /data/docker/persistent/container-build/php-8.1/ (default vermutlich dann /var/lib/docker/persistent/)
    Damit weiß man dann klar, dass es dazu gehoert.

    Musician, Programmer, Linux Geek and what not. more...

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!