Deep Blog

Paperwork, un Evernote auto-hébergé.


Attention! Cet article s'adresse aux gens qui connaissent linux, la ligne de commande, mysql, php et nginx.

Bonjour!

Aujourd'hui on va parler de Paperwork!

"Mais qu'est-ce donc?"

Alors, Paperwork est un outil de gestion de note auto hébergé. En d'autres termes, un Evernote chez soit.

"Ok, comment on l'installe?"

Pour installer Paperwork, ouvrez une invite de commande et entrez les commande suivantes en root:

  1. Installez php et mysql:
    // ubuntu
    apt-get update
    apt-get install mysql-server php5-mysql  nginx php5-fpm curl wget git php5-cli php5-gd php5-mcrypt nodejs
  2. Procédez à la configuration initiale de mysql:
    /usr/bin/mysql_secure_installation
  3. Activez mcrypt dans php en modifiant les fichiers /etc/php5/fpm/php.ini et /etc/php5/cli/php.ini:
    extension=mcrypt.so
  4. Installez composer:
    curl -sS https://getcomposer.org/installer | php
    mv composer.phar /usr/local/bin/composer
  5. Rendez-vous dans le dossier /var/www où nous allons mettre Paperwork:
    cd /var/www/
  6. Clonez [Paperwork](http://paperwork.rocks/) et entrez dans le dossier:
    git clone https://github.com/twostairs/paperwork.git
     cd ./paperwork/frontend/
  7. Entrez dans mysql et ajoutez un nouvel utilisateur avec sa base pour Paperwork:
    mysql -u root -p
    DROP DATABASE IF EXISTS paperwork;
    CREATE DATABASE IF NOT EXISTS paperwork DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
    GRANT ALL PRIVILEGES ON paperwork.* TO 'paperwork'@'localhost' IDENTIFIED BY 'paperwork' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    quit
  8. Copiez la configuration de base pour que Paperwork se connecte à la base de donnée:
    cp app/storage/config/default_database.json app/storage/config/database.json
  9. Utilisez le script fournit par Paperwork pour remplir la base:
    php artisan migrate
  10. Donnez les droit à www-data pour le dossier de Paperwork (attention, sur certains systèmes c'est l'utilisateur http):
    chown www-data:www-data -R /var/www/
  11. Ajoutez une configuration pour nginx:
    vim /etc/nginx/sites-available/paperwork.domain.com
    server {
            listen   80;
            # listen 443 ssl;
    
        root /var/www/paperwork/frontend/public;
        index index.php index.html index.htm;
    
        server_name example.com;
    
        # server_name example.com;
        # ssl_certificate /etc/nginx/ssl/server.crt;
        # ssl_certificate_key /etc/nginx/ssl/server.key;
    
        location / {
                try_files $uri $uri/ /index.php;
        }
    
        error_page 404 /404.html;
    
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
              root /usr/share/nginx/www;
        }
    
        # pass the PHP scripts to FastCGI server listening on the php-fpm socket
        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
    
        }
    

    }

    ln -s /etc/nginx/sites-avalaible/paperwork.domain.com /etc/nginx/sites-enable/paperwork.domain.com
    
  12.  Ajoutez un fichier setup pour évitez que la configuration de Paperwork échoue:
    sudo -u www-data touch app/storage/config/setup
  13.  Installez nodejs:
    curl -sL https://deb.nodesource.com/setup_7.x |  bash -
    apt-get install -y nodejs
    
  14. installez bower et gulp globalement:
    npm install -g gulp bower
  15.  Installez les dépendances de Paperwork:
    sudo -u www-data npm install
    sudo -u www-data bower install
    sudo -u www-data gulp
  16. Redémarrez nginx et php:
    service nginx restart
    service php5-fpm restart

Et voilà! Vous avez un Paperwork fonctionnel sur le port 80.

-- Mathieu