Jacques Foucry bio photo

Jacques Foucry

IT, râleur et faiseur de pain

Email



Où l’on va voir comment se passer de DropBox, Google Calendar et Goole Address Book.

Pourquoi rejeter ces services tellement pratique.

Les services cités plus haut sont très pratique. Ils permettent d’accéder à nos données depuis n’importe où dans le vaste monde. Facile à utiliser, ils ne semblent avoir que des avantages. <br/
Sauf que tous ces services du “cloud” posent des problèmes. Où sont stockées vos informations ? De quelle juridiction dépendent-elles ? Bien souvent des lois États-Unisienne. De plus les compagnies auxquelles vous les confiés utilisent ces données pour vous proposer des publicités ciblées.

Note : n’oubliez pas que le cloud, c’est l’ordinateur d’un autre

Nous allons donc installer de quoi nous passer des ces produits. J’ai choisi owncloud parce qu’il est simple à configurer et à mettre en place. Ajoutons à cela que notre poudriere peu l’installer pour nous.

Installation de owncloud

Comme je l’ai dis plus haut, c’est poudriere qui va faire l’installation de owncloud.

Mais owncloud a besoin de php5 et de php5-pfm pour fonctionner. Voyez comment les installer.

1
2
# poudriere options -j 101Ramd64 -f /usr/local/etc/poudriere.d/101Ramd-list.txt
# poudriere bulk -j 101Ramd64 /usr/local/etc/poudriere.d/101Ramd-list.txt

Note : n’oubliez pas d’ajouter www/owncloud dans votre fichier de liste de ports (/usr/local/etc/poudriere.d/101Ramd-list.txt)

Création d’un dataset ZFS

Nous allons créer un dataset ZFS spécifique pour accueillir owncloud :

1
# zfs create -o mountpoint=/usr/local/www/owncloud zroot/usr/local/www/owncloud

Et l´installation de owncloud se fait ensuite facilement :

1
# pkg install owncloud

Configuration de php56-fpm

Tout comme Roundcube, owncloud utilise le language php et php56-fpm. Il faut donc configurer ce dernier, comme nous l’allons fait précédement, dans le fichier /usr/local/etc/php-fpm.conf :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[owncloud]
user = www
group = www
listen = /var/run/php-fpm-owncloud.sock
listen.owner = www
listen.group = www
listen.mode = 0666

listen.backlog = -1
listen.allowed_clients = 127.0.0.1


pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
pm.max_requests = 500

Comme vous pouvez le constater, cette configuration est très semble à celle de Roundcube, le principal changement étant le chemin vers la socket.

Il est nécessaire de redémarrer php-fpm ensuite :

1
# service php-fpm restart

Configuration de nginx

Il est nécessaire de créer un fichier de configuration pour nginx. Celui-ci se trouve dans /usr/local/etc/nginx/sites-available :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
server {
        listen 80;
        server_name owncloud.tamanoir.example.com owncloud.example.com;
        return 301 https://$server_name$request_uri;  # enforce https
}

server {
        listen 443 ssl;
        server_name owncloud.tamanoir.example.com owncloud.example.com;

        ssl_certificate /etc/ssl/certs/tamanoir.example.com.pem;
        ssl_certificate_key /etc/ssl/private/example.com.key;

        # Path to the root of your installation
        root /usr/local/www/owncloud/;

        error_log /var/log/nginx/owncloud.error.log;
        access_log /var/log/nginx/owncloud.access.log main;
        client_max_body_size 10G; # set max upload size
        fastcgi_buffers 64 4K;

        rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
        rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
        rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;

        index index.php;
        error_page 403 /core/templates/403.php;
        error_page 404 /core/templates/404.php;

        location = /robots.txt {
            allow all;
            log_not_found off;
            access_log off;
        }

        location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
            deny all;
        }

        location / {
            # The following 2 rules are only needed with webfinger
            rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
            rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;

            rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
            rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;

            rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;

            try_files $uri $uri/ index.php;
        }

        location ~ ^(.+?\.php)(/.*)?$ {
            try_files $1 = 404;

            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$1;
            fastcgi_param PATH_INFO $2;
            fastcgi_param HTTPS on;
            #fastcgi_pass 127.0.0.1:9000;
            fastcgi_pass unix:/var/run/php-fpm-owncloud.sock;
            # Or use unix-socket with 'fastcgi_pass unix:/var/run/php5-fpm.sock;'
        }

        # Optional: set long EXPIRES header on static assets
        location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
            expires 30d;
            # Optional: Don't log access to assets
            access_log off;
        }
}

Le fichier est plus complexer que celui de roundcube en raison des différents services proposé par owncloud. Il est tout de même compréhensible, surtout maintenant que vous avez de l’expérience.

Note : je n’ai pas trouvé ça tout seul, je me suis aidé des nombreux tutoriels que l’on trouve sur Internet.

Il faut ensuite activer ce nouvel hôte virtuel en faisant un lien symbolique vers /usr/local/etc/nginx/sites-enabled :

1
# ln -s /usr/local/etc/nginx/sites-available/owncloud.conf /usr/local/etc/nginx/sites-enabled/owncloud.conf

et vérifier la conformité du fichier de configuration :

