Les sites web de grenode sont hébergés sur la machine outils.

Accéder à doc.grenode.net

Simplement en allant à l'adresse https://doc.grenode.net/ avec votre navigateur préféré. Un couple login/mot de passe est demandé ; pour ceux qui sont root sur la machine outils, taper la commande :

sudo htpasswd /home/grenode-ikiwiki/htpasswd <ton-login>

qui permet ensuite de s'authentifier sur https://doc.grenode.net/.

Pour ceux qui ne sont pas root sur outils : générer un fichier htpasswd sur votre machine avec la même commande, puis envoyer la ligne générée sur equipage@, en demandant que quelqu'un l'ajoute au htpasswd de Grenode.

Contribuer au wiki

Il est possible d'utiliser la fonction edit de cet interface web afin de modifier ce wiki aisément. Néanmoins comme il fonctionne avec ikiwiki et git, disposer d'une copie du wiki qui fonctionne à la maison ne prend pas tant de temps, et c'est quand même tout à fait pratique…

Cette documentation est faite sur une Debian Lenny (mais ça devrait marcher sur Ubuntu à condition d'avoir le dépôt universe configuré).

Installer une copie locale du wiki

Installation de paquets Debian nécessaires

À coup de ligne de commande :

# aptitude install --without-recommends \
            ikiwiki libtext-markdown-perl libimage-magick-perl git-core \
            libsearch-xapian-perl

Cette documentation part du principe que Apache est déjà installé. Si ce n'est pas le cas, vous avez le choix entre installer apache ou utiliser un autre serveur web. Cette documentation explique comment faire avec apache ou nginx.

Configuration d'Apache

Première étape, on installe apache :

# aptitude install --without-recommends apache2

Cette documentation utilise la fonction « userdir » :

# a2enmod userdir

Cela rend le dossier public_html accessible à l'adresse http://localhost/~user/.

Il est également nécessaire de modifier /etc/apache2/mods-available/userdir.conf pour y lire :

…
<Directory /home/*/public_html>
    AllowOverride All
    …

Cela permet de configurer le répertoire dans lequel se trouvera le wiki plus facilement, sans avoir à devenir root.

Configuration avec nginx

Si vous avez fait la section précédente, il n'est pas nécessaire de suivre celle-là, c'est juste une alternative. De plus, nginx ne sait pas fonctionner avec des fichiers d'autoristation .htaccess, il faut donc impérativement limiter l'accès via la conf de nginx aux IPs voulues (typiquement, 127.0.0.1 et ::1).

Premièrement, installer les paquets nécessaires :

    # apt-get install nginx fcgiwrap

Deuxièmement, configurer le VirtualHost, par exemple dans /etc/nginx/sites-available/grenode :

    server {
        listen   127.0.0.1:80; ## listen for ipv4; this line is default and implied
        listen   [::1]:80;
        include /etc/nginx/fcgiwrap.conf;
        server_name localhost;
        root /home/<USER>/public_html;
        autoindex on;
        location /nginx_status {
            stub_status on;
            access_log   off;
            allow 127.0.0.1;
            deny all;
        }
        location / {
        }
        location /images {
            root /usr/share;
            autoindex off;
        }
        location ~ ikiwiki\.cgi$ {
            fastcgi_pass   unix:/var/run/fcgiwrap.socket;
            fastcgi_param  SCRIPT_FILENAME  /home/<USER>/public_html/grenode$fastcgi_script_name;
        }
        location ~ /\.ht {
            deny all;
        }
    }

Puis faire un lien vers ce fichier dans /etc/nginx/sites-enabled/grenode :

    # ln -s /etc/nginx/sites-available/grenode /etc/nginx/sites-enabled/grenode

Enfin, configurer fcgiwrap pour servir les pages ikiwiki, selon la documentation sur le site de nginx.

Redémarrer nginx.

Copie du dépôt

Les membres du groupe grenode-web sur la machine outils peuvent contribuer au site. Ils ont en effet les droits sur le dépôt /home/grenode-ikiwiki/web.git.

Pour faire une copie du dépôt, on utilise la commande git clone. Pour cette documentation, ça sera dans le répertoire ~/grenode.

~/grenode$ git clone USER@outils.grenode.net:/home/grenode-ikiwiki/web.git

Le répertoire ~/grenode/web contient maintenant l'intégralité des sources du wiki. On peut déjà faire des modifications dans les fichiers, les enregistrer dans le dépôt avec git commit, voir l'historique à travers git log, les envoyer en faisant git push, les mettre à jour localement git pull.

~/grenode$ git config user.email USER@grenode.net
~/grenode$ git config user.name  <nom>

Configuration d'ikiwiki en local

Afin d'avoir une version locale « compilée » du wiki (donc sous forme de pages web, que le serveur web que nous avons installé pourra servir), il est nécessaire d'utiliser un fichier de configuration propre à ikiwiki. Le fichier doc.setup peut normalement servir tel quel, sauf si les répertoires sont différents.

Si tout va bien, il suffit ensuite d'effectuer les commandes suivantes pour compiler le wiki :

~/grenode$ mkdir -p ~/public_html/grenode
~/grenode$ ikiwiki --setup doc.setup

En visitant l'adresse http://localhost/~USER/grenode/ on doit déjà pouvoir naviguer dans le wiki.

Protection et configuration du site

Il est ensuite nécessaire de configurer :

  • l'exécution du CGI (pour pouvoir modifier des pages par l'intermédiaire du formulaire)
  • la protection de l'accès au site à des personnes extérieurs (via le réseau, vu qu'il est sur un serveur web).

Grâce à la directive AllowOverride All de tout à l'heure, cela se fait par l'intermédiaire d'un fichier ~/public_html/grenode/.htaccess. Son contenu se trouve dans le fichier htaccess. Il est nécessaire de remplacer USER par le login utilisé (impossible avec nginx).

Pour la création des comptes, on fait :

~/grenode$ htpasswd -c ~/public_html/grenode/htpasswd USER

Utilisation

Si tout se passe bien, il est possible de faire des modifications à travers l'interface web, comme d'habitude. Les modifications seront uniquement enregistrées localement.

Il est également possible de faire des modifications directement dans les fichiers, en y ajoutant ou modifiant des fichiers.

Pour une documentation assez complète en francais, suivre le lien : http://alexgirard.com/git-book/

Une fois qu'on est content des modifications que l'on a faites, on peut envoyer les modifications en faisant :

~/grenode/web$ git push

Pour les maniaques, on peut réécrire un peu l'histoire avant en faisant :

~/grenode/web$ git rebase -i master

(Cela permet de cacher un peu les 25 corrections différentes de coquilles, mais c'est pas top, il vaut mieux faire des commits unitaires…)