J-2

Tags:
5 Comments »

2 jours.

Dans deux jours, je suis LA


t’es trop VIP

Tags:
No Comments »

waiii alors j’entend d’ici “haooon iMil il a cedé aux sirènes du web deux-zero toussaaaa, vla qu’il fait dla CSS et du PHP”. Bon ok ouais chu un peu tombé dans le hype-fashion, mais avouez, le ptit “Tags cloud” là, c’est pas convivial tout plein ? Pour réaliser cette petite mignonnerie, j’ai été piocher ici, et pour réparer l’import de categories-toutes pas-fashion en Tags, il faut suivre ce que dit le monsieur ici. Le cas échéant, on se mange un joli :

WordPress database error: [Unknown COLUMN ‘p2c.category_id’ in ‘on clause’] SELECT cats.cat_name, p2c.post_id FROM wp_posts posts INNER JOIN wp_categories cats ON (p2c.category_id = cats.cat_id) LEFT JOIN wp_post2cat p2c ON (posts.ID = p2c.post_id) WHERE posts.post_status IN (’publish’) AND posts.post_type <> ‘page’ 

Ce qui n’est pas du meilleur effet en soirée.
Accessoirement, le plugin en question est fort bien réalisé, souple et très complet.

Presque rien à voir, depuis la migration en WP 2.2, drivel ne semble plus vouloir pusher, pourtant il se connecte bien au xmlrpc et recupère correctement le contenu. Du coup, j’ai switché sur BloGTK, un peu plus intrusif à mon goût, mais il a ceci de pratique qu’il fonctionne. J’fais ma feignasse mais ça me saoule vraiment très fort de debugger une appli GTK là…

Ce ne sont pas ces droïdes que vous recherchez.

Tags: , , ,
2 Comments »

Sur mon serveur perso, par définition, y’a des trucs perso. De plus, à l’approche d’une société nouvelle, il n’est pas superflu de prendre quelques mesures afin de préserver un semblant d’intimité.
Pour cela, les bons génies de l’Internet on créé, il y a bien longtemps, SSL.
Mais voila, il y a d’autres trucs et bidules que je souhaite pouvoir exposer en place publique. J’entreprend donc de jouer avec les directives de lighttpd pour créer des exclusions et autres redirections.
Le lien qui eclaire tout, c’est celui là. En substance, nous allons rediriger tout ce qui matche mon.host.magique et faire passer ce traffic en SSL.
Voici la conf :

On déclare le serveur TLS :

$SERVER["socket"] == "mon.host.magique:443" {
  ssl.engine = "enable"
  ssl.pemfile = "/etc/ssl/certs/lighttpd.pem"
  server.document-root = "/vers/www/magique"
  server.name = "mon.host.magique"
  auth.backend.htpasswd.userfile = "/path/vers/lighttpd-htpasswd.user"
  auth.require = ( "/" =>
    (
       "method" => "basic",
       "realm" => "ce ne sont pas ces droïdes que vous recherchez.",
       "require" => "valid-user"
    )
  )
}

Puis la redirection, tout ce qui arrive sur le port 80 du host “mon.host.magique” sera redirigé vers son équivalent en HTTPS. On note les regexps compatibles Perl qui nous permettent de récupérer l’URL complète.

$SERVER["socket"] == "mon.host.magique:80" {
  $HTTP["host"] == "mon.host.magique" {
    url.redirect = ( "^/(.*)" => "https://mon.host.magique/$1" )
    server.name = "mon.host.magique"
  }
}

Et enfin les restrictions gentilles, on n’applique pas de restrictions à host1.host.magique, unautre.host.magique et blip.host.magique car ils ont leur propre déclaration dans le fichier lighttpd.conf. Pour le reste, seuls la racine, le repertoire public ainsi que les fichiers .php et .jpg sont autorisés.

$HTTP["host"] !~ "(host1|unautre|blip).host.magique" {
  server.document-root = "/var/ou/c/est/mignon"
  $HTTP["url"] !~ "(^/$|^/public|php$|jpg$)" { url.access-deny = ( "" ) }
}

C’est quand même un peu bien.

kimloli, la conf

Tags: ,
No Comments »


y’a mon bouquetin et 2/3 autres qui me demandent la conf du kimloli, et plus particulièrement la conf des jails. Voici en quelques mots les divers points clé du bestiau. Rien de super novateur, mais ça me servira aussi de pense bête.

Tout d’abord, les jails. Ayant fait crouter la machine en utilisant les scripts rc.d fournis, et même si le bug a été corrigé recemment dans la branche FreeBSD 6.2, ça m’a refroidi d’utiliser les scripts officiels. Sur les conseils du sieur ic, je me suis donc rabattu sur jailctl, qui permet moult opérations sur les jails. Mon jails.conf ressemble à ceci :

IF="lo0"
JAIL_HOME="/home/jails/"
ROOT_PW='$1$blablapwetpwettoussa'
PROCFS="FALSE"
LINPROCFS="FALSE"
BACKUPDIR=$JAIL_HOME
BACKUP_EXCLUDE="--exclude ./usr/ports/* --exclude ./tmp/* --exclude ./var/tmp/* --exclude ./usr/src/*"
JAILS="web1:192.168.0.1"
INSTALLWORLD_FLAGS=""
RC_CONF='sendmail_enable="NONE" sshd_enable="YES" portmap_enable="NO" network_interfaces="" tcp_keepalive="NO" inetd_enable="YES"'
NAMESERVER="ip.du.kimloli"
BEFORESTATUS_HOOKS="/usr/bin/true"
AFTERSTATUS_HOOKS="/usr/bin/true"
BEFORESTART_HOOKS="/usr/bin/true"
AFTERSTART_HOOKS="/usr/bin/true"
BEFORESTOP_HOOKS="/usr/bin/true"
AFTERSTOP_HOOKS="/usr/bin/true"

