buschfrankmann
Goto Top

Filehosting via HTTP(S) - Docker

Hallo Kollegen,

ich bin seit einiger Zeit dabei regelmäßig Linux-Server zu installieren. Darauf läuft teilweise proprietäre Software, welche ich aktuell händisch via WinSCP (oder scp) auf die entsprechenden Server kopiere um diese darauf zu installieren.

Ich dachte es wäre am einfachsten, einen HTTP(S) Server aufzusetzen, den ich mit meiner Domäne (z.B. files.madgeeks.de) anbieten kann und damit dann die Softwarepakete einfach via wget oder curl herunterladen kann.

Im ersten Schritt wäre das natürlich einfach direkt über einen apache2 Webserver umsetzbar, aber ich dachte mir, da gibts doch bestimmt schon die ein oder andere Softwarelösung, mit der ich auch ein Webfrontend für die Daten bekommen.

Habe nun mal etwas google befragt, habe aber nur uralte, java-basierte Lösungen gefunden aber nichts was ich freiwillig benutzen würde.

Grundsätzliche könnte ich genau der mit Gitlab umsetzen, jedoch ist das schon ein riesiger Software-Stack nur für die eine gewünschte Funktion.

Nun zur Preisfrage... Kennt jemand eine Software, die auf Linux läuft, in der ich mit einer simplen Web-UI paar Daten hochladen kann um diese dann via wget/curl herunterladen kann? Super schön wäre dann noch ein prilivege system, bei den ich einzelne Daten/Ordner nur mit entsprechenden Login laden kann.

Falls jemand der Meinung ist, ich bin einfach nur zu faul einen Webserver aufzusetzen und zu konfigurieren. Jap, da habt Ihr recht face-smile

Danke schonmal!
VG

Content-ID: 61197731415

Url: https://administrator.de/contentid/61197731415

Ausgedruckt am: 21.11.2024 um 16:11 Uhr

Kaffeepause07
Lösung Kaffeepause07 13.02.2024 um 23:10:15 Uhr
Goto Top
Hi,

Ich nutze dafür File Browser als docker container.
https://filebrowser.org/installation

Das web Frontend ist wirklich gut und Ordner oder Dateien kannst du per Share Link einfach freigeben und dann per curl nutzen.

Grüße
BuschFrankmann
BuschFrankmann 13.02.2024 um 23:17:15 Uhr
Goto Top
Hey,

das sieht ja fast genau so aus wie ich es mir vorgestellt habe!
Ich setze mir das mal lokal auf und schaue ob das so in meinen Workflow passt.

Vielen Dank!

Gruß
magicteddy
magicteddy 13.02.2024 aktualisiert um 23:31:17 Uhr
Goto Top
Moin,

ich mag den MC ala MidnightComander, Verbindung via Shell, FTP, SFTP mit Login.
Vorteil für mich: Ich kann auch mehrere Dateien auswählen und rauf- / herunterladen. Du hast damit die Wahl, auf dem Server arbeiten und auf die Clients hochladen oder auf den Clients arbeiten und die Daten herunterladen.

Vielleicht ja ein anderer Ansatz?

-teddy
StefanKittel
StefanKittel 14.02.2024 um 00:16:37 Uhr
Goto Top
Hallo,

als File-Hosting nutzte ich einen Account bei All Inkl.
Upload mit FTP, Download via Web.

Aber warum nicht Git oder ein anderes Repository?

Stefan
BuschFrankmann
BuschFrankmann 14.02.2024 aktualisiert um 00:19:47 Uhr
Goto Top
In Bezug auf die Empfehlung von @Kaffeepause07 habe ich mal filebrowser ausprobiert.
Habe anfangs etwas mit der Berechtigungsstruktur gekämpft, aber jetzt läufts, auch so wie ich es will.

Aufm Server läuft das als Docker-Container, mit einem speziellen Benutzer, dessen Stamm-Ordner nur Berechtigungen für den User enthalt, darin liegen dann alle Files die über "filebrowser" verwaltet werden.

Danach noch schnell einen Reverse-Proxy dran geschnallt und übers Internet erreichbar gemacht, LÄUFT!
So wie ich es mir gewünscht habe, einfache UI, simples "Sharing" und via wget herunterladbar.

Denke ich werde das so in Zukunft benutzen. Zur not können die Files aus so als Link geteilt und via Browser heruntergeladen werden.

Wenn es jemand braucht, habe hier das docker-compose.yml:
version: '3'  
services:
  filebrowser:
    image: filebrowser/filebrowser:s6
    container_name: filebrowser
    volumes:
      - /mnt/docker/volume/filebrowser/files:/srv
      - /mnt/docker/volume/filebrowser/filebrowser.db:/database/filebrowser.db
      - /mnt/docker/volume/filebrowser/settings.json:/config/settings.json
    environment:
      - PUID=1001
      - PGID=1001
    ports:
      - 18095:80
    labels:
     - "com.centurylinklabs.watchtower.enable=true"   

PUID und GUID "1001" ist hier der neu erstellte Benutzer. Dessen Home-Directory ist /mnt/docker/volume/filebrowser
EDIT:
Hier noch ein YT-Link, wenn man erstmal schauen will wie es aussieht und wie man es einrichtet:
https://youtu.be/V6kHXWKwzn8?si=9A11IwIcAOnDKBLA
BuschFrankmann
BuschFrankmann 14.02.2024 aktualisiert um 00:22:26 Uhr
Goto Top
Zitat von @StefanKittel:

Hallo,

als File-Hosting nutzte ich einen Account bei All Inkl.
Upload mit FTP, Download via Web.

Aber warum nicht Git oder ein anderes Repository?

Stefan

Git hatte ich mir auch bereits überlegt, nur ist für mich rein der "Download" relevant. Als Upload hätte ich da gerne ne GUI. Ich hätte theoretisch auch Github "missbrauchen" können, wollte aber die Daten bei mir liegen haben.

Einige Dateien sind auch mehrere GB groß, da weiß ich auch nicht wie sich Github verhält.
BuschFrankmann
BuschFrankmann 14.02.2024 um 00:24:10 Uhr
Goto Top
Zitat von @magicteddy:

Moin,

ich mag den MC ala MidnightComander, Verbindung via Shell, FTP, SFTP mit Login.
Vorteil für mich: Ich kann auch mehrere Dateien auswählen und rauf- / herunterladen. Du hast damit die Wahl, auf dem Server arbeiten und auf die Clients hochladen oder auf den Clients arbeiten und die Daten herunterladen.

Vielleicht ja ein anderer Ansatz?

-teddy

Hi,
ja das wäre auch ne Möglichkeit, doch aktuell ist mir die Lösung via "filebrowser" als Docker-Container am liebsten.

Grundsätzlich war mein Ziel ja eine Art "Nextcloud" aber wirklich komplett runtergebrochen auf Datei Up- und Download. face-smile
GNULinux
GNULinux 16.02.2024 um 09:26:39 Uhr
Goto Top
Zitat von @StefanKittel:
Aber warum nicht Git oder ein anderes Repository?

Stefan

Weil Git nicht primär für Binärdateien gedacht ist, sondern für Quellcode. Entweder lädt er sich unnötig alles runter, oder er müsste das verbiegen, alles nicht wirklich im Sinne der Sache.

Ein Webserver mit ggf aktiviertem Verzeichnisindex ist da schon die deutlich sinnvollere Lösung. Oder halt was darauf aufbauendes wie NC oder bereits genannte, wenn er mehr Funktionen möchte.
flo72it
flo72it 12.03.2024 um 11:13:16 Uhr
Goto Top
Moin,

ggf. ist Ansible (builtin.copy oder builtin.get_url) für dich interessant.

Viele Grüße, Flo