Up1 auf dem Uberspace installieren

Up1 ist ein Upload-Dienst für Bilder oder Textdateien. Das besondere daran ist, dass die Dateien auf dem Server verschlüsselt sind und nur derjenige zugreifen kann, der die URL vom Uploader bekommen hat. Die URL enthält eine längere Zeichenkette, die vom Browser gebraucht wird, um das verschlüsselte Bild anzuzeigen, z.B:

https://jemand.server.uberspace.de/up1/#vurOzTLaIF1jvCoAKaYwpw

So kann man Bilder geschützt z.B. per Email oder Messenger austauschen, ohne dass man sich mit Passwörtern beschäftigen muss. Selbst auf dem Server kann niemand die Inhalte sehen (dass Schlüsselwort bleibt im Browser und wird nicht an den Server geschickt, da es hinter dem Hash-Zeichen # steht)

Bei der Installation habe ich mich am offiziellen Uberspace-Tutorial zu Etherpad-Lite orientiert (das ist auch in node.js geschrieben).

So geht’s

Im Home-Verzeichnis erstmal das Repository klonen:

[else@chaos ~]$ git clone https://github.com/Upload/Up1

Ins neu erstellte Verzeichnis wechseln und dort die Beispielkonfigurationen umbenennen, so dass sie verwendet werden:

[else@chaos Up1]$ cd Up1
[else@chaos Up1]$ cp server/server.conf.example server/server.conf
[else@chaos Up1]$ cp client/config.js.example client/config.js

Ins Verzeichnis server wechseln und dort die Node-Pakete installieren lassen

[else@chaos Up1]$ cd server
[else@chaos server]$ npm install

Als nächstes benötigen wir einen Port zwischen 61000 und 65535. Die Zahl kann man sich frei auswählen (im Beispiel ist es 61234). Ob der ausgewählte Port bereits vergeben ist, kann man mittels /usr/sbin/ss -ln | fgrep PORT überprüfen. Bleibt die Ausgabe leer so ist der Port noch frei. Den Port müssen wir an zwei Stellen eintragen: Einmal im server.conf und in unserer .htaccess.

Wir rufen den Editor auf:

[else@chaos server]$ nano server.conf

Dort muss man nur im Bereich mit http unter „listen“ die Adresse 127.0.0.1:PORT eintragen:

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

Die Nummer 61234 ersetzt du natürlich mit deinem Port.

Damit der Zugriff von außen an die Node-Anwendung weitergeleitet wird, müssen wir ein Alias-Verzeichnis in unserem HTML-Verzeichnis einrichten. Ich habe es up1 genannt:

[else@chaos server]$ cd ~/html/
[else@chaos html]$ mkdir up1
[else@chaos html]$ cd up1

Dort legen wir jetzt eine .htaccess-Datei an. Weil es da mit den Eingabezeichen zu Fehlern kommen kann, füllen wir die Datei wie im Uberspace-Tutorial per Kommandozeile Schritt für Schritt:

[else@chaos up1]$ cat > ~/html/up1/.htaccess <<'__EOF__'
RewriteEngine On
RewriteRule (.*) http://localhost:61234/$1 [P]
__EOF__

Die Portnummer 61234 ersetzt du natürlich wieder mit deinem Port.

Jetzt können wir den Server mal testweise starten:

[else@chaos up1]$ cd ~/Up1/server/
[else@chaos server]$ node server.js

Wenn du jetzt http://else.chaos.uberspace.de/up1/ aufrufst, sollte schon der Upload-Button von Up1 zu sehen sein.

Du brichst den Server in der Konsole wieder ab (STRG-C). Wir werden ihn jetzt als Hintergrund-Dienst einrichten. Wenn dir das neu ist, lies erstmal das Uberspace-Tutorial dazu durch: system:daemontools. Dienste sind erstmal etwas mysteriös, weil man sie nicht sieht. Mit ein paar Kommandos kann man sie aber schön prüfen und steuern.

Falls noch nicht geschehen musst du nun Dienste generell für deinen Account aktivieren:

[else@chaos server]$ test -d ~/service || uberspace-setup-svscan

Dann wird der Dienst eingerichtet (ich hab ihn wieder up1 genannt:

[else@chaos server]$ uberspace-setup-service up1 node ~/Up1/server/server.js

Bei der Einrichtung wird allerdings noch nicht ins Verzeichnis des Servers gewechselt. Das ist nötig, sonst findet der Server nicht die relativen Dateien um ihn herum. Also fügen wir in das gerade erstellte Startscript ~/service/up1/run noch eine Zeile ein:

Die letzten Zeilen müssen so aussehen:

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

Jetzt kannst du den Dienst dauerhaft starten:

[else@chaos ~]$ svc -du ~/service/up1

Wenn was nicht klappt …

Wenn irgendwas nicht klappt, kriegst du eine Email von Uberspace, dass dein Service gestoppt wurde. Mit diesem Befehl prüft man, was nicht stimmt:

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

Und nicht vergessen, vor dem Neustart eines von Uberspace gestoppten Servers musst du die Datei „down“ im Verzeichnis ~/service/up1 löschen!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert