Kategorien
Cloud Datenschutz Shared Hosting

Nextcloud – Platz für deine Daten

Nextcloud ist eine freie Software für das Speichern von Dateien auf dem eigenen Server. Wenn du auf dem Smartphone oder deinem PC einen Client installierst, wird dein Nextcloud Server automatisch mit dem lokalen Verzeichnis synchronisiert. Dadurch kannst du von beliebigen Geräten auf einen konsistenten Datenbestand zugreifen. Durch diese Konstellation behältst du die vollständige Kontrolle über deine Dateien.

Das letzte Mal habe ich hier im Blog vor mehr als drei Jahren über das Nextcloud Projekt, anlässlich seiner Gründung, geschrieben (OwnCloud – Nextcloud). Im September 2019 ist nun die 17. Version von Nextcloud erschienen. Version 18 ist in der Entwicklung und seit mehr zwei Jahren lässt sich Nextcloud auch hier bei Novatrend ganz einfach per Klick installieren.

Kategorien
Cloud Infrastruktur Server Services Shared Hosting Soziale Netze

OStatus, Fediverse, ActivityPub

Es ist mal wieder soweit. Die Benutzer von Twitter suchen aus unterschiedlichen Gründen Alternativen.
Hier im Blog hatte ich ja bereits einige vorgestellt (Friendica, GnuSocial, Mastodon und ein paar andere mehr).
Das Mastodon Projekt hat sich in letzter Zeit weiterentwickelt und daher wechseln viele Benutzer von Twitter zu Mastodon oder probieren es aus. Der ursprüngliche Plan für diesen Blog Post war der Wunsch mehrerer Leser eine Beschreibung zu erhalten, wie man eine eigene Mastodon Instanz erstellt. Beim Installieren entdeckte ich allerdings viel mehr.

Kategorien
Betriebssysteme Cloud Server

Paketverwaltung und Snaps unter Ubuntu 16.04 LTS

Jedes Betriebssystem ermöglicht das Hinzufügen, Aktualisieren und Deinstallieren von Software. Meistens werden vom Hersteller Softwarepakete angeboten, die mit Hilfe eines Installationsskripts den Weg auf den Computer finden. Updates für diese Pakete bestehen entweder aus sogenannten Patches (engl. Flicken), die einzelne Dateien eines Softwarepaketes aktualisieren oder aus anderen Softwarepaketen, die „über“ bereits installierte Softwarepakete installiert werden. Zur Deinstallation von Softwarepaketen benötigst man oft Deinstallationsskripte.

Unter Mac OS gibt es bis heute beispielsweise keine einheitliche Vorgehensweise um Software zu deinstallieren. In Windows gibt es die zwar, aber der Teufel liegt im Detail. Das Problem ist oft „Geheimniskrämerei“ bei den Herstellern von kommerzieller Software und so weiss man oft weder, was ein Programmpaket denn nun genau auf dem Computer installiert hat, geschweige denn, wie man das alles wieder entfernt. Auch die aufgeräumtesten Apple macOS und Microsoft Windows Computer werden nach ein paar Jahre mit Updates und Programminstallation langsamer und die Festplatte füllt sich. Ein „clean install“, bei dem man ein zuerst „frisches“ Betreibsystem und danach seine Softwarepakete installiert, wirkt oft Wunder und beschleunigt alles wieder.

Im Linux Umfeld ist die Lage etwas übersichtlicher, da glücklicherweise die meisten verfügbaren Softwarepakete grundsätzlich auch im Quellcode vorliegen und klar beschrieben ist, was bei Installation und Aktualisierung verändert wird. Anders als bei den proprietären Systemen gibt es in Linux Abhängigkeiten zwischen den Softwarepaketen. Wenn ich auf einem Windows Computer etwas installiere, ist das normalerweise eine große Installationsdatei oder ein Installer, der während der Installation Dateien nachlädt, entpackt und irgendwo hinschreibt. Diese Art Softwarepaket lässt sich gut verkaufen.

Unter Linux geht es eher modular zu. Wenn ich beispielsweise auf einem Novatrend Root/Cloud Server, der mit Ubuntu läuft, den Webserver Apache installieren will, habe ich normalerweise keine grafische Oberfläche und benutze auf der Konsole den Befehl.

