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…)