Skip to main content
Hyper 8 Spacefun Videos

Pydio Cells – So einfach baust du deine eigene Cloud!

Hallo liebe Starship Trooper. In diesem Video  möchte ich euch eine Lösung für das Selfhosting   00:00
genauer vorstellen. Damit bist du in der Lage,  deine Daten direkt bei dir zu Hause zu behalten   00:06
und trotzdem überallhin zu synchronisieren und  mit deinen Freunden und der Familie zu teilen.   00:12
Du musst daher deine Daten nicht mehr bei den  großen Kraken wie Google und Amazon abliefern,   00:18
sondern hast sie voll unter deiner eigenen  Kontrolle du brauchst nur einen ganz normalen   00:24
DSL-Anschluss und Zugriff auf deinen Router  und dann kann es auch schon losgehen. Wie   00:29
das Ganze geht, das erkläre ich Dir jetzt hier im  Detail. Ich habe hier also bei mir meinen Router,   00:34
der hat so ein Webinterface und eine IP-Adresse,  die sehe ich hier '192.168.1.1' hat der mir. Da   00:41
gibt es dann einen Punkt 'DNS' und dort 'Dynamic  DNS', denn wir müssen natürlich irgendeine Domain,   00:50
also einen Namen haben, über die wir nachher  auf unsere Lösung zugreifen können. Ich kann   00:56
hier direkt bei mir im Router Dynamic DNS  aktivieren. Das kannst du z.B. bei einer   01:01
FRITZ!Box auch. Ich habe jetzt hier sowas wie ein  Zyxel Router, da kann ich das direkt integriert.   01:06
Hier habe ich mir einen Anbieter ausgewählt, den  ich persönlich sehr gerne habe und auch empfehle.   01:11
Das wäre freedns.afraid.org. Und habe mir dort  eine dynamische Domain registriert und die heißt   01:16
tuxwiz.mooo.com. Das heißt, mein Anschluss ist  immer unter dieser URL erreichbar tuxwiz.mooo.com.   01:23
Als Nächstes habe ich hier natürlich  meinen Server ich habe jetzt hier TuxWiz,   01:32
meine eigene Linux-Distribution, die kannst  du hier auf spacefun.ch beziehen und die habe   01:36
ich in der Mini Stable Variante im Einsatz. Denn  die eignet sich besonders gut zum Betrieb deines   01:42
eigenen Servers, denn sie bringt hier auch eine  abgespeckte grafische Oberfläche mit. Dann muss   01:48
ich natürlich die IP-Adresse meiner Installation  wissen, die kann ich herausfinden mit 'hostname   01:54
-I' und dann zeigt er mir die hier schon an. Das  ist die IP-Adresse von meinem Server, den ich hier   02:01
installieren möchte '192 168 1.157'. Dann kann  ich hier in den Netzwerkeinstellungen auch noch   02:06
Port-Forwarding aktivieren. Dazu muss ich mich  noch mal neu anmelden und kann jetzt hier direkt   02:14
in den 'Einstellungen / Netzwerkeinstellungen' in  dem Bereich NAT das Port-Forwarding aktivieren.   02:20
Das habe ich hier für euch schon mal gemacht.  Hier habe ich zwei Services HTTP das wäre Port   02:28
80 und HTTPS Port 443, die leite ich weiter auf  die IP-Adresse meines Servers, die ich vorhin   02:33
ermittelt habe, mit 'hostname -I' '192.168.1.157'.  Hier seht ihr Start-Port 80, Zielport 80,   02:40
Startport 443 und Zielport 443. Das heißt, mein  Server wäre jetzt über tuxwis.mooo.com via HTTP   02:50
und HTTPS aus dem Internet erreichbar. Jetzt läuft  hier natürlich noch überhaupt kein Dienst, das   03:00
heißt, ich muss meine Server Software erst noch  installieren. Das mache ich wie üblich in Docker   03:05
und Docker beziehe ich mir direkt von docker.io.  Da suche ich hier nach 'Docker install Debian',   03:12
denn meine Linux-Distribution basiert auf Debian  und deswegen kann ich mich an dieser Anleitung   03:20
orientieren. Docker gibt es natürlich für viele  andere Linux-Distributionen. Die sind hier alle   03:27
aufgeführt. Da musst du halt das suchen, was du  bei dir im Einsatz hast. Dann scrolle ich hier   03:32
etwas weiter runter und kann dann hier schon die  Installation beginnen. Als allererstes kopiere   03:38
ich mir hier diese Befehle. Die installieren mir  hier dieses apt Repository von Docker. Da klicke   03:45
ich hier drauf 'copy' sage hier 'Ctrl + Shift  + V' zum Einfügen und muss natürlich jetzt mein   03:52
Passwort eingeben, denn all diese Befehle werden  mit Root-Rechten ausgeführt. Was hier passiert,   03:59
hier im Hintergrund installiert er jetzt  das Docker-Repository und den entsprechenden   04:05
Signing-Key und ist damit dann eigentlich schon  startklar. Hier werden am Ende auch noch die   04:10
Paket-Repository-Metadaten aktualisiert und wir  können eigentlich sofort mit der Installation   04:15
beginnen. Wie das genau geht, das steht hier  'Install Docker Packages latest' und kann   04:21
mir ich kann mir hier diesen Befehl ebenfalls  wieder kopieren 'Ctrl + Shift + V', 'Yes'. Hier   04:27
installiert er mir jetzt Docker im Hintergrund  und ich kann dann nachher meinen Benutzer noch   04:36
zur Docker-Gruppe hinzufügen, damit der  User selbst auch in der Lage ist Container   04:41
zu starten. Mein User heißt hier 'tux' und das  kann ich gleich im Anschluss auch noch machen.   04:46
Im Hintergrund installiert er mir hier jetzt  noch Docker. Er bietet mir jetzt hier noch an,   04:54
dieses 'hello world' Sample zu starten. Das könnt  ihr machen um zu schauen ob Docker wirklich läuft,   04:58
ihr müsst es aber nicht wirklich tun. Hier seht  ihr 'docker-ce' wird bereits installiert und   05:03
sollte eigentlich im Hintergrund auch schon  gestartet werden über einen systemd-Service.   05:09
Das ist jetzt passiert. 'sudo usermod -a -G  docker tux'. Jetzt habe ich meinen Benutzer   05:14
'tux' der Gruppe 'docker' hinzugefügt. Damit  das aktiv wird, muss ich mich einmal abmelden,   05:23
denn diese User-Änderungen werden erst bei  einer neuen Anmeldung aktiv. Das habe ich   05:30
jetzt hier gemacht und ich kann gleich  eigentlich weitermachen. Ich möchte euch   05:36
heute eine etwas andere Lösung vorstellen. Ihr  könnt natürlich so etwas wie ownCloud, Nextcoud   05:40
oder SeaFile installieren. Das habe ich bereits in  anderen Videos erklärt. Die Voraussetzungen sind   05:45
eigentlich immer gleich, ihr braucht entweder eine  so etwas wie Port-Forwarding, einen DynDNS-Eintrag   05:52
oder ihr könnt bei DS-Lite z.B. auch so etwas  wie ein Cloudflared-Tunnel verwenden. Da seid ihr   06:01
ganz flexibel. Und jetzt kann ich direkt mit der  Installation dieser Lösung, die ich heute zeigen   06:07
will, loslegen und die heißt Pydio. Vielleicht  habt ihr davon schon gehört. Pydio gibt es schon   06:12
relativ lange. Ich kenne das eigentlich schon ewig  so lange, wie ich Nextcloud kenne, kenne ich auch   06:18
Pydio und das ist wirklich eine tolle Lösung. Die  Basis ist auch hier wieder frei und Open Source   06:24
und ihr könnt hier auf pydio.com herunterladen.  Ich gehe hier im Menü auf den Punkt 'Download'   06:31
und sehe jetzt hier verschiedene Möglichkeiten  zum Download. Das Ganze gibt es für verschiedene   06:37
Betriebssysteme wie Linux, macOS, Windows und auch  für arm wie z.B. den Raspberry Pi, das wäre jetzt   06:42
hier arm64 in den neueren Versionen. Wir möchten  natürlich Docker verwenden, denn damit sind wir   06:47
sehr flexibel und brauchen nicht hier irgendwelche  Pakete zu installieren. Ich gehe jetzt hier also   06:52
auf den Docker Hub. Das ist die übliche Quelle  zum Bezug von Docker Images, und dort finde ich   06:57
hier auch noch mal eine weitere Anleitung. Das  ignoriere ich jetzt hier alles, denn wir möchten   07:03
das mit so einem sogenannten Docker Compose File  machen, denn damit deklarieren wir dieses Setup   07:07
und sind immer auf der sicheren Seite. Wir  möchten aber auch, dass das ganze über ein   07:13
Zertifikat verschlüsselt wird über Let’s Encrypt  und das wird hier nicht beschrieben, sondern   07:19
hier in den weiteren Beispielkonfigurationen. Da  kann ich hier unten auf 'More examples / relevant   07:25
sample configuration⁠' klicken und lande dann  hier in dem Git-Repository von Pydio Cells,   07:31
denn eigentlich heißt Pydio Pydio Cells, seit  einiger Zeit schon und hier gibt es jetzt ganz   07:38
verschiedene Beispiele. Basic, Behind Traefic,  das ist auch so ein Reverse Proxy wie der Nginx   07:43
Proxy Manager, so ähnlich, den habe ich ja auch  schon gezeigt. Wir möchten eine Lösung hier direkt   07:48
mit Let's Enrypt Zertifikaten. Wir packen jetzt  also keinen weiteren Proxy vor die Lösung davor.   07:53
Hier sehe ich jetzt 'Cells Home with a Let's  Encrypt certificate'. Genau das möchten wir hier   07:59
einrichten. Hier steht auch noch mal, es muss Port  80 und 443 erreichbar sein. Das haben wir schon   08:06
eingerichtet in unserem Router, wir sind also  startklar. Dazu brauche ich jetzt halt hier diese   08:11
Files, und zwar 1 2 3 Dateien und die kann ich mir  hier einzeln herunterladen. Ich könnte auch das   08:18
ganze Repository clonen und mir die Dateien dann  da rauspicken, ich kann die aber auch hier einzeln   08:24
aufrufen. Ich klicke hier entweder auf 'Download  raw file'. Ja dann habe ich schon 'Download raw   08:29
files' und dann mache ich das gleiche hier eben  mit den weiteren Dateien. Auch die lädt er mir   08:35
direkt jetzt hier in mein Home-Verzeichnis  herunter. Wir möchten das ein bisschen sortieren,   08:43
das heißt, ich mache mir hier in meinem  Home-Verzeichnis, ich mache mal hier ein 'ls',   08:49
da seht ihr die drei Dateien. Ich mache mir jetzt  einen Ordner 'mkdir pydio' da rein kopiere ich   08:53
jetzt diese Dateien 'mv docker-compose.yml pydio',  'mv install-conf.yml pydio' und 'mv env' und das   09:00
kopiere ich jetzt nach 'pydio/.env' als Hidden  File. Das soll eine versteckte Datei sein. Jetzt   09:08
gehe ich mit 'cd pydio' in diesen Ordner rein und  sehe jetzt diese drei Dateien, also eigentlich   09:16
sehe ich jetzt nur zwei, weil ja die .env-Datei  jetzt versteckt ist. Die kann ich mir jetzt mit   09:23
'ls -al' trotzdem anzeigen lassen. Da seht ihr die  '.env'. Das Ganze kann ich jetzt bearbeiten z.B.   09:28
mit 'nano docker-compose.yml' und jetzt ist hier  einiges zu tun. Ich möchte jetzt hier in dieser   09:34
Datei erst einmal einige Änderungen vornehmen. Die  Grundlagen sind eigentlich gesetzt. Hier seht ihr,   09:43
hier werden überall Variablen verwendet.  '${ADMIN_EMAIL}', '${CELLS_ADMIN_PWD}' und   09:49
so weiter. Das sind alles Variablen. Das erkennt  ihr hier an dem Dollar unter geschweiften Klammer   09:53
und das wird über diese .env-Datei befüttert.  Ich möchte jetzt allerdings hier noch diese   09:59
Volumes bearbeiten. Ich möchte nämlich, dass diese  Ordner nicht irgendwo, meine Datenordner nicht   10:05
irgendwo im System herumfliegen, sondern in diesem  pydio-Verzeichnis. Dann habe ich alles beieinander   10:11
und kann einfach dieses Verzeichnis sichern und  kann es dadurch jederzeit auch wiederherstellen.   10:16
Das kann ich sicherstellen, indem ich hier  einfach ein './' davorstelle. Also das heißt,   10:21
er legt mir in dem Verzeichnis dieses 'cellsdir'  an. Das Gleiche gilt hier für das MySQL also   10:27
'mysqldir' und das ist in dem Container das  Verzeichnis '/var/lib/mysql'. Dann kann ich   10:36
mir hier unten diese Einträge für die 'volumes'  sparen. Das heißt, die könnte ich jetzt hier   10:42
theoretisch herauslöschen, es ist aber auch  nicht so schlimm, wenn die jetzt hier noch   10:46
drinstehen. So, jetzt sollte das Ganze eigentlich  erledigt sein. Ich sage jetzt noch mal 'Ctrl + O',   10:51
speichern 'Ctrl + X' beenden. Ihr könnt das vorher  natürlich auch noch mal weg kopieren oder ihr   11:00
könnt das auch immer noch mal vergleichen, hier  mit der Datei, die hier online im Git findet.   11:07
Jetzt habe ich also hier eine docke-compose.yml  und diese install-conf.yml, die kann ich mir auch   11:13
mal anzeigen lassen mit 'cat install-comf.yml'  und da sind auch noch mal einige Konfigurationen   11:18
für die Applikation selbst definiert z.B. der Port  für die Datenbank und hier auch wieder ebendiese   11:26
Variablen aus der .env-Datei. Die .env-Datei  bearbeiten wir jetzt, denn da müssen wir jetzt   11:33
natürlich noch einige Änderungen vornehmen, 'nano  .env'. Hier kann ich jetzt bei 'PUBLIC_FQDN',   11:38
fully qualified domain name heißt das, meine  DynDNS-Adresse eintragen. Das wäre jetzt hier 11:45
tuxwiz.mooo.com. Als Admin E-Mail kann  ich jetzt meine E-Mail-Adresse eintragen,   11:51
das wäre jetzt hier bei mir 11:59
astronaut@spacefun.ch. 'CELLS_ADMIN_PWD', also pwd  steht für Passwort, SpaceFun, 'MYSQL_ROOT_PWD',   12:01
da könnte ich jetzt was anderes eingeben,  SpaceFun und MYSQL_PYDIO_PWD auch SpaceFun.   12:15
Das könnt ihr natürlich oder sollt ihr unbedingt  an eure Bedürfnisse anpassen. Packt da sicher auf   12:22
jeden Fall ein sicheres Passwort rein. Und dann  könnt ihr eigentlich schon loslegen 'Ctrl + O',   12:28
Enter, 'Ctrl + X'. Jetzt sollte eigentlich, sobald  ich das gemacht habe, schon alles soweit startklar   12:33
sein. Wir schauen jetzt noch mal in dieses  README rein und da sagt er jetzt hier, ich   12:39
sollte als nächstes 'docker compose up -d' machen  und 'docker compose logs -f'. Das können wir doch   12:43
gleich mal durchführen. Ihr könntet auch 'docker  compose up' ohne '-d' laufen lassen. Dann läuft   12:50
das Ganze im Vordergrund, bis ihr das mit 'Ctrl'  oder 'Strg + C' abbrecht. Im jetzigen Fall läuft   12:55
das im Hintergrund. Ich gucke mir aber zusätzlich.  Hier mit dem Semikolon wird der nächste Befehl   13:03
ausgeführt, egal ob der vorhergehende Befehl  erfolgreich war oder fehlschlägt. Das heißt, er   13:08
führt immer diesen zweiten Befehl auch noch aus.  Er macht also ein 'docker compose up -d', schießt   13:14
damit das 'docker compose' in den Hintergrund und  zeigt mir aber gleichzeitig hier im Vordergrund   13:20
die Logs an, nämlich mit 'docker compose logs -f'.  Das ist so ähnlich wie bei 'tail -f'. Das heißt er   13:25
followed die Logs und zeigt mir dadurch immer die  aktuellen Logdateien an. Jetzt versucht er hier   13:33
diese Images zu pullen. Die holt er jetzt auch  von Docker Hub, das haben wir eben gesehen und er   13:39
bezieht jetzt diese Images. Das muss er natürlich  jedes Mal machen, wenn es Updates gibt oder jetzt   13:45
einmal initial zur Installation dieser Software.  Damit ist er jetzt gleich fertig und damit ist die   13:49
Software selbst auch schon heruntergeladen. Jetzt  macht er hier das Netzwerk, und die Container   13:57
werden bereits gestartet. Hier guckt er, aha ich  habe eine Domain tuxwiz.mooo.com. Reverse Proxy   14:02
hat er jetzt selber intern und er versucht jetzt  dann gleich auch schon das Zertifikat für meine   14:09
Domain zu beziehen. Das initiale Setup, das dauert  ein bisschen, weil er jetzt natürlich die ganze   14:15
Datenbank anlegen muss. Er muss die Verbindung  sicherstellen, dass alles wirklich tatsächlich   14:20
sauber funktioniert. Dann bezieht der initial  einmal mein Zertifikat über Let's Encrypt. Damit   14:26
kann ich die Verbindung dann wirklich sichern über  HTTPS und das wird im Browser auch mit dem Schloss   14:32
nachher angezeigt. Also, da seid ihr wirklich auf  der ganz sicheren Seite. Das macht er jetzt hier   14:38
im Hintergrund und nachher können wir gleich auch  schon mal versuchen, ob wir denn tatsächlich schon   14:44
auf unsere Pydio Instanz zugreifen können. Pydio  bietet nämlich ein tolles Webinterface, also so   14:48
ähnlich wie Nextcloud auch, über das ihr direkt  mit der Lösung arbeiten könnt. Ihr könnt aber   14:56
auch einen Client verwenden. Das Projekt bietet  auch einen Client und wie der funktioniert, das   15:01
zeige ich euch nachher auch noch. Jetzt schauen  wir mal, ob er hier im Hintergrund schon fertig   15:07
geworden ist, oder ob er immer noch arbeitet, denn  das initiale Setup nimmt einige Zeit in Anspruch.   15:12
Ich kann hier im Browser jetzt parallel schon mal  neues Browserfenster aufmachen, sage jetzt hier 15:18
tuxwiz.mooo.com und schaue mal, ob da schon etwas  erreichbar ist. Und ich sehe, ah ja, da ist meine   15:25
Lösung tatsächlich auch schon erreichbar und ich  kann mich jetzt hier als Admin auch schon anmelden   15:35
mit meinem Passwort, was ich natürlich in dem Fall  vorher definiert habe. Das ist jetzt hier bei mir   15:41
SpaceFun und ich bin jetzt hier direkt auch  schon in der Weboberfläche drin. Wie ihr seht,   15:46
ist die sehr modern, sehr aufgeräumt. Ich könnte  jetzt noch eine Tour hier machen und der zeigt mir   15:52
wirklich alles an. Ich habe hier einmal 'Common  Files', das sind Dateien, die ich mit anderen   15:57
teilen kann. Ich habe hier auch meine 'Personal  Files', das sind meine eigenen Dateien. Hier kann   16:01
zeigt dir auch noch an, hier kann ich neue Files  adden. Ich könnte jetzt sagen 'Upload' und könnte   16:06
damit jetzt hier eine neue Datei hinzufügen. Hier  seht ihr weiterhin Tipps, hier gibt es auch z.B.   16:11
einen Dark Mode und so weiter und so fort.  Also ihr habt hier ganz viele Möglichkeiten,   16:16
da könnt ihr euch einfach mal durchklicken, was  es da alles gibt. Wir schauen jetzt zum Abschluss   16:21
auch noch den Client an. Der Client verhält sich  ein bisschen anders. Das Tolle an Pydio ist,   16:27
dass der Client wirklich sehr sehr schnell  ist. Ich kenne keine andere Sync-Software,   16:31
bei der der Sync-Client so schnell reagiert.  Das ist wirklich eine tolle Sache und Pyido   16:35
hat halt eben dieses moderne Webinterface,  was ein bisschen frischer als jetzt z.B. so   16:40
eine Nextcloud oder eine ownCloud daherkommt, die  beides natürlich auch sehr, sehr tolle Lösungen   16:46
sind und die ich selber auch gerne nutze. Also  wir schauen jetzt noch mal bei Pydio. Also wir   16:51
gehen jetzt noch mal auf pydio.com. Ich habe die  jetzt hier noch auf. Ich klicke dort wieder auf   16:56
den Bereich 'Menü / Download' und dann findest  du hier 'Mobile und Desktop Clients', denn den   17:01
Client gibt es natürlich wie bei Nextcloud auch  für dein Handy entweder für iOS, ich hoffe,   17:08
du nutzt kein iOS-Handy, denn iOS ist halt  wirklich keine gute Lösung. Nutze ein Linux-Handy   17:13
oder Android also ich nutze z.B. jetzt ein  Linux-Handy und Android und dort findest du auch   17:18
die entsprechende Software. Aber selbst wenn du  iOS nutzt, dann bist Du natürlich im Selfhosting   17:23
ein wenig freier, als wenn du deine Daten alle  jetzt zu Apple ablieferst und dort in die iCloud   17:29
und die machen damit, was Sie wollen. Hier  unten gibt es das Ganze auch noch für Windows,   17:35
macOS und natürlich für Linux. Allerdings nur  als 64-Bit-Binary. Das wollen wir jetzt hier mal   17:39
herunterladen. Das macht er jetzt hier auch gerade  schon. Das heißt cells-sync. Das wird hier bei mir   17:46
direkt im Home-Verzeichnis gespeichert.  Also hier, das kann ich jetzt abbrechen,   17:53
das ist ja nur das Log, also das ist jetzt nicht  meine Docker-Instanz. Ich habe jetzt nur das Log   17:57
abgebrochen. Mein Pydio läuft hier im Hintergrund  natürlich weiter. Jetzt kann ich mal mit 'cd' und   18:01
Enter zurück in mein Home-Verzeichnis und da  sehe ich jetzt diese Anwendung 'cells-sync'.   18:10
Die mache ich noch ausführbar, damit ich  sie wirklich auch starten kann. 'chmod +x   18:15
cells-sync' und das kann ich jetzt hier  aus dem Terminal direkt schon starten mit   18:20
'./cells-sync'. Und dann bietet er mir hier  einige Parameter an und ich möchte jetzt als   18:26
allererstes Mal hier diesen Parameter Start  für den Initialen Start einmal ausführen. Das   18:31
macht er jetzt hier und hier wird jetzt mein  Client auch im Hintergrund schon gestartet und   18:40
ich kann jetzt mich hier einmal an meinem neuen  Server anmelden. Da kann ich jetzt hier eingeben 18:45
https://tuxwiz.mooo.com. Jetzt muss ich  hier natürlich noch meinen Benutzernamen   18:51
wieder angeben. Das ist ja klar. Er  versucht mich jetzt hier anzumelden,   19:04
direkt an meiner Cell und da gebe ich jetzt wieder  Admin und mein entsprechendes Admin-Kennwort ein.   19:08
Das war ja jetzt hier bei mir SpaceFun. Das ist  das, was du bei dir hinterlegt hast. Dann wähle   19:14
ich hier aus der Liste jetzt noch mal das  aus, das hat er sich jetzt hier noch nicht   19:20
gemerkt und ich muss jetzt hier ebendiesen Folder  auswählen. Das ist dann eben noch ganz wichtig,   19:23
denn ich möchte jetzt hier 'Personal Files'  synchronisieren. Sonst funktioniert das Ganze auch   19:29
nicht. Du könntest auch noch ein zweiten Sync-Job  anlegen. Also, das funktioniert hier ein bisschen   19:33
anders. Du erstellst eben diese Sync-Jobs, einen  für 'Personal Files' einen für 'Common Files' und   19:38
dann hast du halt zwei Sync-Jobs hier am Laufen.  Ich sage jetzt hier mal 'Select / Personal Files'   19:43
und ich möchte das jetzt hier syncen, und zwar  z.B. sage ich jetzt hier mal 'tux/cells'. Das   19:48
ist jetzt von mir aus okay und da sag jetzt  hier noch ein Unterordner 'Personal-Files'   19:56
'Select', das sollte er jetzt gefressen haben.  Das hat er jetzt noch nicht gemacht. Ich   20:04
kann das ganze natürlich auch hier einfach in  meinem Filemanager machen. Da sage ich einfach   20:11
'Personal-Files'. Das hat er gemacht, den kann  ich jetzt hier auswählen. 'cells/Personal-Files'   20:17
'Select' und jetzt habe ich das hier auch schon  bereits eingerichtet und kann das jetzt hier   20:29
speichern. Und das hat er jetzt hier auch schon  gemacht, also das ist der Client. Ihr seht hier,   20:33
der hat hier auch so ein Systray-Symbol. Da könnt  ihr z.B. auch die Synchronisation forcieren.   20:37
Hier könnt ihr diese Konfigurationsoberfläche  starten und da könnt ihr auch noch mal einige   20:43
Einstellungen vornehmen. Jetzt wollen wir mal  schauen, was wir denn hier synchronisieren können.   20:48
Ich gehe da einfach mal bei mir auf meine Webseite  spacefun.ch. Ich habe ja hier wahrscheinlich die   20:53
größte Linux-Wallpaper-Collection der Welt bei mir  aufgebaut, nämlich die Linux-Wallpaper Galore. Das   20:58
sind alle die tollen klassischen Linux-Wallpaper,  die ihr vielleicht von früher noch kennt. Und da   21:04
speichere ich mir einfach mal eins hier drunter  ab, und zwar speichere ich das jetzt hier direkt   21:09
bei mir im Ordner 'cells/Personal-Files'. Ich  sage speichern und dann sollte er dieses Wallpaper   21:13
dann auch direkt erkennen. Ihr seht jetzt, er  hat das schon direkt abgefangen, also es ist   21:19
wirklich so schnell, da kann man kaum hinterher  gucken. Also da hat er diese Datei halt schon   21:23
erkannt und synchronisiert die dann. Und jetzt  schauen wir mal, ob die denn hier auch in meiner   21:28
Weboberfläche schon da ist. Und ihr seht da, sie  ist tatsächlich auch schon angekommen. Ihr seht,   21:32
Pydio Cells ist eine Alternative zu Nextcloud,  ownCloud, Seafile oder anderen Lösungen,   21:38
die ich euch bereits gezeigt habe. Und zwar  eine wirklich schnelle Lösung, die auch noch   21:44
ein tolles aufgeräumtes Webinterface mitbringt.  Ich wünsche dir viel Spaß beim Nachbauen. Gerne   21:49
packe ich euch auch meine Docker Compose  Dateien, die ich jetzt hier aufgebaut habe,   21:57
noch mal in einen Cheat Sheet rein. Das kannst du  dir dann bei uns in der Community, in der Telegram   22:01
Community abholen. Da kannst du einfach hier oben  auf spacefan.ch und dann hier bei uns auf dem   22:07
Punkt Community und dann entweder diesen QR-Code  scannen oder hier auf Telegram klicken und dann   22:13
bist du schon bei uns in der Community dabei. Und  dort teile ich dann gerne diese Dateien mit dir,   22:18
damit es einfacher für dich ist und du die nicht  mühsam aus diesem Git-Repository rauspopeln   22:24
musst. Ich wünsche dir viel Erfolg und natürlich  kannst du bei Fragen auch jederzeit bei uns in der   22:30
Community nachfragen. Wir haben viele tolle Leute,  ganz nette Leute bei uns in der Community, die   22:35
helfen dir gerne und ich bin natürlich auch immer  für dich da und ich freue mich auf jeden Fall auf   22:40
deinen Besuch. Wenn du es geschafft hast oder  dir andere Lösungen bei mir anschauen möchtest,   22:45
dann empfehle ich dir unbedingt, Mitglied  in meinem YouTube-Kanal zu werden. Denn dort   22:51
findest du im Mitgliederbereich noch 100 weitere  tolle Videos zum Selfhosting und Freier Software,   22:56
also macht das unbedingt und du unterstützt mich  auch noch bei meiner Arbeit. Da bin ich dir sehr   23:02
dankbar für. Ich freue mich auf deine Rückmeldung  und auf deinen Besuch bis bald und tschüss. 23:07
Hello dear Starship Troopers. In this video I would like to introduce you to a solution for self-hosting 00:00
in more detail. This allows you to keep your data right at home 00:06
and still sync it anywhere and share it with your friends and family. 00:12
You no longer have to hand over your data to the big octopuses like Google and Amazon, 00:18
but you have it completely under your own control. You just need a normal 00:24
DSL connection and access to your router, and then you can get started. 00:29
I'll now explain to you in detail how it all works. So I have my router here with me, 00:34
it has a web interface and an IP address that I can see here is '192.168.1.1'. There 00:41
is then a point 'DNS' and there 'Dynamic DNS', because of course we have to have some domain, 00:50
i.e. a name, through which we can later access our solution. I can 00:56
activate Dynamic DNS directly in my router. You can do that with a 01:01
FRITZ!Box, for example. I now have something like a Zyxel router where I can integrate it directly. 01:06
Here I have chosen a provider that I personally really like and recommend. 01:11
That would be freedns.afraid.org. And I registered a dynamic domain there and it's called 01:16
tuxwiz.mooo.com. This means that my connection can always be reached at this URL tuxwiz.mooo.com. 01:23
Next, of course, I have my server here. I now have TuxWiz, 01:32
my own Linux distribution, which you can get here at spacefun.ch and 01:36
I use it in the Mini Stable version. This is particularly suitable for running your 01:42
own server, as it also has a stripped-down graphical interface. Then 01:48
of course I have to know the IP address of my installation, I can find it out with 'hostname -I' 01:54
and then it shows me here. This is the IP address of my server that I 02:01
want to install here '192 168 1.157'. Then I can also 02:06
activate port forwarding here in the network settings. To do this, I have to log in again and can now 02:14
activate port forwarding directly in the 'Settings / Network Settings' in the NAT area. 02:20
I've already done that for you here. Here I have two services HTTP that would be port 02:28
80 and HTTPS port 443, which I forward to the IP address of my server, which I 02:33
determined earlier with 'hostname -I' '192.168.1.157'. Here you can see start port 80, destination port 80, 02:40
start port 443 and destination port 443. This means that my server would now be 02:50
accessible from the Internet via tuxwis.mooo.com via HTTP and HTTPS. Of course, there is no service running here yet, which 03:00
means I still have to install my server software. I do this as usual in Docker 03:05
and I get Docker directly from docker.io. So I'm looking for 'Docker install Debian' here, 03:12
because my Linux distribution is based on Debian and that's why I can use these instructions as a guide. 03:20
Of course, Docker is available for many other Linux distributions. They are all listed here. 03:27
You just have to look for what you have in use. Then I scroll 03:32
down a little further and can then start the installation here. The first thing 03:38
I do is copy these commands here. They install this apt repository from Docker for me here. I click 03:45
on it here 'copy' and say 'Ctrl + Shift + V' to paste and of course I now have to 03:52
enter my password because all of these commands are executed with root rights. What's happening here, 03:59
in the background, is now installing the Docker repository and the corresponding 04:05
signing key and is actually ready to go. At the end, the package repository metadata is also 04:10
updated and we can actually start installing immediately 04:15
. How exactly to do this is written here 'Install Docker Packages latest' and 04:21
I can also copy this command here again 'Ctrl + Shift + V', 'Yes'. Here 04:27
he now installs Docker in the background and I can then 04:36
add my user to the Docker group so that the user himself is also able to use containers 04:41
to start. My user name here is 'tux' and I can do that straight away. 04:46
He is now installing Docker for me in the background. He now offers me 04:54
to start this 'hello world' sample. You can do this to see if Docker is really running, 04:58
but you don't actually have to do it. Here you can see 'docker-ce' is already installed and 05:03
should actually be started in the background via a systemd service. 05:09
This is what happened now. 'sudo usermod -a -G docker tux'. Now I have added my user 05:14
'tux' to the 'docker' group. In order for this to become active, I have to log out once, 05:23
because these user changes only become active when I log in again. I've 05:30
done that here now and I can actually move on. Today I would like to 05:36
introduce you to a slightly different solution. You can of course install something like ownCloud, Nextcoud 05:40
or SeaFile. I have already explained this in other videos. The requirements are 05:45
actually always the same, you either need something like port forwarding, a DynDNS entry 05:52
or you can use something like a Cloudflared tunnel with DS-Lite, for example. You are 06:01
very flexible there. And now I can start installing this solution that I 06:07
want to show today and it's called Pydio. Maybe you've already heard about it. Pydio has been around for 06:12
a relatively long time. I've actually known this for ages, as long as I've known Nextcloud, I've also known 06:18
Pydio and it's a really great solution. The basis is again free and open source 06:24
and you can download it here on pydio.com. I go to the 'Download' item in the menu 06:31
and now I see various options for downloading. The whole thing is available for various 06:37
operating systems such as Linux, macOS, Windows and also for arm such as the Raspberry Pi, which would now be 06:42
arm64 in the newer versions. Of course we want to use Docker because it gives us 06:47
a lot of flexibility and we don't need to install any packages here. So I'm going to go 06:52
to the Docker Hub here. This is the usual source for obtaining Docker images, and I can 06:57
also find further instructions there. I'm ignoring all of that here because we want to 07:03
do this with a so-called Docker Compose File, because we use it to declare this setup 07:07
and are always on the safe side. But we also want the whole thing to 07:13
be encrypted using a certificate using Let's Encrypt and that is not described here, but 07:19
rather in the other example configurations. I can click on 'More examples / relevant sample configuration⁠' down here 07:25
and then end up here in the Pydio Cells Git repository, 07:31
because Pydio is actually called Pydio Cells, it has been for some time and there are now very 07:38
different examples here. Basic, Behind Traefic, this is also a reverse proxy like the Nginx 07:43
Proxy Manager, something like that, I've already shown it. We would like a solution here directly 07:48
with Let's Enrypt certificates. So we're not putting another proxy in front of the previous solution. 07:53
Here I now see 'Cells Home with a Let's Encrypt certificate'. That's exactly what we want to 07:59
set up here. It also says here that ports 80 and 443 must be accessible. We've already 08:06
set this up in our router, so we're ready to go. To do this I just need these 08:11
files here, namely 1 2 3 files and I can download them individually here. I could also 08:18
clone the entire repository and then pick out the files from there, but I can also 08:24
access them individually here. Here I either click on 'Download raw file'. Yes, then I already have 'Download raw 08:29
files' and then I do the same here with the other files. He's also downloading it 08:35
right here into my home directory. We want to sort this a bit, 08:43
that is, I'm going to do an 'ls' here in my home directory, 08:49
and you can see the three files there. I'm now making a folder 'mkdir pydio' and I'm copying 08:53
these files 'mv docker-compose.yml pydio', 'mv install-conf.yml pydio' and 'mv env' into it and 09:00
I'm now copying that to 'pydio/ .env' as a hidden file. This is supposed to be a hidden file. Now 09:08
I go into this folder with 'cd pydio' and now I see these three files, actually 09:16
I only see two now because the .env file is now hidden. I can now 09:23
still display them with 'ls -al'. There you see the '.env'. I can now edit the whole thing, for example 09:28
with 'nano docker-compose.yml' and now there is a lot to do here. I would now like 09:34
to make some changes here in this file. The basics are actually set. Here you can see 09:43
that variables are used everywhere. '${ADMIN_EMAIL}', '${CELLS_ADMIN_PWD}' and 09:49
so on. These are all variables. You can see that here by the dollar under curly brackets 09:53
and that is fed via this .env file. However, I would now like to edit these volumes here. 09:59
I don't want these folders to 10:05
be floating around somewhere in the system, my data folders, but in this pydio directory. Then I have everything together 10:11
and can simply back up this directory and restore it at any time. 10:16
I can ensure this by simply putting a './' in front of it. So that means 10:21
he creates this 'cellsdir' for me in the directory. The same applies here to MySQL, i.e. 10:27
'mysqldir' and that is the directory '/var/lib/mysql' in the container. Then I can 10:36
save these entries for the 'volumes' down here. That means I could 10:42
theoretically delete them here now, but it's not so bad if they 10:46
are still here now. So, the whole thing should actually be done now. Now I say 'Ctrl + O' again, 10:51
save 'Ctrl + X' and exit. Of course, you can copy it away beforehand or you 11:00
can always compare it again, here with the file that can be found online here in Git. 11:07
So now I have a docke-compose.yml and this install-conf.yml, which I can also 11:13
display with 'cat install-comf.yml' and there are also some configurations 11:18
defined for the application itself, for example the port for the database and here again these same 11:26
variables from the .env file. We'll now edit the .env file, because of 11:33
course we still have to make some changes, 'nano .env'. Here I can now enter my DynDNS address 11:38
under 'PUBLIC_FQDN', which is called fully qualified domain name. This would now be 11:45
tuxwiz.mooo.com. I can now enter my email address as the admin email, 11:51
which would now be 11:59
astronaut@spacefun.ch. 'CELLS_ADMIN_PWD', so pwd stands for password, SpaceFun, 'MYSQL_ROOT_PWD', 12:01
I could now enter something else, SpaceFun and MYSQL_PYDIO_PWD also SpaceFun. 12:15
Of course you can or you should definitely adapt it to your needs. Be sure to put 12:22
a secure password in there. And then you can actually get started 'Ctrl + O', 12:28
Enter, 'Ctrl + X'. Now, as soon as I've done that, everything should 12:33
be ready to go. We now look at this README again and it says here that I 12:39
should do 'docker compose up -d' and 'docker compose logs -f' next. We can 12:43
do that right away. You could also run 'docker compose up' without '-d'. Then the whole thing runs 12:50
in the foreground until you cancel it with 'Ctrl' or 'Ctrl + C'. In the current case, it runs 12:55
in the background. But I'll take another look. Here with the semicolon, the next command will be 13:03
executed, regardless of whether the previous command succeeded or failed. This means that it 13:08
always executes this second command as well. So he does a 'docker compose up -d', shoots 13:14
the 'docker compose' into the background and at the same time shows me 13:20
the logs here in the foreground, namely with 'docker compose logs -f'. This is similar to 'tail -f'. That means it 13:25
follows the logs and always shows me the current log files. Now he's trying 13:33
to pull these images here. He now also gets them from Docker Hub, we just saw that and he 13:39
now gets these images. Of course he has to do this every time there are updates or now 13:45
once initially to install this software. It's now finished and the 13:49
software itself has already been downloaded. Now he's doing the networking here, and the containers 13:57
are already starting. Here he looks, aha I have a domain tuxwiz.mooo.com. He now has a reverse proxy 14:02
internally and is now trying 14:09
to obtain the certificate for my domain. The initial setup takes a while because of course he now 14:15
has to create the entire database. He has to make sure the connection 14:20
works properly. Then it initially obtains my certificate via Let's Encrypt. This means 14:26
I can actually secure the connection via HTTPS and this will also be 14:32
displayed in the browser with the lock afterwards. So, you are really on the safe side. It's doing that now 14:38
in the background and afterwards we can try to see if we can actually 14:44
access our Pydio instance. Pydio offers a great web interface, similar 14:48
to Nextcloud, through which you can work directly with the solution. But you can 14:56
also use a client. The project also offers a client and I'll show you how it works 15:01
later. Now let's see if it 15:07
's already finished here in the background or if it's still working, because the initial setup takes some time. 15:12
I can now open a new browser window here in the browser at the same time, say 15:18
tuxwiz.mooo.com and see if something is already accessible there. And I see, ah yes, my 15:25
solution is actually already accessible and I can now log in here as an admin 15:35
with my password, which of course I have defined beforehand in this case. This is SpaceFun here for me 15:41
and I'm already in the web interface here. As you can see, 15:46
it is very modern, very tidy. I could take another tour here and it would 15:52
really show me everything. I have 'common files' here, which are files that I 15:57
can share with others. I also have my 'Personal Files' here, which are my own files. Here 16:01
you can also see that I can add new files here. I could now say 'Upload' and 16:06
add a new file here. Here you can also see tips, for example there is also 16:11
a dark mode and so on and so forth. So you have a lot of options here, 16:16
you can just click through to see what's there. Finally, we'll now take a look 16:21
at the client. The client behaves a little differently. The great thing about Pydio is 16:27
that the client is really, really fast. I don't know of any other sync software 16:31
where the sync client responds so quickly. That's really a great thing and Pyido 16:35
just has this modern web interface, which is a bit fresher than, for example, 16:40
a Nextcloud or an ownCloud, both of which are of course very, very great solutions 16:46
and which I like to use myself. So let's take another look at Pydio. So let's 16:51
go again to pydio.com. I still have it here now. I click on the 'Menu / Download' area again 16:56
and then you will find 'Mobile and Desktop Clients' here, because like Nextcloud, the 17:01
client is of course also available for your mobile phone either for iOS, I hope 17:08
you don't use an iOS mobile phone , because iOS is really not a good solution. Use a Linux cell phone 17:13
or Android, for example I now use a Linux cell phone and Android and you can also find 17:18
the corresponding software there. But even if you use iOS, you are of course 17:23
a little more free with self-hosting than if you deliver all your data to Apple and put it there in iCloud 17:29
and they do whatever you want with it. The whole thing is also available below for Windows, 17:35
macOS and of course for Linux. But only as 64-bit binary. We want to download it here now. 17:39
That's what he's doing here now. This is called cells sync. This is saved directly in my 17:46
home directory. So here, I can cancel this now, 17:53
this is just the log, so this is not my Docker instance. I only have the log now 17:57
canceled. Of course my Pydio continues to run in the background. Now I can 18:01
go back to my home directory with 'cd' and Enter and I can now see this application 'cells-sync'. 18:10
I'll make it executable so that I can actually start it. 'chmod +x 18:15
cells-sync' and I can now start that directly from the terminal with 18:20
'./cells-sync'. And then he offers me some parameters here and I would now like to 18:26
execute this parameter Start for the initial start once here for the very first time. Now he does that 18:31
here and here my client is already started in the background and 18:40
I can now log in to my new server here. I can now enter here 18:45
https://tuxwiz.mooo.com. Now of course I have to enter my username 18:51
again here. That's clear. He is now trying to log me in here, 19:04
directly on my cell, and I now enter admin and my corresponding admin password again. 19:08
That was SpaceFun here with me. This is what you have deposited with you. Then 19:14
I'll select the one again from the list, he hasn't noticed it here yet 19:20
and I now have to select this folder here. This is very important 19:23
because I now want to synchronize 'Personal Files' here. Otherwise the whole thing 19:29
won't work. You could also create a second sync job. So, it works a little 19:33
differently here. You just create these sync jobs, one for 'Personal Files', one for 'Common Files' and 19:38
then you have two sync jobs running here. I'm going to say 'Select / Personal Files' here 19:43
and I want to sync this here, for example I'm going to say 'tux/cells' here. That 19:48
is okay as far as I'm concerned and now there's a subfolder called 'Personal Files' that says 19:56
'Select', it should have eaten that by now. He hasn't done that yet. Of course, I 20:04
can easily do the whole thing here in my file manager. I simply say 20:11
'personal files'. He did that, I can now select it here. 'cells/Personal-Files' 20:17
'Select' and now I have already set this up here and can now 20:29
save it here. And he's already done that here, so that's the client. You can see here 20:33
that it also has a systray symbol here. You can also force the synchronization, for example. 20:37
Here you can start this configuration interface and there you can also 20:43
make some settings. Now let's see what we can synchronize here. 20:48
I'll just go to my website spacefun.ch. I have probably 20:53
built the largest Linux wallpaper collection in the world here, namely the Linux Wallpaper Galore. These 20:58
are all the great classic Linux wallpapers that you may remember from before. And 21:04
I'll just save one under here, and I'll save it right here 21:09
in the 'cells/Personal-Files' folder. I say save and then it should recognize this wallpaper 21:13
directly. You can see now that he has already intercepted it straight away, so it's 21:19
really so fast that you can hardly watch it. So it has already 21:23
recognized this file and then synchronizes it. And now let's see if it 21:28
's already there in my web interface. And you can see that it has actually already arrived. You see, 21:32
Pydio Cells is an alternative to Nextcloud, ownCloud, Seafile or other solutions 21:38
that I have already shown you. A really quick solution that also 21:44
has a great, tidy web interface. I hope you have fun replicating it. I would also be happy 21:49
to put my Docker Compose files, which I have now set up here, 21:57
into a cheat sheet for you. You can then pick it up from us in the community, in the Telegram 22:01
Community. You can simply go up here on spacefan.ch and then click on Community here 22:07
and then either scan this QR code or click here on Telegram and then 22:13
you will be part of our community. And there I would be happy to share these files with you, 22:18
so that it is easier for you and you don't have to laboriously dig them out of this Git repository. 22:24
I wish you much success and of course if you have any questions you can always 22:30
ask us in the community. We have a lot of great people, really nice people in our community, they'll be 22:35
happy to help you and of course I'm always there for you and I'm definitely looking forward to 22:40
your visit. If you've made it or would like to see other solutions from me, 22:45
then I strongly recommend that you become a member of my YouTube channel. Because there 22:51
you will find 100 more great videos about self-hosting and free software in the members area, 22:56
so be sure to do that and you will also support me in my work. I am very 23:02
grateful to you for that. I look forward to your feedback and to your visit, see you soon and goodbye. 23:07

In diesem Video zeige ich dir, wie du mit Pydio Cells ganz unkompliziert deine eigene Cloud-Lösung zu Hause aufbauen kannst. Schluss mit dem Teilen deiner wertvollen Daten mit den großen Datenkraken! Hier hast du die volle Kontrolle über deine Informationen – sicher und privat!

Was dich erwartet:

- Schritt-für-Schritt-Anleitung zur Installation von Pydio Cells mit Docker.

- Tipps zur Nutzung des Sync-Clients für blitzschnellen Zugriff auf deine Daten.

- Informationen zur mobilen App, damit du auch unterwegs immer sicher auf deine Dateien zugreifen kannst.

Egal, ob du Fotos, Dokumente oder andere wichtige Daten speichern möchtest – mit Pydio Cells hast du alles im Griff. Lass uns gemeinsam starten und deine persönliche Cloud einrichten!

Nicht vergessen: werde Mitglied der Community, um dich mit Gleichgesinnten auszutauschen!

Navigation

Video Player