sudo apt-get install apache2
Das Kommando sudo zeigt an, dass der Befehl mit den Rechten des Root Users ausgeführt werden soll. Unter Linux gibt es die User und es gibt Root. Root darf alles, die User dagegen leben im „Userland“ und dürfen viele Dinge einfach nicht! (In macOS ist es genauso, in Windows ähnlich).
Das Kommando apt ruft den Advanced Package Manager auf.
Das Kommando -get zeigt an, dass man etwas haben möchte.
Das Kommando install bedeutet, dass man etwas installieren möchte (apt-get remove würde etwas deinstallieren, apt-get update etwas aktualisieren.).
Das Kommando apache2 zeigt an, das man den Webserver Apache in der Version 2 installieren möchte.
Das ist alles sehr logisch und so fragt das Ubuntu Linux zunächst nach dem Passwort von Root

[sudo] password for anon:

danach schaut es in seiner Paketliste nach, ob ein Paket mit dem Namen apache2 existiert. Die Liste liegt in /etc/apt/sources.list und erhält die Quellen, von denen Software geladen wird.

APT-Quellenliste
APT-Quellenliste

Beim Nachsehen merkt der Paketmanager, das ausser apache2 weitere Pakete installiert werden müssen, damit der Webserver funktioniert. Alle Pakete werden aufgelistet und man muss bestätigen, ob man das alles installieren will.

Building dependency tree
Reading state information... Done
The following additional packages will be installed:
apache2-bin apache2-data apache2-utils libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap liblua5.1-0 ssl-cert
Suggested packages:
www-browser apache2-doc apache2-suexec-pristine | apache2-suexec-custom openssl-blacklist
The following NEW packages will be installed:
apache2 apache2-bin apache2-data apache2-utils libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap liblua5.1-0 ssl-cert
0 upgraded, 10 newly installed, 0 to remove and 4 not upgraded.
Need to get 1554 kB of archives.
After this operation, 6412 kB of additional disk space will be used.
Do you want to continue? [Y/n]

Bei der Aktualisierung und Deinstallation funktioniert das genauso. Wenn man keine Veränderungen an den Dateien vorgenommen hast, kann mit diesem System wirklich alles restlos deinstalliert werden, so als wäre es niemals installiert gewesen. Das geht soweit, dass auch Distributionsupdates gemacht werden können, beispielsweise von Ubuntu 14.04 auf 16.04.

Es gibt also zwei Arten von Paketverwaltungen:

  1. Programme, die aus anderen Quellen Pakete nachladen können, um Abhängigkeiten aufzulösen, so wie eben beschrieben.
  2. Programme, die direkt die Pakete installieren oder löschen, aber keine Abhängigkeitsverwaltungs- und Konfliktlösungsmechanismen kennen.

Linux Distributionen gehören zum ersten Punkt und nutzen immer ein bestimmtes Paketformat. Red Hat, Fedora und OpenSuse benutzen beispielsweise RPM Pakete, Debian und Ubuntu deb Pakete. Die Arbeit, die in einer Distribution steckt, ist die geschickte Zusammenstellung dieser Pakete.

Wen du einen Root Server mit Linux betreibst, wirst du dich über diese Ordnung sehr freuen, denn es gibt immer einen Weg, Probleme zu lösen – IMMER 🙂

Leider ist es oft ziemlich schwer, gerade neuere Pakete die nicht zur Distribution gehören, zu installieren und zu konfigurieren. Wenn beispielsweise die neueste Webanwendung PHP7 benötigt, du aber noch ein Ubuntu 14.04 nutzt, gibt es das in den offiziellen Paketen nicht. Da du ja weisst, wo sich die Liste der Installationsquellen befindet, kannst du natürlich eine Quelle für PHP7 Pakete eintragen und dann die PHP7 Pakete auch unter Ubuntu 14.04 installieren. So eine Erweiterung kann allerdings schwer vorhersehbare Folgen für Abhängigkeiten von anderen Paketen haben. Jeder, der einen Server betreibt, hat vermutlich schon mal etwas ausserhalb der offiziellen Pakete installiert und dann sehr schnell gelernt, dass das manchmal keine gute Idee ist 🙂

An dieser Stelle setzen nun Projekte wie Docker an, die völlig unabhängig vom Paketmanager komplette Softwarepakete zur Installation anbieten. Docker kann man sich wie einen Container vorstellen, der alles notwendige enthält und eine fix und fertige Lösung bietet, beispielsweise ein Web Forum. Prinzipiell ist das eine gute Idee aber die Arbeit liegt natürlich wieder in der Konfiguration und im Zusammenspiel der Container. Nehme ich einen MySQL Docker Container und einen Apache Docker Container und verbinde sie irgendwie mit einem Drupal Container oder nehme ich einen MySQL/Apache/Drupal Container und das wars? Eine einheitliche Antwort gibt es natürlich nicht und so sammeln sich schnell ein paar Container an und die Aktualisierung ist wieder so eine Sache.

