playSMS 1.4 on CentOS 7.2 with MariaDB 5.5.50

Yet another playSMS 1.4 installation article, this time its on CentOS 7.2 with MariaDB 5.5.50 instead of MySQL.

Prepare VPS

I’m using DigitalOcean VPS service and install CentOS 7.2 with enough RAM and disk, I choose 512MB RAM and 20GB SSD disk.

You can always use your own VPS or any other method to install CentOS.

Update CentOS

SSH to VPS and update CentOS:

yum update

Updating CentOS may take sometime to finish, and if you know what you’re doing than you can just skip this step.

Continue reading “playSMS 1.4 on CentOS 7.2 with MariaDB 5.5.50”

playSMS 1.4 on Ubuntu 16.04 with PHP 7.0

This is the tutorial of howto install playSMS 1.4 on Ubuntu 16.04 with PHP 7.0. I’m using DigitalOcean to write this tutorial. I choose Nginx as the web server and MySQL as the database server.

There are 9 steps that you need to do correctly and in order. It seems complicated and looks like a long tutorial, but its relatively easy to follow and straightforward. Post your question in playSMS user forum should you encountered any problem following this tutorial.

In this tutorial the password is not secure and I’m logged in as root. If you know what you’re doing then you should know that you can always use any Ubuntu 16.04 server, not just on DigitalOcean. And you can always use your own secure password and use non-root login.

Let’s start.

Step 1

Login to your DigitalOcean account, create a Ubuntu 16.04 x64 droplet. In about 2 minutes you’ll have a working Ubuntu 16.04 server. Use SSH to access your server.

If you haven’t got the account, register and I think you’ll get a chance to create a free droplet.

Continue reading “playSMS 1.4 on Ubuntu 16.04 with PHP 7.0”

Install playSMS using Docker in DigitalOcean

So far I’m satisfied with what I get from docker-playsms project, in such a short time. From the project I have built the Docker image and push it to the registry so that people can use it right away. The project also intended for people who want to build the image them self, customize it, fix it, add or remove stuffs, re-package it and then push it under their own name, for their own purposes.

I might be too early to get satisfied, but I do, so be it :)

I realize that so much things can be improved, so much stuffs can be added and enhanced. But I leave that to us all, can’t do it my self for sure, for now.


This article is the tutorial on how to install playSMS, a Free and Open Source SMS portal or SMS gateway, using Docker in DigitalOcean. We will be using the Docker application image available on DigitalOcean and playSMS Docker image available in Docker hub.

The tutorial can be followed in about 30 minutes. Once you learnt then you can do this again faster, I’d say less than 15 minutes.

Let’ start.

Continue reading “Install playSMS using Docker in DigitalOcean”

Introducing Docker for playSMS

This week I spent my time to understand more about Docker. It looks like something useful that I may use in the future, or now.

Hooking playSMS project with Docker seems reasonable, Docker will make playSMS installation easier, much faster and consistent. So I did. I setup a new Free and Open Source Software project to learn more about Docker and how it can be used to install playSMS.

Here is the playSMS Docker project:

Continue reading “Introducing Docker for playSMS”

Persistent paths for dynamic device file

This post is related to playSMS and Kannel, how to configure Kannel when you know that the device file names aren’t persistent.


When USB GSM modem plugged to a server Linux kernel assigned dynamic device file /dev/ttyUSB*, such as /dev/ttyUSB0 or /dev/ttyUSB1. For example, USB GSM modem with 2 ports will then be assigned to /dev/ttyUSB0 for port 1 and /dev/ttyUSB1 for port 2.

Problem starts when we unplug the GSM modem and re-plug back afterwards. Linux kernel will then assign different device file to it, was /dev/ttyUSB0 now /dev/ttyUSB2 and was /dev/ttyUSB1 now /dev/ttyUSB3.

Continue reading “Persistent paths for dynamic device file”

How I Install playSMS

With the very long period between official releases and the habit of playSMS developer (me!) to postpone the official release until it felt its time to, this is what I would do in my box to install playSMS:

mkdir -p /opt/git
cd /opt/git
git clone playsms
cd playsms
ls -l

Above commands will get you the master version of playSMS from Github and saved them in your git local repo that is /opt/git/playsms.

Whenever you have plan to update your playSMS installation and want to get the latest updates you can simply do this:

cd /opt/git/playsms
git pull

If that was my first time and I planned to install playSMS, I would follow manual in provided by playSMS from /opt/git/playSMS/ to install playSMS.

In many installation I’ve done so far, I went for the easiest way to keep sync with the latest. I symlink the git local repo to playSMS installation directory.

For example if my playSMS installation directory would be /var/www/html/playsms then I would do this symlink instead of copying files, like this:

ln -s /opt/git/playsms/web /var/www/html/playsms

So, basically this is how I install playSMS:

Mostly, I’ll use master version. I’ll get playSMS source codes from Github git repository instead of download it from sourceforge or tags.

I’ll install based on manual written in and for web folder I will symlink my git local repo to playSMS installation directory.

That is all.


playSMS Webservices Class

Introducing, playSMS PHP class for accessing playSMS webservices. This class is based on the Webservices API document shared on playSMS Github repository.

Get it from here:

If you use composer, which is recommended, the package listed as playsms/webservices, here:

Usage examples can be found in tests folder.

And last, please visit playSMS User Group forum to discuss this, here is the address: