Up1 auf uberspace installieren

Screenshot Safari

Mit Up1 lassen sich Daten verschlüsselt mit Freunden teilen. Daten können dabei Dateien jeglicher Art und Text sein. Das gute an Up1 ist aber, dass die Daten im Browser verschlüsselt und erst danach auf den Server hochgeladen werden. Nach dem Upload enthält die URL eine Zeichenkette die als Schlüssel für die Daten dient. Ohne diesen Schlüssel lassen sich die Daten nicht anzeigen.

So können Bilder geschützt z.B. per E-Mail oder Messenger ausgetauscht werden, ohne das man irgendwo Accounts anlegen muss oder sich mit Uploadseiten und Passwörtern auseinander setzen muss. Dadurch das das Passwort hinter einem #-Zeichen im Browser steht, wird es auch nicht an den Server übertragen und bleibt in eurer Hand bzw. in eurem Browser und nur dort!

Vorraussetzungen für dieses How-To

  • ein Konto bei uberspace.de
  • eine aufgeschaltet Domain (z.B.: example.org)
  • ein wenig Erfahrung mit dem Terminal und Linux Commands

Installation

Am besten erstellst Du dir ein app Verzeichnis und klonst dort das Up1-Repository hinein

[user@antila ~]$ mkdir app
[user@antila ~]$ cd app
[user@antila app]$ git clone https://github.com/Upload/Up1
Klone nach 'Up1' ...
remote: Counting objects: 1036, done.
remote: Total 1036 (delta 0), reused 0 (delta 0), pack-reused 1036
Empfange Objekte: 100% (1036/1036), 232.47 KiB | 0 bytes/s, Fertig.
Löse Unterschiede auf: 100% (612/612), Fertig.
Prüfe Konnektivität ... Fertig.
[user@antila app]$

Dann in das Verzeichnis wechseln, die Beispielkonfiguration für den Server und Client kopieren und im Server-Verzeichnis die Node Pakete installieren.

[user@antila app]$ cd Up1/
[user@antila Up1]$ cp server/server.conf.example server/server.conf
[user@antila Up1]$ cp client/config.js.example client/config.js
[user@antila Up1]$ cd server
[user@antila server]$ npm install

Konfiguration

Für die Konfiguration brauchen wir zwei Angaben. Zum einen einen freien Port für den Service und zweitens einen API-Key der vom Server- und Client-Teil benutzt wird um die Dateien zu ver- und entschlüsseln.

Um diesen API-Key zu generieren benutzen wir einfach date und md5sum

[zn80@antila Up1]$ date | md5sum

Der lange String der dabei herauskommt wird in der server/server.conf bei api_key und in der client/config.js bei upload.config.api_key eingetragen.

Und Du brauchst natürlich noch den freien Port auf deinem Uberspace. Freie Ports gibts es nur zwischen 61000 und 65535. Ob ein Port noch frei ist, kannst Du mittels

/usr/sbin/ss -ln | fgrep 61234

überprüfen. Wird nichts im Terminal angezeigt, dann ist der Port noch frei und du kannst ihn in die server.conf und in die .htaccess eintragen.

"http": {
"enabled": true,
"listen": ":61234"
},

Um den Zugriff über den Browser zu musst Du die Node-Anwendung noch bekannt machen. Ein Weg ist, eine Sub-Domain einzurichten und dort mittels .htaccess den Zugriff umleiten.

[user@antila server]$ cd -P ~/html/
[user@antila html]$ cd ..
[user@antila user]$ mkdir up1.user.net
[user@antila user]$ cd up1.user.net 
[user@antila up1.user.net]$ nano .htaccess

Füge folgenden Text in die .htaccess ein:

RewriteEngine On
RewriteRule (.*) http://localhost:61234/$1 [P]

Jetzt starten wir den Server und prüfen ob das mit der Umleitung geklappt hat.

cd ~/app/Up1/server
node server.js

Wenn unter http://up1.example.org/ jetzt ein Upload Button von Up1 erscheint, super! Mit STRG+C kannst Du den Server vorerst beenden.

Als Service einrichten

Damit das ganze auch automatisch und im Hintergrund als Service funktioniert, kannst Du ihn als Daemon einrichten.

[user@antila server]$ test -d ~/service || uberspace-setup-svscan
[user@antila server]$ uberspace-setup-service up1service node ~/app/Up1/server/server.js

Der Service steht jetzt und Du musst nur noch eine Kleinigkeit anpassen. Und zwar müssen wir dem Service noch mitteilen, dass er vorher in das Verzeichnis unserer App wechseln muss. Dazu öffnest Du die ~/service/up1service/run Datei und fügst ein cd ~/app/Up1/server/ hinzu. Die letzten Zeilen sollten dann so aussehen:

# Now let's go!
cd ~/app/Up1/server/
exec /usr/local/bin/node /home/zn80/app/Up1/server/server.js 2>&1

Um den Service nun dauerhaft laufen zu lassen, führst du folgenden Befehl aus:

svc -du ~/service/up1service

HTTPS Zertifikate

Damit das auch alles über HTTPS funktioniert, musst Du in deiner Zertifikate-Konfiguration die gewählte Sub-Domain eintragen. In unserem Beispiel also die up1.example.org.

Wie Du deinen uberspace mit LetsEncrpyt Zertifikaten austattest steht im uberspace-Wiki.

Fehlersuche

Und falls mal etwas nicht mehr funktioniert, kannst Du das Log-File von deinem Service mit dem Befehl

tail ~/service/up1service/log/main/current | tai64nlocal

anschauen.

Nicht vergessen, die Datei down im Verzeichnis des Services (~/services/up1service) löschen, bevor Du deinen Dienst wieder startest.

Links und mehr

Und nun viel Erfolg und fröhliches Teilen!

Du kannst mit mir auf Twitter und Co diskutieren,
und wenn Dir der Beitrag gefallen hat, dann teile ihn mit deinen Freunden: