Christoph Polcin

Coole Sache - Indefero auf uberspace

Indefero ist ein schlankes und schnelles Web-Frontend zur Verwaltung von Soft­ware­pro­jek­ten, ganz nach dem Vorbild von google code und github. Darüer hinaus ist es frei und wird aktiv entwickelt! Von Haus biringt es Code-Review Funk­tio­na­li­tät und Un­ter­stüt­zung für Git, Mercurial, SVN und Monotone mit. Was will man mehr? Schau dir Indefero's indefero an.

Es folgt eine kurze In­stal­la­ti­ons­an­lei­tung, basierend auf der Projekt Readme:

Per SSH mit deinem uberspace verbindung aufnehmen und Git kon­fi­gu­rie­ren

git config --global user.name "John Doe"
git config --global user.email johndoe@example.com

Un­ter­ver­zeich­nis außerhalb des Web-Roots anlegen

export TOOLS="/var/www/virtual/${USER}/tools"
mkdir $TOOLS
cd && ln -s $TOOLS

Pluf-Framework in­stal­lie­ren

cd $TOOLS
git clone git://projects.ceondo.com/pluf.git

Eventuell die Pakete Mail und Mail_mime mittels pear in­stal­lie­ren

Indefero in­stal­li­ern

cd $TOOLS
git clone git://projects.ceondo.com/indefero.git
# letzte stabile Version selektieren
cd indefero && git checkout --track -b local1.2 origin/release-1.2

Indefero kon­fi­gu­rie­ren

cd $TOOLS/indefero
cp src/IDF/conf/idf.php{-dist,}
# Variablen an Installation anpassen
# nicht benoetigte SCMs vollstaendig auskommentieren
$EDITOR src/IDF/conf/idf.php
cp src/IDF/conf/path.php{-dist,}
# an Installation anpassen, in der Regel keine Anpassung notwendig
$EDITOR src/IDF/conf/path.php

Symlinks ins Web-Root, unter diesem Pfad ist Indefero zu erreichen, nach belieben anpassen

mkdir ~/html/indefero
cd ~/html/indefero
ln -s $TOOLS/indefero/www/index.php
ln -s $TOOLS/indefero/www/media

Datenbank anlegen und in­itia­li­sie­ren siehe Anleitung im uberspace.wiki

cd $TOOLS/indefero/src
# um Initialisierung zu testen
php $TOOLS/pluf/src/migrate.php --conf=IDF/conf/idf.php -a -i -d -u
# initialisieren
php $TOOLS/pluf/src/migrate.php --conf=IDF/conf/idf.php -a -i -d

Ver­zeich­nis­rech­te anpassen

chmod 755 $TOOLS
cd $TOOLS
chmod -R go-rwx pluf
chmod -R go-rwx indefero
cd indefero
chmod 755 www
find www -type f -exec chmod 644 {} \;
find www -type d -exec chmod 755 {} \;

Ad­mi­nis­tra­tor-Zugang anlegen

# bootstrap.php erzeugen, TOOLS anpassen
<?php
require 'TOOLS/indefero/src/IDF/conf/path.php';
require 'Pluf.php';
Pluf::start('TOOLS/indefero/src/IDF/conf/idf.php');
Pluf_Dispatcher::loadControllers(Pluf::f('idf_views'));

$user = new Pluf_User();
$user->first_name = 'John';
$user->last_name = 'Doe'; // Required!
$user->login = 'doe'; // must be lowercase!
$user->email = 'doe@example.com';
// password wird in db verschluesselt
$user->password = 'yourpassword'; 
$user->administrator = true;
$user->active = true;
$user->create();
print "Bootstrap ok\n";

Ausführen und löschen

php bootstrap.php && rm bootstrap.php

Updates, Updates, Updates

cd /var/www/virtual/${USER}/tools
# backup
nice tar -cjf bak.tb2 indefero/ pluf/

# suche und kille alle php-cgi Prozesse (ps uxx | grep php-cgi)

rm ~/tmp/Pluf_*

# pluf updaten
cd pluf && git pull

# indefero updaten
cd ../indefero
# Konfiguration commiten oder sichern (src/IDF/conf/*.php)
git remote update,  letztes tag suchen (git describe --abbrev=0 --tags)
git checkout -b local<TAG> <TAG> und git cherry-pick <CONFIG-COMMITS...>

# Konfiguration aktualisieren (src/IDF/conf/*.php)

# Datenbank migrieren
cd src
php  ../../pluf/src/migrate.php --conf=IDF/conf/idf.php -a -d -u
php  ../../pluf/src/migrate.php --conf=IDF/conf/idf.php -a -d

Geschafft. Viel Spass mit uberspace und deinem Indefero!