re:oyd (13): SparkleShare@PogoPlug v2

Eine andere Dropbox-Alternative ist die OpenSource-Software SparkleShare die auf GitHub aufbaut. Leider gibt es aber bisher keinen Client für iOS oder Android. Wer es dennoch ausprobieren will, hier eine kurze Anleitung zur Einrichtung:

  1. Installation von SparkleShare auf dem PogoPlug:
    pacman -S sparkleshare
  2. Host-Installationsscript herunterladen:
    curl https://raw.github.com/hbons/Dazzle/master/dazzle.sh \
      --output /usr/bin/dazzle && chmod +x /usr/bin/dazzle
  3. Setup ausführen:
    dazzle setup
  4. Im Router das Port-Forwarding für SSH Port 22 auf die IP-Adresse des PogoPlug einstellen.
  5. SparkleShare auf den Clients installieren. Im Installationsverzeichnis findet sich dann eine Daten „NAME link code.txt“. Den gesamten Code markieren und kopieren.
  6. Auf dem Pogoplug einen Link für jeden Client hinzufügen:
    dazzle link

    Bei der folgenden Abfrage muss der oben kopierte Code eingefügt werden.

  7. Jetzt muss mindestens ein neues Projekt angelegt werden (entspricht einem Hauptordner im Sparkleverzeichnis der Clients):
    dazzle create PROJEKTNAME

    Nach dem Anlegen wird Addresse und Remote Path angezeigt, beides muss auf den Clients über das Icon in der Taskleiste, Menüpunkt SparkleShare->Add hosted Project->On my own Server, eingetragen werden. Bei der angegebenen Addresse handelt es sich natürlich nur um die gerade zugewiesene dynamische IP, daher muss statt ssh://storage@IP einfach die DNSDynamic URL eingetragen werden: ssh://storage@royd.dnsd.me

    Alternativ kann auch über „dazzle create-encrypted PROJEKTNAME“ ein Hauptordner mit AES-256-CBC Verschlüsselung erstellt werden. Das Passwort zum Entschlüsseln liegt dabei ausschließlich auf Client-Seite.

re:oyd (12): WordPress, Permalinks, rewrite und nginx

Wer bei WordPress die suchmaschinenfreudlicheren Permalinks benutzen möchte, muss entsprechende rewrite Rules erstellen. Da wir nginx als Webserver nutzen, muss die Datei „/etc/nginx/nginx.conf“ angepasst werden (statt etwa der mod_rewrite Rules in .htaccess für Apache-Server). „Rewrite“ müssen wir dabei aber gar nicht nutzen, da es eine effektivere Regel gibt („try_files $uri $uri/ /index.php?$args;“). Diese also einfach in die entsprechende location-Sektion des (richtigen) Servers eintragen:

server {
   #...
   location / {
      root /srv/http/wordpress;
      index  index.php; 
      try_files $uri $uri/ /index.php?$args;  
 }

Rewrite könnte man etwa einsetzen, um eine einfache php-Webseite mit Verweisen der Form „index.php?seite=impressum“ als statische Seite („impressum.html“) erscheinen zu lassen:

server {
    #...
    location / {
       root   /srv/http;
       index  index.php;
       rewrite ^/([a-zA-Z0-9-_]+).html$ /index.php?seite=$1 last;
}

re:oyd (11): Domains, dynamische IPs und nginx

Dank DNSdynamic (oder jedem anderen dynamischen DNS Anbieter) ist unser Homeserver, trotz wechselnder IP-Adresse, einfach über royd.dnsd.me erreichbar. Schön ist aber anders und zufällig haben wir noch DOMAIN1.de und DOMAIN2.de. Eine davon soll auf unsere neue WordPress-Installation verweisen, die zweite auf unsere berufliche Webseite. Frame-Weiterleitung oder HTTP-Weiterleitung wollen wir natürlich nicht – also müssen wir an die DNS Einträger der Domains heran (sollte das nicht gehen, bleibt wohl nur ein Domainumzug).

Die Auflösung des Domainnamens erfolgt zunächst über das A-Record. Hier steht die (feste) IP-Adresse des Webservers. Mit wechselnder IP-Adresse können wir damit also nichts anfangen. Zum Glück gibt es aber noch den CNAME Eintrag. Hier können wir eine Alias-Domain angeben, an die DOMAIN1.de weitergeleitet werden soll (ein CNAME Eintrag für http://DOMAIN1.de zur Weiterleitung ist leider nicht standardkonform, aber für http://www.DOMAIN1.de gibt es kein Problem. Dafür müssen wir die Subdomain www anlegen, sofern sie noch nicht existiert). Für CNAME können wir jetzt einfach „royd.dnsd.me“ eintragen.
Das gleiche gilt für www.DOMAIN2.de . ACHTUNG! Eine Weiterleitung auf bspw. „royd.dnsd.me/wordpress/“ ist nicht möglich! Folglich müssen wir nginx so einrichten, dass wir bei Eingabe von www.DOMAIN1.de bzw. www.DOMAIN2.de auf der richtigen Webseite, bzw. im richtigen Verzeichnis des Webservers landen.

Also ins Verzeichnis „/etc/nginx/“ wechseln und nginx.conf bearbeiten:
Wir brauchen für jede Domain eine eigene „server“ Sektion. Die bereits existierende kann einfach kopiert werden. Die Anpassungen sehen dann etwa so aus (ACHTUNG: Darstellung nur auszugsweise):

server {
   listen   80;
   server_name DOMAIN1.de;
   location / {
      root /srv/http/wordpress;
      index  index.php index.html; 
   }
}
server {
   listen   80;
   server_name DOMAIN2.de;
   location / {
      root /srv/http;
      index  index.php index.html; 
   }
}

Damit sollten jetzt beide Domains korrekt funktionieren.