
Browser bookmarks has been an essential part of browsing for me. But once multiple browsers started appearing, I found that I couldn’t share my bookmarks across browsers.
And then delicio.us appeared. And they even had a free tier! That was such a lifesaver. But like all good things it came to an end and I had to choose something different. I exported all my bookmarks to Diigo and had been using it for ages.
But from the time I got more comfortable with the server side of things, I wanted get off Diigo as well. I didn’t want to face the same problem again in the future.
I came across Shaarli some years ago and always wanted to install it on my own server. Shaarli seemed to always get recommended as an easy-to-install software.
To install it, I had to use something called Composer which I had never heard of before. After some hours of hunting around I finally managed to do something like this –
Install Composer
Following commands performed as root
curl -s https://getcomposer.org/installer | php
Running this gave me an output like this
All settings correct for using Composer Downloading... Composer (version 1.7.3) successfully installed to: <current folder>/composer.phar Use it: php composer.phar
I had to move composer to a directory so that it could be used globally, and then update it
mv composer.phar to /usr/bin composer update
Install Shaarli
Following commands run as normal user
I followed the steps on the Shaarli github page to install.
git clone https://github.com/shaarli/Shaarli.git -b stable /path/to/shaarli/ cd /path/to/shaarli/ composer install --no-dev --prefer-dist
What was also needed was to make certain directories writable, so –
chmod -R 777 cache data pagecache tmp
And that was it.
Configuring Nginx
The nginx configuration ended up (after a few trials), like this –
server {
listen 80;
server_name bookmarks.abhij.it;
root /path/to/shaarli;
autoindex off;
client_max_body_size 4M;
client_body_buffer_size 128k;
index index.html index.htm index.php;
access_log /var/log/nginx/shaarli_access.log;
error_log /var/log/nginx/shaarli_error.log;
# Pass PHP scripts to PHP-FPM
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SERVER_NAME $host;
fastcgi_param PATH_INFO $uri;
fastcgi_intercept_errors on;
fastcgi_ignore_client_abort off;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
}
location ~ /(data|conf|bin|inc)/ {
deny all;
}
location ~ /\.ht {
deny all;
}
}