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.
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.