Click, snap und snappy

Bei Smartphones geht das alles auf den ersten Blick problemloser mit sogenannten Apps, aber dahinter verbergen sich natürlich die gleichen Herausforderungen.

Als Ubuntu Phone entwickelt wurde, ging man neue Wege und nutzte das Paketformat click. Für den RasberryPi wurde Snappy Ubuntu Core angeboten und nun hält das Snap Format auch im neuen Ubuntu 16.04 Einzug. Es kann mit dem existierenden deb Format koexistieren. Software kann als deb oder snap Paket angeboten werden. Der Unterschied liegt darin, dass snap Pakete, wie bei Docker, eigentlich eher komplette snap Anwendungen sind und vom Rest des System isoliert laufen. Die Snaps können  auch aufeinander aufbauen.

Snappy Ubuntu
Snappy Ubuntu

Vorteil ist die einfache Installation, Nachteil ist der erhöhte Platzbedarf, da nun benötigte Bibliotheken innerhalb eines snap Paketes und damit unter Umständen mehrfach auf einem Betriebssystem installiert werden.

Snap benutzen

Um Snap benutzen zu können muss der ubuntu-core installiert sein ( sudo snap install ubuntu-core).

Eine Übersicht über verfügbare snaps bietet der Befehl snap list. Beim ersten Aufruf entsteht folgender Dialog.

anon@server1:~$ snap list
No snaps are installed yet. Try 'snap install hello-world'.
anon@server1:~$ sudo snap install hello-world
[sudo] password for anon:
0 B / 20.00 KB [________________________________________________] 0.00 %
hello-world (stable) 6.3 from 'canonical' installed
anon@server1:~$ hello-world
Hello World!

Das Programm „hello-world“ kann ausgeführt werden werden und gibt Hello World auf der Konsole aus. Bei einem erneuten Aufruf von snap list sieht es dann so aus:

anon@server1:~$ snap list
Name Version Rev Developer Notes
hello-world 6.3 27 canonical -
ubuntu-core 16.04+20160531.11-56 122 canonical -

Entfernen lässt sich ein snap Paket mit dem Befehl

anon@server1:~$ sudo snap remove hello-world
hello-world removed

Installationsbeispiel Nextcloud

Um ein konkretes Beispiel zu zeigen, werde ich das Snap Paket Nextcloud installieren

anon@server1:~$ sudo snap install nextcloud
122.31 MB / 122.31 MB
[===========================] 100.00 % 22.35 MB/s
nextcloud (stable) 9.0.53snap1 from 'nextcloud' installed

Der Inhalt des Pakets wird im Verzeichnis /snap/nextcloud installiert. In der Liste der Snaps taucht nun auch das Nextcloud Paket auf.

anon@server1:~$ sudo snap list
Name Version Rev Developer Notes
nextcloud 9.0.53snap1 17 nextcloud -
ubuntu-core 16.04+20160531.11-56 122 canonical -

Um die Nextcloud nutzen zu können, muss die IP-Adresse des Servers im Browser aufgerufen werden. Der Installer von Nextcloud fragt noch nach Namen und Passwort des Administrators und danach ist die persönliche Cloud einsatzbereit.

Nextcloud - Snap Paket
Nextcloud – Snap Paket

Fazit

Das Snap Format bietet eine einfache Verwaltung für die Installation, Aktualisierung und Deinstallation kompletter Anwendungen in der Linux Distribution Ubuntu 16.04 LTS. Snap Pakete werden zunehmend von Softwareprojekten angeboten und können auch sogar als Universal Snap Package auf anderen Distributionen genutzt werden.

Links

Kategorien
Cloud Shared Hosting

ownCloud -> Nextcloud

Du kennt ja bestimmt das Projekt ownCloud. Es ist eine freie Software zum Speichern von Dateien auf dem eigenen Server. Im Prinzip eine Art Dropbox Ersatz, über den ich hier im Blog auch bereits geschrieben habe (OwnCloud Installation und Clients). Das ownCloud Projekt wurde vor sechs Jahren von Frank Karlitschek gestartet und entwickelte sich sehr erfolgreich. In den USA wurde das Startup ownCloud Inc. gegründet, in Nürnberg die ownCloud GmbH. Frank Karlitschek lebte und arbeitete in den USA.

