Blog Sample Blog Description 2020-03-21T17:18:40+00:00 Karibu https://freedif.org/ How to install Flood + Rtorrent on Debian 10 https://freedif.org/how-to-install-flood-rtorrent-on-debian-10 2020-03-21T17:18:40+00:00 2020-03-21T17:18:40+00:00

Rtorrent is without any doubt the most powerful torrent client a server can have. Yet many webUI exists (Rutorrent being the most popular) but I personally prefer, by far, Flood. It uses Node.js for backend and React for frontend.

Some of the reasons I like Flood:

  • Lightweight, intuitive and modern interface
  • Can add torrents through URLs but also follow RSS feeds with download rules settings directly in the web interface
  • You can download your finished torrents directly in the web interface, instead of setting up a FTP or HTTP accessible folder. Neat. and well, it's based on rTorrent ;)

Let's see how to install rtorrent + flood on your Debian 10 (Buster). I am assuming you have apache2 installed already

Installation

We will install rtorrent first, the flood.

1) Install rTorrent

Simply run:

apt install rtorrent screen


2) Confgure rTorrent

Let's first create a dedicated user, to avoid running rTorrent with root privileges.

adduser --disabled-password rtorrent

You can skip all the questions by just press ENTER

Now, create the configuration file to define few settings and the SCGI to let Flood connect to rTorrent.

nano /home/rtorrent/.rtorrent.rc

and copy the following:

# Where rTorrent saves the downloaded files
directory.default.set = /srv/torrent/downloads

# Where rTorrent saves the session
session.path.set = /srv/torrent/.session

# Which ports rTorrent can use (Make sure to open them in your router)
network.port_range.set = 50000-50000
network.port_random.set = no

# Check the hash after the end of the download
pieces.hash.on_completion.set = yes

# Enable DHT (for torrents without trackers)
dht.mode.set = auto
dht.port.set = 6881
protocol.pex.set = yes

# Authorize UDP trackers
trackers.use_udp.set = yes

# Enable encryption when possible
protocol.encryption.set = allow_incoming,try_outgoing,enable_retry

# SCGI port, used to communicate with Flood
network.scgi.open_port = 127.0.0.1:5000

This will work out of the box, but feel free to change further the settings.

Create the mentioned folders (download and session):

mkdir /srv/torrent
mkdir /srv/torrent/downloads
mkdir /srv/torrent/.session

and set the rights permissions:

chmod 775 -R /srv/torrent 
chown rtorrent:rtorrent -R /srv/torrent 
chown rtorrent:rtorrent /home/rtorrent/.rtorrent.rc


3) Add a SystemD startup script

To have rtorrent running at startup (and ease its control), we will create a SystemD startup script.

nano /etc/systemd/system/rtorrent.service

and add:

[Unit]
Description=rTorrent
After=network.target

[Service]
User=rtorrent
Type=forking
KillMode=none
ExecStart=/usr/bin/screen -d -m -fa -S rtorrent /usr/bin/rtorrent
ExecStop=/usr/bin/killall -w -s 2 /usr/bin/rtorrent
WorkingDirectory=/home/rtorrent

[Install]
WantedBy=default.target

Enable it:

systemctl enable rtorrent.service

and start it up!

systemctl start rtorrent

If no error, you can now install Flood


4) Install Flood

First thing is to install NodeJS, I'm using the version 12 that works well. For this, simply run:

apt install curl build-essential git
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt install -y nodejs

Now you can clone their git repo to get the latest version (Around 23mb, so it should be fast)

cd /srv/torrent
git clone https://github.com/jfurrow/flood.git

Let's use the default configuration:

cd flood
cp config.template.js config.js

and install it with npm

npm install

This is were issues could happen. If no error messages (Warnings are okay) then proceed with:

npm install -g node-gyp...
]]>
How to install Cloud Torrent on Debian 9 https://freedif.org/how-to-install-cloud-torrent-on-debian-9 2018-03-20T23:52:37+00:00 2018-03-20T23:52:37+00:00

When you want to download some torrents on a different machine and get a direct link to download it back through HTTP, you don't have much choices. But Cloud Torrent is one of them.

I recently refreshed my article on Flood, a modern Web-Ui for Rtorrent, that enable you to get directly via HTTP, the torrent you just downloaded on the machine. As it is based on rtorrent, it also has plenty of others features. But if you are looking for a simple web torrent downloader. (Add a torrent, get it back), Cloud Torrent is probably the best for this.

Written in Go (golang), Cloud Torrent is a self hosted remote torrent client. You simply can add torrents (URL or magnet) that will be downloaded on the local disk of the server, which is then retrievable or streamable via HTTP.

Here are the main features:

  • Single binary (Meaning a very simple installation)
  • Cross platform
  • Embedded torrent search
  • Real-time updates
  • Mobile-friendly

The dev is working on few others features, especially on the RSS one, that will enable us to download automatically new release of your favorite shows.

Installation

You don't need much, beside a Apache server and curl.

1) Install Curl

Simply run (In root or with sudo):

apt install curl


2) Download the latest version of Cloud Torrent and install it

curl https://i.jpillora.com/cloud-torrent! | bash


3) Create a systemd service to launch it at boot time

First we will create a folder dedicated for the configuration and for the downloads folder.

mkdir /home/user/cloud-torrent

Replace user by your own user (This step is actually optional, if you already have a dedicated folder for your torrent).

Now create the systemD service file:

nano /etc/systemd/system/cloud-torrent.service

And add:

[Unit]
Description=cloud-torrent

[Service]
WorkingDirectory=/home/user/cloud-torrent/
ExecStart=/usr/local/bin/cloud-torrent --port 8080 --config-path /home/user/cloud-torrent/cloud-torrent.json --title "Cloud Torrent" --log --auth "user:password"
Restart=always
RestartSec=3

[Install]
WantedBy=multi-user.target

You will need to replace the user:password variable by the one you want as it will be used to access to your Cloud Torrent instance.

Now enable it and start it

systemctl enable cloud-torrent
systemctl start cloud-torrent

You should now have access to your Cloud Torrent instance through your IP:8080.

4) Create a dedicated virtualhost

It's not convenient to use the port number to access Cloud Torrent. You might want to access it through a dedicated subdomain may be. Here is how to do it.

First you will need the mods proxy-html and proxy-http enabled. In root, or with sudo, simpy run:

apt install libapache2-mod-proxy-html
a2enmod proxy_http

Now create a dedicated virtualhost

nano /etc/apache2/sites-available/cloud-torrent.conf

and add:

<VirtualHost *:80>

        ServerAdmin webmaster@localhost
        ServerName dl.domain.tld

        ProxyRequests Off
        <proxy>
        Require all granted
        </proxy>
        ProxyPass / http://localhost:8080/
        ProxyPassReverse / http://localhost:8080/

    ErrorLog ${APACHE_LOG_DIR}/cloud-torrent_error.log
    CustomLog ${APACHE_LOG_DIR}/cloud-torrent_access.log combined

</VirtualHost>

Enable the configuration and restart Apache Still in root, run:

a2ensite cloud-torrent
systemctl reload apache2

And that's it, you should now have access to your Clood Torrent instance by connecting directly to your subdomain!

]]>
How to install selfhosted Speedtest https://freedif.org/how-to-install-selfhosted-speedtest 2018-03-17T03:02:20+00:00 2018-03-17T03:02:20+00:00

When you want to check how fast/good is your internet connection, you usually do a speedtest. In some cases, you may even want to host such speedtest in your infrastructure (Local network, network of customers,...) or just to provide such service to your community.

Speedtest is a HTML5 self-hosted speedtest that can be installed easily on your server. It offers basic features such as:

  • Download
  • Upload
  • Ping
  • Jitter
  • IP Address
  • Telemetry (optional)

You can give it a try using the official demo.

(Test done in a Virtualmachine)

Now, let's see how to install speedtest on your own server (Debian in my case)

Installation

You will need first to have a LAMP server. If it is not the case, you can check my previous tutorial on how to install a LAMP server on Debian 9.

1) Install basic requirements

In root (or with sudo), simply run:

apt install libapache2-mod-php php-mcrypt


2) Tweak Apache and PHP configurations

You will need to set the "KeepAlive On" function in Apache and to increase the size limit/memory limit of PHP. Still in root, or with sudo, run:

nano /etc/apache2/apache2.conf

and look for the value KeepAlive. Ensure it is "on" and uncommented.

Now modify php configuration:

nano /etc/php/7.0/apache2/php.ini

And modify the values:

max_execution_time = 90 max_input_time = 90 memory_limit = 128M post_max_size = 50M upload_max_filesize = 50M