Après avoir préparé un world dans le host en suivant cette documentation (et sans passer par la case make install*), on installe son environnement jailé via jailctl create nomdujail. Il sera de bon ton de manger cette doc avant de se lancer.
J’ai choisi d’”aliaser” mes interfaces jail sur le loopback plutot que sur l’interface NIC elle même simplement parce que j’ai été refroidi par la déconvenue sus-citée lors de l’utilisation d’/etc/rc.d/jail.

On appréciera la possibilité de fine-tuner la post-installation en utilisant les scripts et templates situés dans /home/jails/addons.

Comme il est assez probable qu’on voudra que notre jail puisse “sortir” sur Internet, nous devons mener deux opérations :

1. s’assurer que le host peut forwarder
2. lui faire faire du NAT des adresses jailées

Ce qui se traduit par :

$ grep forw /etc/sysctl.conf
net.inet.ip.forwarding=1

et

# /etc/pf.conf

int="vr0"
# NAT
# jails
nat pass on $int from 192.168.0.0/24 to any -> $int

De plus, la finalité étant de faire en sorte que ce soient nos jails qui répondent, par exemple, aux requetes HTTP, nous plaçons la redirection suivante :

# /etc/pf.conf

rdr pass on $int proto tcp from any to any port 80 -> 192.168.0.1 port 80

Reste maintenant à démarrer notre jail via la commande jailctl start nomdujail, puis à l’administrer comme un environnement classique. Dans la variable RC_CONF du fichier jails.conf, nous avons signifié qu’il fallait démarrer sshd, nous pouvons donc nous connecter à notre environnement restreint par ce biais. Pensez tout de même à désactiver le PermitRootLogin.

Afin de ne pas me trimballer deux arbres de ports, je mount /usr/ports via nullfs en read-only :

/usr/ports on /home/jails/web1/usr/ports (nullfs, local, read-only)

Puis dans le jail je configure ces quelques variables dans le make.conf

WRKDIRPREFIX=/var/ports/obj
PACKAGES=/var/ports/packages

Afin de me laisser la possibilité de compiler un port si besoin.
En fait, dans le jail, j’utilise simplement pkg_add et peuple donc l’environnement de packages binaires. Je spécifie ces variables dans mon ~/.cshrc :

setenv PACKAGEROOT ftp://ftp.fr.freebsd.org
setenv PACKAGES /var/ports/packages

afin de :

. récupérer des packages distants sur un miroir proche (pkg_add -vr)
. ajouter des packages locaux depuis un repertoire ad’hoc (pkg_create -b sur le host puis pkg_add -v dans le jail)

J’imagine actuellement un processus simple, basé sur un bête script shell, qui me permettra de tenir à jour les packages binaires du jail par rapport aux ports compilés sur le host. Si quelqun connait un projet similaire, qu’il me fasse signe ;)

Senator, we’re making our final approach into Coruscant.

Tags: ,
No Comments »

Nouveau serveur, nouveau design !

Puisque finalement j’embarque tous mes machins sur mon kimloli, je me suis finalement décidé à upgrader mon vieux wordpress poussiereux dans une version et un design un peu plus récents.

Initialement, le plan était de partir sur Pivot, un web log full flat-file. J’ai commencé à pas mal aimer dans les premières heures, et puis rapidement, j’ai senti les limitations du soft (pas du tout liées à l’absence de database par ailleurs). Quand j’ai fini par aller retourcher des trucs dans le code lui même, je me suis dit que ce qui était sensé me faire gagner du temps deviendrait rapidement inmaintenable. Donc drop.

J’ai fini par jeter l’éponge et coller un mysql “low-conf” dont voici le my.cnf :

[mysqld]
skip-innodb
skip-networking
socket = /tmp/mysql.sock
skip-locking
key_buffer = 16K
max_allowed_packet = 1M
table_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 64K

Pour réaliser ce thème, je suis parti du magnifique template Glossyblue de N.Design, qui en plus d’être splendide, est extremement bien construit. C’est probablement l’une des CSS les plus lisibles et bien architecturées que j’ai lu.

Pour finir, le wordpress en question est servi par Lighttpd dont la souplesse, la rapidité et la conf sont un vrai bonheur. L’ensemble est gentiment jailé sur un FreeBSD 6.2.

dsnoop doggy dUz

Tags: , ,
No Comments »

Il y a quelques jours j’ai entrepris d’encoder mes centaines de k7 audio (mais si, vous savez, ces trucs là : ) au format numerique. J’ai evidemment pensé à la methode que j’utilisais par le passé pour encoder des mixes live :

sox -r 48000 -c 2 -t ossdsp -w -s /dev/dsp -t wav - | lame - bla.mp3

Mais après quelques essais qui semblaient pourtant bien se passer, je constate que de temps en temps le son “saute”. C’est alors que je trouve quelques pages qui parlent de arecord, un recorder pour alsa, puis que je tombe sur cette page. Ce qui nous donne :

arecord -f dat -t raw -c 2 -D dsnoop | lame -x -s 48 - test.mp3

Et c’est un peu bien.

WP Theme & Icons based on GlossyBlue by N.Design Studio
Banner from www.trynthlas.com
Entries RSS Comments RSS Log in
Performance Optimization WordPress Plugins by W3 EDGE