Projekt: pregos files

Vor ein paar Jahren hab ich mal file delivery implementiert, dann aber nie weiter verfolgt. Jetzt habe ich das ganze noch einmal deutlich einfacher geskriptet.

pregos files

Die Features sind:

  • Dateiuploads laufen nach einer Zeitperiode ab
  • Downloadnamen werden automatisch generiert um nicht einfach geraten zu werden
  • Optional kann ein eigener, sprechender Downloadname angegeben werden
  • Optional können Downloads mit einem Passwort gesichert werden
  • Emailbenachrichtigung bei Download
  • Emailbenachrichtigung wenn eine Datei bald abläuft
  • Benutzerauthentifizierung für Dateiupload
  • Standard- und Admin Benutzerrollen
  • Adminbenutzer können andere Benutzer verwalten und sehen eine Liste aller verfügbarer Dateien

Den Quelltext gibt es auf Github.

Projekt: pregos tracks

Mit der Zeit habe ich eine ganze Menge GPX-Tracks angesammelt und ich habe nach einer Möglichkeit gesucht diese leicht anzuschauen und Infos daraus zu bekommen. Aus Spaß an der Freude hab ich mir mit PHP und JavaScript selber etwas zusammen kopiert. Der Track wird auf einer Karte angezeigt, es gibt einige wenige Statistiken zum Track sowie einen Graph über den Höhenverlauf und einen optionalen über die Geschwindigkeit. Neue GPX-Tracks können direkt auf der Seite hochgeladen werden. Nix besonderes, ziemlich dreckig wenn man in den Code schaut aber mir egal, genau das wollte ich haben.

pregos tracks

Wer den Code haben möchte, ich habe ihn auf Github als pregos-tracks veröffentlicht.

Nagios/Icinga plugin to check Joomla Update status (passive check)

Wenn man Software von Hand und nicht aus den Repositories installiert, muss man sich auch von Hand um die Updates kuemmern. Da ich kein Plugin gefunden habe, dass mir den Joomla Update Status ueberprueft und in Nagios anzeigt, habe ich fix eines selber geschrieben. Es muss als passive Check aufgerufen werden, da es mit einer lokalen Datei auf dem Server ueberprueft, welche Version installiert ist. Das Plugin hat bei den Updates auf 2.5.7 und 2.5.8 verlaesslich angezeigt das ein Update existiert. Extensions sind nicht mit inbegriffen!

<?php
 
/***
 * Simple and dirty php script to check if the local joomla version
 * is up to date. This script only works on the server, were Joomla
 * is installed. If Nagios is not running on the same server, you 
 * possibly need to run it via NSCA or similar systems.
 *
 * @version: 0.1
 *
 * @author: jan.toenjes@intranda.com
 *
 * @changelog: initial version
 *
 ***/
 
 
/***
 * CONFIGURATION
 *
 * localVersionFile: set the full path to the version.php file from your Joomla installation
 * remoteVersionUrl: set the link to the list.xml file from the Joomla core update server
 ***/
$localVersionFile = "/var/www/joomla/libraries/cms/version/version.php";
$remoteVersionUrl = "http://update.joomla.org/core/list.xml";
 
 
// get local Joomla Version
define('_JEXEC', 1);
require "$localVersionFile";
$jversion = new JVersion;
$localJoomlaVersion = $jversion->getShortVersion();
 
 
// get remote Joomla Version
$xml = simplexml_load_file($remoteVersionUrl);
$remoteJoomlaVersion = $xml->extension['version'];
 
 
// compare and return info
if ($localJoomlaVersion < $remoteJoomlaVersion) {
        echo "A new version is available: $remoteJoomlaVersion";
        exit (2);
}
else {
        echo "Your current Version $localJoomlaVersion is up to date";
}
 
?>

Neues Projekt: file delivery

Nach Goetemp und Werdertweets schmeiss ich jetzt mal file delivery hier raus ins Netz. Die Idee des Projekts ist relativ simpel. Ueber einen einfachen Weg Dateien im Internet zur Verfuegung zu stellen ohne den echten Dateinamen bekannt zu geben sowie die Dokumente im DocumentRoot vorzuhalten.
Dabei herausgekommen ist file delivery. Es ist ein in PHP geschriebenes kleines System wo ueber ein Webinterface Dateien hochgeladen werden koennen. Die Dateien koennen irgendwo im Dateisystem liegen und muessen nicht im DocumentRoot des Webservers verfuegbar sein. Nach dem Upload gibt es eine URL die aus dem Benutzernamen des Nutzers der die Datei hochgeladen und der MD5-Checksum der hochgeladenen Datei besteht. Nur mit dieser kryptischen URL kann man nun die eine Datei herunterladen.
Als kleines Addon ist eine optionale Emailbenachrichtigung implementiert, die eine Email verschickt, wenn die gewaehlte Datei heruntergeladen wird.

Das System hat eine simple Benutzerverwaltung. Neue Nutzer koennen von dem Administrator Account hinzugefuegt werden. Wenn das PHP-Modul „apc“ installiert und aktiviert ist, wird auch ein Upload Fortschrittsbalken angezeigt. file delivery nutzt Smarty als Templateengine und kann dadurch komplett geskinnt werden.

Das System habe ich unter http://files.pregos.info installiert. Zugangsdaten zum Testen sind „admin/password“. Fuer diese Installation habe ich das Passwort aendern fuer den Administrator deaktiviert.

Wer Anmerkungen, Kritik oder aehnliches hat, bitte immer her damit. Code gibts fuer interessierte auf Anfrage per Mail.