And restart Apache

service apache2 restart


3) Clone their repo

You will need git first, then you can clone

apt install git
cd /var/www
git clone https://github.com/adolfintel/speedtest
cd speedtest

Now select one of the speedtest design example to be the main page. You can have more detail here. The best starting point is the example-pretty.html. Simply copy it as index.html

cp example-gauges.html index.html


4) Create a dedicated virtualhost

To server this page as a domain name or subdomain name, you can create a dedicated virtualhost. Here is how I did

sudo nano /etc/apache2/sites-available/speedtest.conf

And add

<VirtualHost *:80>

        ServerAdmin webmaster@localhost
        ServerName speed.domain.tld
        DocumentRoot /var/www/speedtest

        <Directory /var/www/speedtest>
           Options FollowSymLinks
           AllowOverride All
           Require all granted
        </Directory>

    ErrorLog ${APACHE_LOG_DIR}/speedtest_error.log
    CustomLog ${APACHE_LOG_DIR}/speedtest_access.log combined

</VirtualHost>

Enable the configuration

sudo a2ensite speedtest

and reload your configuration

systemctl reload apache2

Now you should have access to your own speedtest!

That's it!

You can do further tweak on the configuration, especially on the TCP part, as explained in their github repo.

]]>
Flood, modern web UI for rTorrent https://freedif.org/flood-modern-web-ui-for-rtorrent 2018-03-15T08:23:00+00:00 2018-03-15T08:23:00+00:00

RTorrent is probably the most powerful torrent client, but bundled with Flood, a modern Web-UI, it is the perfect match for your seedbox or server.

EDIT: OUTDATED POST, please visit this one instead to install Flood + Rtorrent on Debian 10.

I probably don’t have to present rTorrent. I have written several articles around it, the previous one being on Quickbox, a script that will install and configure your seedbox (Using rTorrent) in a single command line.

I used to use Deluge, for my torrents, but since I discovered Flood, a modern, powerful and easy to install web interface for rTorrent, I’m changing my habits. 😉

Flood is using Node.js as backend and React as frontend, and here is the main features I appreciate:

  • Lightweight, intuitive and modern interface
  • Can add torrents through URL, Torrent file and RSS. (Usually, you need quite some settings for RSS. Here you can add your download rules directly in the web interface!)
  • Ability to download your torrent directly through your web interface. This is probably the best feature, since you can download the file from your seedbox, and directly get it back using “direct download” (HTTP) from Flood. (No need to have a FTP or some HTTP folder with user/password, etc..

And, well…it’s based on rTorrent 😉

Of course, you will find the usual features like labels, bandwidth limits, etc…

Let’s see how to install rTorrent and Flood for Debian 9. (Ubuntu should be pretty similar)

Installation

1) Install rTorrent

The easiest way is to use the rTorrent version in the repo. In root (or with sudo), run:

apt install rtorrent screen

 

2) Confgure rTorrent

First, create a dedicated user, to avoid running rTorrent with root:

 adduser --disabled-password rtorrent

You will need to answer few questions (or just skip them with ENTER)

Then, we will create a configuration file to define few settings and the SCGI to let Flood connect to rTorrent.

nano /home/rtorrent/.rtorrent.rc

and copy the following:

    # Where rTorrent saves the downloaded files
    directory = /srv/torrent/downloads

    # Where rTorrent saves the session
    session = /srv/torrent/.session

    # Which ports rTorrent can use (Make sure to open them in your router)
    port_range = 50000-50000
    port_random = no

    # Check the hash after the end of the download
    check_hash = yes

    # Enable DHT (for torrents without trackers)
    dht = auto
    dht_port = 6881
    peer_exchange = yes

    # Authorize UDP trackers
    use_udp_trackers = yes

    # Enable encryption when possible
    encryption = allow_incoming,try_outgoing,enable_retry

    # SCGI port, used to communicate with Flood
    scgi_port = 127.0.0.1:5000

It will work out of the box, but feel free to tweak it, especially on the download paths.

Create the mentioned folders (download and session)

mkdir /srv/torrent
mkdir /srv/torrent/downloads
mkdir /srv/torrent/.session

and set the rights permissions:

chmod 775 -R /srv/torrent 
chown rtorrent:rtorrent -R /srv/torrent 
chown rtorrent:rtorrent /home/rtorrent/.rtorrent.rc

Now, we create a SystemD startup script to ensure rtorrent is running at the startup (and it ease the control)

nano /etc/systemd/system/rtorrent.service

and add:

    [Unit]
    Description=rTorrent
    After=network.target

    [Service]
    User=rtorrent
    Type=forking...
]]>
How to install Chevereto image hosting for Debian 9 https://freedif.org/how-to-install-chevereto-image-hosting-for-debian-9 2018-03-12T01:44:39+00:00 2018-03-12T01:44:39+00:00

Before Instagram, image hosting scripts were quite popular to create our own image hosting website. The most popular opensource apps were Chevereto. I'm happy to see that the dev is still maintaining it!

Written in PHP, Chevereto is an opensource image hosting script that allows you to get a beautiful and features-rich website to install on your own server. They have 2 versions, a paid one and a free one. The free one is having slightly less features (Updated every 6 months instead of monthly, no social integration, no external storage support,...)

As you can see on their features page, the list is long. You will probably appreciate:

  • Mobile responsive
  • Multi homepage covers
  • Multi image upload
  • Categories and context
  • Bulk photo management
  • Multi-language Support (29 languages)
  • Privacy settings and many more.

They also have 19 ad spaces to monetize your website if you wish.

The best is to give it a try with their demo.

Now let's see how to install Chevereto on Debian 9

Installation

The installation is pretty simple and require few dependencies. First, ensure you have a LAMP server (Apache2, PHP, MySQL). If you don't have, here is how to install LAMP server on Debian 9.

1) Enable mod rewrite

Very little requirements, it usually all come with LAMP. But you will need to enable the mod rewrite. To do so, simply run:

sudo a2enmod rewrite
systemctl restart apache2


2) Download the Chevereto Installer

Inside a public folder like /var/www

cd /var/www
mkdir chevereto
cd chevereto
wget https://chevereto.com/download/file/installer -O index.php
sudo chown -R www-data:www-data /var/www/chevereto


3) Create a dedicated Virtualhost

You probably want to use a subdomain (pic.mydomain.tld) or a dedicated domain name. The best is to go with a dedicated virtualhost to handle apache2 configurations.

sudo nano /etc/apache2/sites-available/chevereto.conf

And add

<VirtualHost *:80>

        ServerAdmin webmaster@localhost
        ServerName pic.domain.tld
        DocumentRoot /var/www/chevereto

        <Directory /var/www/chevereto>
           Options FollowSymLinks
           AllowOverride All
           Require all granted
        </Directory>

    ErrorLog ${APACHE_LOG_DIR}/chevereto_error.log
    CustomLog ${APACHE_LOG_DIR}/chevereto_access.log combined

</VirtualHost>

Enable the configuration

sudo a2ensite chevereto

and reload your configuration

systemctl reload apache2


4) Access the web installer panel

Now simply go to the configured domain name to access the web installer. It will check your system conf and ask you if you want to go for the free or paid version. Select Free version

It will then download the latest version. Next step will be to configure your database (I use PHPMyAdmin to create a dedicated user/pass/database). And finally to create your admin account.

Once done, you will be able to go directly to your admin panel.

That's it.

Next step could be to add a SSL certificate using Let's Encrypt.

]]>
Let's Encrypt SSL Certificates with Certbot for Debian 9 https://freedif.org/ssl-certificate-with-lets-encrypt-for-debian-9 2018-03-11T14:03:12+00:00 2018-03-11T14:03:12+00:00

Let's Encrypt has been the engine to push SSL adoption, with simple, free and well accepted SSL certificates.

On top of improved security/privacy, It is no secret that Google itself promote HTTPS website over HTTP, which now became an important factor for Search Engine Optimization (SEO).

The installation on Debian is still pretty simple, but changed in the last year (my previous article is thus depreciated). Here is how to setup SSL certificates for your website, using Let's Encrypt.

https://freedif.org/uploads/2016/03/Firefox-300x124.jpg

You can find the official doc here and if you are using Debian 9 like me, here is how to do.

1) Add backports repo to your sources list

Modify your sources.list:

sudo nano /etc/apt/sources.list

and add

deb http://ftp.debian.org/debian jessie-backports main Save and update your packages list'

sudo apt update

2) Install Certbot

Now install certbot from the backports:

sudo apt install python-certbot-apache -t stretch-backports

3) Generate the SSL certificates and configurations

Run:

sudo certbot --installer apache

You will have a list of options to select, such as the authenticator (I used the beta version of apache authenticator, works well, option 1) Then you need to select the list of virtualhost to add SSL certificates and select if you want to force HTTPS or not. (Yes in my case)

Once done, reload apache

systemctl reload apache2

4) Automate Renewal

Before that your certificate expire, you will need to renew it. Let's automate this ;)

sudo crontab -e

And add

@daily certbot renew --quiet

That's it!

]]>
how to install Matomo (Piwik) on Debian https://freedif.org/how-to-install-matomo-piwik-on-debian 2018-03-10T09:48:00+00:00 2018-03-10T09:48:00+00:00

With more than 3 millions downloads, and large companies like T-Mobile, Wikimedia, Forbes,.. using it, Matomo (previously Piwik) is the most popular opensource web analytics app.

Great alternative to Google Analytics, Piwik as been here for 10 years. The team behind the project, decided recently (Jan 2018) to change their name as you can read in their announcement to become Matomo (It means honesty in Japanese by the way).

Here are some of the key features of Matomo:

  • Real time update
  • Customizable Dashboard
  • Advanced analytics for Ecommerce
  • Goal conversion tracking
  • Site Search Analytics
  • Geolocation
  • Site speed & pages speed reports
  • Track traffic from search engines
  • Custom Alerts
  • And a IOS, Android application!

You can have the full list of features in their dedicated page.

Interested to give it shot? Try their demo.

Now let's see how to install Matomo (formerly Piwik) on your Linux server (Debian in my case.)

Installation Steps

First you will need to have a working LAMP server. If it is not the case, you can check my recent article on how to install LAMP. Luckily, they maintained a debian/ubuntu repo, which makes it very easy to install.

1) Add their repo to your sources list

Simply run:

wget https://debian.piwik.org/repository.gpg -qO piwik-repository.gpg
cat piwik-repository.gpg | sudo apt-key add -

Then add their repo to your sources.list file

nano /etc/apt/sources.list

and add

deb https://debian.piwik.org/ piwik main

Refresh your package list

sudo apt-get update


2) Install Piwik from the repo and the required PHP dependencies

You will need to install some dependencies first.

sudo apt update
sudo apt install piwik php-curl php-fpm php-gd php-zip php-mbstring php-xml


3) Correct permissions and remove the readme

rm "/usr/share/doc/piwik/README.md.gz"
chmod +w /usr/share/piwik/piwik.js
chown www-data:www-data /usr/share/piwik/piwik.js


4) Create a dedicated MySQL database

Now you will need to create a dedicated MySQL database and a dedicated user. The easiest way to do it will be through phpmyadmin. Once done, you can go to the next step.

5) Update the virtualhost configuration

Before accessing Piwik and finalizing the installation, it will be better to create a virtualhost with a subdomain to access directly your Piwik instance. Piwik comes with a configuation ready, accessible through /piwik, but I prefer configuring entirely mine.

Delete previous configuration

sudo rm /etc/apache2/conf-available/piwik.conf 
sudo rm /etc/apache2/conf-enabled/piwik.conf 

And create a new virtual host

sudo nano /etc/apache2/sites-available/piwik.conf

And add

<VirtualHost *:80>

        ServerAdmin webmaster@localhost
        ServerName piwik.domain.tld
        DocumentRoot /usr/share/piwik

        <Directory /usr/share/piwik>
           DirectoryIndex index.php
           Options FollowSymLinks
           AllowOverride All
           Require all granted
        </Directory>

        <Files "console">
           Options None
           Require all denied
        </Files>

        <Directory /usr/share/piwik/misc/user>
           Options None
           Require all granted
        </Directory>

        <Directory /usr/share/piwik/misc>
           Options None
           Require all denied
        </Directory>

        <Directory /usr/share/piwik/vendor>
           Options None
           Require all denied
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/matomo_error.log
        CustomLog ${APACHE_LOG_DIR}/matomo_access.log combined

</VirtualHost>

Enable the configuration

sudo a2ensite piwik

and reload your configuration

systemctl reload apache2


6) Run the web based installation panel

Now, simply go to the configured URL to launch the installation panel. It will check that you have all required dependencies, if it is not the case, you will need to fix...

]]>
How to install Grav on Debian 9 https://freedif.org/how-to-install-grav-on-debian-9 2018-03-06T13:20:03+00:00 2018-03-06T13:20:03+00:00

Hello guys, As you can see, I have moved from Wordpress to Grav!!

For those who don't know what is Grav, it is an opensource flat-file CMS (Content Management System), meaning without the need of a database. It has been developped from the start to be as performing as possible.

It is also very flexible and easy to use/maintained.

Written in PHP, it leverages Markdown files to store the content, Grav does not require a database. Everything is stored as simple files. It makes it quite fast to run (Especially on SSD) and easy to back up !! You can see all the features here.

Actually my migration experience was a bit more tricky then expected, but I'm quite happy to be on Grav now. On the main issues I faced, I can mention:

  • Only 1 plugin in Wordpress to migrate to Grav called WP2Grav but it cannot keep the comments and the markdown created files required some polishing (I had to use some commands like sed -i... to replace some content)
  • As I imported around 200 articles, the related-pages pluging of Grav were significantly slowing down the blog, creating even loading errors (because it needed more than 30s to display the page...)
  • I had to tweak some files of my template to do what I wanted. Actually it was not difficult, but since there is little documentation yet, it was not as simple as I thoughts.

But overall I'm satisfied.

Now let's see how to install Grav on your Linux server (Debian in my case. Ubuntu should be similar)

Installation Steps

First you will need to have a working LAMP server. If it is not the case, you can check my recent article on how to install LAMP.

1) Refresh your source list and install the required php dependencies.

sudo apt update
sudo apt install php-curl php-fpm php-gd php-zip php-mbstring php-xml

 

2) Download the latest version of Grav

Go to the download section of the grav website: https://getgrav.org/downloads and check which version is the latest. I suggest you to download the one with the admin panel version (The 1.3.10 as of today's article). Then run:

cd /var/www/
wget https://getgrav.org/download/core/grav-admin/1.3.10 -O grav.zip
unzip grav.zip
rm grav.zip

 

3) Assign the correct permissions

sudo chown -R www-data:www-data /var/www/grav-admin

 

4) Enable required Apache modules

You will need to enable the modules 'rewrite', 'proxy' and 'proxy_fcgi'. You will need also to enable the configuration of pfp-fpm. To do so, simply run:

sudo a2enmod rewrite proxy proxy_fcgi
sudo a2enconf php-fpm

and restart apache.

sudo systemctl restart apache2

 

5) Create a dedicated virtualhost

I suggest you to run a dedicated virtualhost (for a subdomain, or to better tailor Grav CMS later on). To do this, run:

sudo nano /etc/apache2/sites-available/grav.conf

and copy:

<VirtualHost *:80>

        ServerAdmin webmaster@localhost
        ServerName myurl.com
        DocumentRoot /var/www/grav-admin

        <Directory /var/www/grav-admin>
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/grav_error.log
        CustomLog ${APACHE_LOG_DIR}/grav_access.log combined

</VirtualHost>

I let you modify it to fit your needs.

Now enable it and...

]]>
Monica, organize your social life https://freedif.org/monica-organize-your-social-life 2018-02-11T00:00:00+00:00 2018-02-11T00:00:00+00:00 Monica is a “PRM” Personal Relationship Management. It helps you organize your social life and keep records of what is important. (Birthdate, gifts, kids, ….)

I always struggle to reminder birthdate, or important date, even to my close ones. So I don’t even dare to remember the wedding anniversary of my sister.

Monica is an opensource, selfhosted (they have a paid instance if you don’t want the trouble to host it yourself) personal CRM. You can keep tracks in a centralized and quite clean, interface, of all your interactions (Phone calls, what you discuss about,..) and important date (Birthdate, wedding anniversary,…) or things (Gifts received or given for Christmas, etc…).

Monica is also multi-users and let you add notes to contact, records pets information,.. on top of the regular info (Phone number, address, in relation with,….). It also includes a journal to record your day.

A great tool to help you manage your social interactions 😉

 

The paid service is getting quite some traction (10,000+ users, 100,000 contacts, 100,000+ reminders set,…), so I’m glad to see the business model is still with opensource philosophy.

One of the next feature to come, as per their roadmap, is an Android app version!! This will clearly help to manage all our interactions!

 

Interested to install it, here is how to install Monica on your server using Debian. (Ubuntu should be similar).

 

Installation

You will need first to have a LAMP system (With Apache, PHP and MariaDB).