Im April diesen Jahres veröffentlichte er den Blogeintrag: big changes: I am leaving ownCloud, Inc. today und OwnCloud Inc. antwortete mit einem Blogeintrag: Thank You, Frank Karlitschek. Danach verliessen mehr und mehr Entwickler die Firma ownCloud. Am 2. Juni gab es erneut einen Blogeintrag in Karlitscheks Blog, in dem er bekanntgab, einen Fork von ownCloud mit dem Namen Nextcloud zu starten (Blogeintrag: Nextcloud). Der Fokus von Nextcloud soll darauf liegen, Nutzern die komplette Hoheit über ihre Daten zu geben. In diesem Zusammenhang gibt es auch einen interessanten Blogeintrag von Frank aus Februar 2016 The privacy endgame.

Nach der Ankündigung des Forks überstürzten sich die Ereignisse. Im Ergebnis meldete ownCloud Inc. Konkurs an und die deutsche ownCloud GmbH führt das Unternehmensgeschäft weiter. Die neue Firma Nextcloud hat ihren Sitz in Stuttgart und fand schnell Investoren, die die weitere Entwicklung auf sichere, finanzielle Beine stellten.

Mitte Juni erschien die erste Version von Nextcloud und mittlerweile (Juli 2016) gibt es bereits erste Updates und eigene Android und iPhone clients. Mit den Updates erschiepnen auch erste neue Features.

Es gibt ein ausführliches, sehr empfehlenswertes Interview mit Frank mit vielen Hintergrundinformationen im Radiotux Podcast Juni ab der Stelle 1:05:05.

Wenn du, so wie ich, eine ownCloud Installation betreibst, stellt sich natürlich die Frage: „Was nun?“ Die meiner Meinung nach genauso einfache Antwort heisst: „Ruhe bewahren und auf Nextcloud updaten“. Wenn die Gründer und Entwickler aus einem Projekt aussteigen, den Quellcode forken und ihr eigenes Ding machen, ist das Vorgängerprojekt meistens tot (siehe beispielsweise Mambo/Joomla oder OpenOffice/LibreOffice). Natürlich läuft das Geschäft der alten Firma zunächst mal weiter und Unternehmenskunden erhalten auch Support, kreative Weiterentwicklung findet jedoch eher nicht statt.

Update von ownCloud zu Nextcloud

Ein Update von ownCloud zu Nextcloud ist leicht zu erledigen. Im Nextcloud Forum (das übrigens unter Discourse läuft) gibt es viel Hilfestellung, beispielsweise hier: Migrating from ownCloud to Nextcloud.


Update 28.07.2016
Fehlermeldung: Leere PATH Variable
Bei der von NOVATREND verwendeten Webserverkonfiguration, wird die PATH Variable nicht übergeben. Wir verwenden / befolgen jedoch auf all unseren Systemen den sogenannten Filesystem Hierarchy Standard. Wenn OwnCloud/NextCloud keine PATH Variable findet, setzt es selbst eine, die den Standardpfaden entspricht. Siehe auch https://github.com/nextcloud/server/blob/8c7d7d7746e76b77ad86cee3aae5dbd4d1bcd896/lib/private/legacy/helper.php#L532.
Die Meldung bezüglich der leeren PATH Variable, die sowohl OwnCloud als auch Nextcloud anzeigen, kann daher ignoriert werden.


Ich glaube es ist durchaus sinnvoll, seine ownCloud Installation zügig zu migrieren, da die Entwicklung von Nextcloud schnell fortschreitet. Der in ownCloud doch recht komplizierte Upgrade Prozess wurde in Nextcloud bereits durch einen komfortablen Updater im Browser ersetzt. Als Administrator kann man nun auch im Browser das Theme mit seinem eigenen Logo und einem Hintergrundbild anpassen. Sieht dann beispielsweise so aus 🙂

Nextcloud - Anmeldung
Nextcloud – Anmeldung

Ausser diesen, ich will mal sagen Kleinigkeiten, scheint sich aber durchaus mehr zu tun.
So soll man bald mittels WebRTC, einem offenen Kommunikationsstandard, sichere Webkonferenzen über Nextcloud veranstalten können.
Die in ownCloud eher vernachlässigten Apps Kontakte und Kalender sollen ebenfalls zügig verbessert werden.

Videos

Theming Nextcloud in 37 seconds

Anonymous upload in 2 minutes

Shorter share links: getting rid of index.php

Fazit

Der Fork wird frischen Wind in die Szene bringen und Nextcloud ist bereits jetzt ein interessantes Projekt mit lebhafter Community.

Hinweis in eigener Sache
Wenn dir Installation und Pflege einer eigenen Cloud zu aufwendig sind und du eine ausgereifte, funktionierende und gut integrierte Groupware suchst, dann nutze als Hosting Kunde einfach kostenlos die OX App Suite.

Links: