1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. IT-Infrastruktur und Administration
  3. Server & Hosting

Hilfestellung gesucht: Homeserver mit Docker

    • Frage
  • Luke
  • 28. Januar 2025 um 22:10
  • Unerledigt
  • Luke
    4
    Luke
    Mitglied
    Reaktionen
    1
    Punkte
    151
    Beiträge
    25
    • 28. Januar 2025 um 22:10
    • #1

    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.

  • Syntafin
    27
    Syntafin
    LISTstack Dev
    Reaktionen
    498
    Punkte
    7.783
    Trophäen
    2
    Beiträge
    1.414
    • 28. Januar 2025 um 22:25
    • #2
    ***** 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...

  • aebian
    8
    aebian
    Mitglied
    Reaktionen
    54
    Punkte
    599
    Beiträge
    100
    Einträge
    4
    • 28. Januar 2025 um 22:35
    • #3

    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...

    My Hardware: https://aebian.org/hardware/aebian

  • Syntafin
    27
    Syntafin
    LISTstack Dev
    Reaktionen
    498
    Punkte
    7.783
    Trophäen
    2
    Beiträge
    1.414
    • 28. Januar 2025 um 22:50
    • #4
    Zitat von aebian

    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...

  • Luke
    4
    Luke
    Mitglied
    Reaktionen
    1
    Punkte
    151
    Beiträge
    25
    • 28. Januar 2025 um 23:02
    • #5
    Zitat von Syntafin

    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.

    Zitat von aebian

    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.

  • aebian
    8
    aebian
    Mitglied
    Reaktionen
    54
    Punkte
    599
    Beiträge
    100
    Einträge
    4
    • 28. Januar 2025 um 23:14
    • #6
    Zitat von Luke

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

    Ist jetzt kein Hexenwerk und einfach gemacht.

    Zitat von Luke

    Ü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...

    My Hardware: https://aebian.org/hardware/aebian

  • Syntafin
    27
    Syntafin
    LISTstack Dev
    Reaktionen
    498
    Punkte
    7.783
    Trophäen
    2
    Beiträge
    1.414
    • 28. Januar 2025 um 23:28
    • #7

    Compose Datei in Texteditor deiner Wahl öffnen und bei Portainer einfach im Editor einfügen.

    Sieht dann etwa so aus.

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

  • Luke
    4
    Luke
    Mitglied
    Reaktionen
    1
    Punkte
    151
    Beiträge
    25
    • 29. Januar 2025 um 17:25
    • #8

    Ich verstehe nur Bahnhof :kissing_face:

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

    So sieht meine Docker compose nun aus:

    Code
    services:
     db:
       image: postgres
       environment:
         POSTGRES_PASSWORD: password
       volumes:
         - postgres_data:/var/lib/postgresql/data
     php:
       build: /home/home/.php8-1
       volumes:
         - /home/home/www:/var/www/html
       depends_on:
         - db
       ports:
         - "8080:80"
     webserver:
       image: httpd:latest
       volumes:
         - /home/home/www:/usr/local/apache2/htdocs
       depends_on:
         - php
    volumes:
     postgres_data:
    Alles anzeigen

    Dockerfile:

    Docker
    FROM php:8.1-fpm
    # Installiere zusätzliche Pakete
    RUN apt update && apt install -y \
        libjpeg62-dev \
        libpng-dev \
        freetype-dev \
        libzip-dev \
        php8.1-gd \
        php8.1-mbstring \
        php8.1-xml
    
    # Kopiere PHP-Ini-Datei
    COPY /home/home/.php8-1/php.ini /usr/local/etc/php/
    # Installiere Composer
    RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
    # PHP-FPM-Port
    EXPOSE 9000
    Alles anzeigen

    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.

  • aebian
    8
    aebian
    Mitglied
    Reaktionen
    54
    Punkte
    599
    Beiträge
    100
    Einträge
    4
    • 29. Januar 2025 um 19:48
    • #9

    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...

    My Hardware: https://aebian.org/hardware/aebian

Jetzt mitmachen!

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

Benutzerkonto erstellen Anmelden

Tags

  • webserver
  • linux
  • homeserver
  • docker
  • portainer
  • dockerfile
  • compose

Benutzer online in diesem Thema

  • 1 Besucher

Rechtliches

Impressum

Datenschutzerklärung