However Monica requires PHP7.1 at least. For Debian Stretch, those are not available. But you can get them in the testing.

 

1) Add PPA ondrej/php to get latest PHP version

This is optional if you can get PHP7.1 in your repo. To check, simply run:

sudo apt-cache policy php

and see if you have access to 7.1 or above. If not, run:

sudo apt install apt-transport-https lsb-release ca-certificates
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
sudo sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
sudo apt update

 

2) Install required packages
sudo apt install apache2 mariadb-server php php-mysql php-xml php-intl php-mbstring php-intl git curl

 

3) Clone the Git repository
sudo git clone https://github.com/monicahq/monica.git /var/www/monica

This will download around 40mb. Stay tuned.

 

4) Change permissions

To avoid permissions error, simply run:

sudo chown -R www-data:www-data /var/www/monica
sudo chmod -R 777 /var/www/monica

 

5) Install NodeJS

They recommend the version 6. To install it, simply run:

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs

 

6) Install composer

It will help you to install automatically the dependencies.

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

 

7) Create a database

I usually use PHPMyAdmin to do it directly.

Here are the key information:

Database name: monicadb

Username: monica

Password: StrongPassword

 

8) Configure Monica

Start first with composer:

cd /var/www/monica
composer install

Then use the example configuration file to create your own:

cp .env.example .env
nano .env

and configure the database section.

Then setup the APP_Key and...

]]>
Attendize, sell your ticket and manage your event! https://freedif.org/attendize-sell-your-ticket-and-manage-your-event 2018-02-10T00:00:00+00:00 2018-02-10T00:00:00+00:00 Attendize is an opensource application for ticket selling and event management. Let’s see how to install for Debian/Ubuntu.

On top of being Mobile responsive, Attendize gives you great flexibility to manage your events.

With customizable event pages, simple checkout process (linked with several payment gateway like Stripe and Paypal) and multi-users/managers, Attendize can greatly help you arrange your events.

You will be able to export the data, manage/review/contact the attendees easily, got some real time statistics, and even use Embeddable widgets to promote your event on others websites (WordPress or else).

Of course, Attendize will generate automatically tickets (with QR code) for a smooth experience.

 

Interested to give a try, you can test their demo, or directly follow this tutorial.

 

Installation

Written in PHP on top of the Laravel framework, the installation is straightforward.

I assume you already have a LAMP server (With Apache and MariaDB). If it is not the case, you must start here.

1) Install git and clone their repo
sudo apt-get install git
cd /var/www
git clone https://github.com/attendize/attendize
cd attendize

 

2) Install the necessary php modules
sudo apt-get install php-fpm php-cli php-gd php-mysql php-mcrypt php-pear php-curl

 

3) Install composer

It will help you to install automatically the dependencies.

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

 

4) Configure Attendize

Copy the configuration example

cp .env.example .env
nano .env

And configure the following environement

DB_TYPE=mysql
DB_HOST=localhost
DB_DATABASE=attendize
DB_USERNAME=attendize
DB_PASSWORD=PASSWORD

Based on your database info. I suggest you to create a dedicated database and user for attendize using phpmyadmin, if not done yet.

 

5) Install the app dependencies

Now simply run composer

composer install

 

6) Install Attendize
php artisan attendize:install

It will populate the database, ask you to create admin account and few more questions.

 

7) Set correct permission

You need to let www-data have access to the folder in order to run properly. Simply run:

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

 

8) Virtualhost

Now, let’s create a dedicated Virtualhost, to access to your admin interface through att.mydomain.tld

First, enable mod_rewrite

sudo a2enmod rewrite

Then create a vhost:

sudo nano /etc/apache2/sites-available/attendize.conf

Here is mine:

<VirtualHost *:80>
    ServerAdmin karibu@freedif.org
    ServerName att.freedif.org

    DocumentRoot /var/www/attendize
    <Directory />
        Options Indexes FollowSymLinks
        Order allow,deny
        Allow from all
        AllowOverride None
    </Directory>

    <Directory /var/www/attendize>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>
</VirtualHost>

Once done, save and and enable it:

sudo a2ensite attendize

Then simply reload apache:

sudo service apache2 reload

You should now have access to Attendize directly by pointing to your URL.

 

Next steps for you could be to configure the SMTP (mail) settings, google analytics, Twitter Widget ID, etc… starting with the .env file.

 

]]>