1
# nginx -t

puis redémarrer nginx pour que notre nouvelle configuration soit prise en compte :

1
# service nginx restart

Configuration d’une base de données

Owncloud a besoin d’une base de données. Nous avons déjà installé et configuré MySQL, c’est donc tout natuellement ce moteur que nous allons utiliser.

1
2
3
4
5
6
7
8
9
10
11
# mysql -u root -p
Enter Password:
mysql> create database owncloud;
Query OK, 1 row affected (0.00 sec)
mysql> grant all privileges on owncloud.* to 'owncloud_user'@'localhost' identified by 'motdepassesecret';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye

Configuration depuis un navigateur

Le reste de la configuration de base se fait avec votre navigateur. Pointez sur l’URL de votre installation de owncloud (http://owndloud.exemple.com)

Finalisation de l'installation de owncloud

Vous devez renseigner un nom d’administrateur et son mot de passe en plus des renseignements sur l’accès à la base de données.

Et si tout se passe bien, vous devriez arriver sur la page de gestion de owncloud.

Configuration de la connexion via LDAP

Les utilisateurs de votre système vont sans doute avoir envie d’utiliser owncloud. Comme ils existent déjà dans la base de données LDAP, c’est à nous de faire en sorte que owncloud puisse y accéder.

Il faut tout d’abord activer le greffon (App dans le monde owncloud). Cela se fait en passant par le menu “Files”, items “Apps”.

Sélectionnez Not enabled dans la liste qui apparait à gauche et rechechez LDAP user and group backend dans la liste de droite. Enfin, cliquez sur le boutont Enable pour activer cette application.

Sélectionnez ensuite Admin dans le menu admin à droite. Vous devriez arriver sur la page de configuration de l’accès au LDAP.

  • Onglet Server :
    • host → le nom ou l’adresse ip du serveur LDAP, ici c’est localhost ;
    • base → la base de recherche, pour nous il s’agit de dc=example,dc=com ;
  • Onglet User Filter :
    • Only those object classes → ajoutez posixAccount et shadowAccount à la selection pré-exitante ;
  • Onglet Login Filter :
    • Other Attributes → ajoutez uid à la selection existante ;
  • Onglet Group Filter :
    • only those object classes → sélection posixGroup.

Si vous avez tout bon, une pastille verte devrait vous l’indiquer.

Vous pouvez aussi, avec le menu adnin en haut à droite vous rendre sur la page users. Vous devriez y voir vos utilisateurs LDAP, avec les groupes auxquels ils appartiennent.

Mise en place d’un espace d’échanges

Retour dans les Apps désactivées et, dans la liste de celles-ci activez External Storage support.

Comme précédement, la page de configuration s’obtient par le menu admin, item Admin, en haut à droite.

Nous allons choisir un stockage Local (dans le menu déroulant Ajouter un support). Nous indiquons un nom, un emplacement sur la machine (ce pourrait être un dataset ZFS) et les utilisateurs ou groupes auquels nous accordons l’accès.

Il est donc possible de créer autant de partage que vous le voulez.

Configuration du partage de calendrier et des contacts

Owncloud est également serveur de calendrier. Vous allez donc pouvoir gérer vos rendez-vous de façons centralisée et les voir sur tous vos périphériques. Vous pourrez aussi partager vos calendriers et envoyer des invitations à des événements.

Pour activer cette application, comme d’habitude rendez-vous dans le menu Apps et choisissez dans la colonne de gauche, l’item PIM. Activez les deux applications disponibles, Calendar et Contacts.

Et c’est tout.

Dans le menu Apps vous avez un (en fait deux) nouveelles icônes, celle des contacts et celle des calendriers.

Les contacts

Vous pouvez ensuite importer une liste de contact, aux formats vcf, csv ou ldif. Il semble, après de nombreux essais que l’import ne fonctionne pas.

Il existe une autre solution pour importer les contacts. Elle est un peu tordue mais fonctionne bien mieux. NOus allons configurer l’application qui a la liste de nos contact (en local donc) pour se connecter au serveur. Puis, nous allons transférer les contacts du carnet local au carnet d’adresse distant.

Pour connaitre l’URL de notre carnet d’adresse distant, cliquez sur l’icône d’engrenage en bas à gauche de la fenêtre de owncloud puis sur la troisième icône (qui figure un chaînon), pour accèder au champ de l’URL. Copiez cette adresse dans le presse-papier. La mienne est :

1
https://owncloud.tamanoir.example.com/remote.php/carddav/addressbooks/jacques/contacts

Toujours avec cette URl vous pouvez configurer les applications clientes pour quelles utilisent votre serveur, par exemple l’application Contact de votre iPhone

Les calendriers

L’accès aux calendriers se fait de la même façon que pour les contacts. Vous pouvez ensuite créer autant de calendrier que vous le souhaiter et les partager avec d’autres utilisateurs.

Grâce à l’URL de chacun des calendriers, vous allez pouvoir les consulter et le modifiers sur tous vos périphériques.

Nous n’avons pas fait le tour complet des possibilités de owncloud, mais je vous fais confiance pour aller plus loin.


Laisser un commentaire

Les commentaires sont soumis à modération.