How to take notes with Paperwork

Currently there are numerous tools for taking notes, one that has caught my attention is the new, powerful and open source paperwork, which is a real alternative to the proprietary applications of this area.

What is Paperwork?

Paperwork is an open source alternative for note taking, it supports Evernote, Microsoft OneNote & Google Keep.

paper work

paper work

Paperwork it is written in PHP, using the framework Washable 4. Built on top of AngularJS y Bootstrap 3, pIt provides a modern web user interface, as well as an open API for third-party integration.

For the back-end part it stores everything in a database MySQL. With such common requirements (Linux, Apache, MySQL, PHP), Paperwork it will be able to run not only on dedicated servers, but also on small and medium NAS devices (Synology, QNAP, etc.).

How to test a Paperwork demo

We can test a demo of Paperwork by accessing online job instances provided by  Sandstorm y Cloudron.  You can try Paperwork in Sandstorm (without logging in) or Paperwork in Cloudron (username: cloudron, password: cloudron).

Every night at 3am (CET), the database is dropped and recreated, and the latest updates on GitHub are rolled out.

Feel free to create / modify / delete accounts, notebooks and notes. This demo can be used for strong testing without any problem.

Requirements to install Paperwork

  • php5
  • mysql
  • nginx, lamp ...
  • curl
  • nodejs

How to install Paperwork

Install Paperwork on Ubuntu 14.10

This will guide you step by step how to install a LEMP server and paperwork. This guide was written and tested on Ubuntu 14.10 which can work with older versions as well.


Install dependencies

apt-get update
apt-get install mysql-server php5-mysql nginx php5-fpm curl wget git php5-cli php5-gd php5-mcrypt nodejs nodejs-legacy

If you are planning to use MySQL, it is recommended that you configure it safely:

/usr/bin/mysql_secure_installation

To enable mcrypt in the PHP configuration files, you will need to add the following at the bottom of the configuration for php5-cli and php5-fpm:

extension=mcrypt.so

vi /etc/php5/fpm/php.ini
vi /etc/php5/cli/php.ini

install composer

curl -sS https://getcomposer.org/installer | php

run composer without specifying the path

mv composer.phar /usr/local/bin/composer

Create directory to install Paperwork

mkdir /var/www/
cd /var/www/

Download Paperwork using git:

git clone https://github.com/twostairs/paperwork.git

Go to the frontend directory:

 cd ./paperwork/frontend/

Run "composer install" and / or "composer update". This will install all the necessary dependencies.

composer install

Now, you must put your MySQL credentials in frontend / app / config / database.php. For local installation, a paperwork database can be configured to work with the default settings:

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

After completing these steps, run the migration tasks, which populate the database:

php artisan migrate

Change the Paperwork permissions on the web-directory to the running user nginx:

chown www-data:www-data -R /var/www/

Edit the default site settings to match: / etc / nginx / sites-available / default

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;

        }

}

Install npm:

 wget https://www.npmjs.org/install.sh
 bash ./install.sh

Install gulp and bower:

 npm install -g gulp bower

Install project npm dependencies

 npm install

Install bower dependencies and run the default tasks

 bower install
 gulp

Restart Nginx and php

service nginx restart
service php5-fpm restart

We can access localhost:8888 and start enjoying Paperwork

Install Paperwork on Debian 7

This will guide you step by step how to install a LEMP server and paperwork. This guide was written and tested on Debian 7 which can work with older versions as well.

We must add the repository backports, required to install Node.js to the /etc/apt/sources.list file:

 deb http://http.debian.net/debian wheezy-backports main

Install dependencies

apt-get update
apt-get install mysql-server php5-mysql nginx php5-fpm curl wget git php5-cli php5-gd php5-mcrypt nodejs nodejs-legacy

If you are planning to use MySQL, it is recommended that you configure it safely:

/usr/bin/mysql_secure_installation

Install composer

curl -sS https://getcomposer.org/installer | php

run composer without specifying the path

mv composer.phar /usr/local/bin/composer

Create directory to install Paperwork:

mkdir /var/www/
cd /var/www/

Download Paperwork using git:

git clone https://github.com/twostairs/paperwork.git

Go to the frontend directory:

 cd ./paperwork/frontend/

Run "composer install" and / or "composer update". This will install the necessary dependencies.

composer install

We must connect Paperwork to your SQL Server. Create "database.json" and copy the file "default_database.json":

cp app/storage/config/default_database.json app/storage/config/database.json

Or, enter the credentials of your SQL server in "database.json", for a simple installation on your local server, we can establish a database that works with the default configuration:

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

After completing these steps, run the migration tasks, which populate the database:

php artisan migrate

Change the Paperwork permissions on the web-directory to the running user nginx:

chown www-data:www-data -R /var/www/

Edit the default site settings to match: / etc / nginx / sites-available / default

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;

        }

}

install npm

 wget https://www.npmjs.org/install.sh
 bash ./install.sh

install gulp and bower

 npm install -g gulp bower

Install the required npm dependencies for the project

 npm install

Install bower dependencies and run necessary tasks

 bower install
 gulp

Restart Nginx and php

service nginx restart
service php5-fpm restart

Update Paperwork, run (from / frontend)

  sudo php artisan paperwork:update

Paperwork documentation

The API documentation can be found at docs.paperwork.apiary.io or using the apiary.apib from official paperwork repository. Paperwork is under development, so further changes are expected.

Contribute to Paperwork

To contribute to Paperwork you can use the following git branch. So to develop, you have to clone the repository in Github, and get a new branch. Validate branching changes and then push updates to the develop branch.

If you are interested in this project and want to contribute, you can contact the developer marius@paperwork.rocks) or Twitter (@devilx) -

There is an IRC channel #paperwork on freenode.net and there is a group lattice.


Leave a Comment

Your email address will not be published. Required fields are marked with *

*

*

  1. Responsible for the data: Miguel Ángel Gatón
  2. Purpose of the data: Control SPAM, comment management.
  3. Legitimation: Your consent
  4. Communication of the data: The data will not be communicated to third parties except by legal obligation.
  5. Data storage: Database hosted by Occentus Networks (EU)
  6. Rights: At any time you can limit, recover and delete your information.