How to Install and configure a Direct Connect Hub (PtokaX) on Ubuntu 16.04.


I wrote this documentation as the process serves as a good template for downloading, compiling from source, installing, configuring, and finally creating a systemd style script that will start a service at boot.


Download source from their website:


Install the dependencies:

sudo apt install make g++ zlib1g-dev libtinyxml-dev liblua5.3-dev -y

Expand the archive and change into the directory:

tar -xf;cd PtokaX

Compile the program (I’m compiling without database support):

make clean
sudo make install

Create a new system user to run the process:

sudo adduser --system --group --no-create-home --disabled-login ptokax

Create the directory in etc for the configuration files:

sudo mkdir /etc/ptokax

Run the initial config and configure according to your tastes, give the ptokax user access.

sudo PtokaX -m -c /etc/ptokax
sudo chown ptokax:ptokax -R /etc/ptokax/*

Create a new file in the directory: /lib/systemd/system/ called ptokax.service with the following in it:

Description=PtokaX Direct Connect Hub

ExecStart=/usr/local/bin/PtokaX -d -c /etc/ptokax


Reload, enable and start the process.

sudo systemctl daemon-reload
sudo systemctl enable ptokax.service
sudo systemctl start ptokax.service


Test the connection:

Final Notes:

If you want to make configuration changes, stop the service first, then either run the Ptokax program as sudo with the -m -c /etc/ptokax flags to configure it, or manually edit it’s configuration files.

Further Reading:


2 thoughts on “How to Install and configure a Direct Connect Hub (PtokaX) on Ubuntu 16.04.

  1. Great post! Thank you so much for this. You saved me the time I would have spent going through the official manual 🙂
    A minor change: you probably want to modify the post to let readers know that the file path to ‘/usr/local/bin/PtokaX’ in ‘/lib/systemd/system/ptokax.service’ should be the location of the extracted tar file. It took a while for me to figure this out, seeing as I had extracted the file to my home directory.

    • No worries, glad to have helped! It’s been a while since I looked that this: My feeling is that the command ‘sudo make install’ would have copied the binaries and library files (if any) to the right places ,
      in this case /usr/local/bin. Or at least that’s what I would have expected it to do! I honestly can’t remember now if I had to copy the compiled program or not :p Thanks for spotting the problem in my instructions! 🙂

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.