How to install icecast-kh on Ubuntu Server


icecast2 is a great piece of software, but these days it seems somewhat largely unmaintained.

Well, great news – icecast-kh is here! It’s an updated fork of icecast2 with great new features.

In this guide you will learn how to install your own copy an Ubuntu server!



  1. An Ubuntu Server (this guide written using 20.04) and access to the root account
  2. About 5 minutes of your time


Update our servers repository.

apt-get update
apt-get dist-upgrade -y

Install some icecast-kh requirements.

apt-get install build-essential libxslt-dev libvorbis-dev libxml2 curl -y

Get the latest version of icecast-kh. At the time of writing this is 2.4.0-kh15. Download page here.

tar -xvf icecast-*.tar.gz
cd icecast-kh-icecast-2.4.0-kh15

Compile and install. If you run into any issues here, make sure you have all the dependencies installed (listed here).

make install

Move the default config to the /etc directory. Opitionally we may use the more advanced icecast.xml.dist file but for simplicity we are using the minimal.

mkdir -p /etc/icecast-kh
cp /usr/local/share/icecast/doc/icecast_minimal.xml.dist /etc/icecast-kh/icecast.xml

We need to make some changes to our config file, so open it with your favourite text editor – I’m using nano.

nano /etc/icecast-kh/icecast.xml

The config file will look something like this. Update the highlighted lines with your own details.

        <alias source="/" dest="/index.html"/>
      	<loglevel>3</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error -->

Add a user for icecast-kh. Leave all the fields blank

adduser icecast --disabled-login

Install the init.d script. View the code here.

wget -O /etc/init.d/icecast-kh
chmod 777 /etc/init.d/icecast-kh
update-rc.d icecast-kh defaults

And finally start the server.

systemctl start icecast-kh
systemctl enable icecast-kh

Final Notes

And that’s it! Your new icecast-kh server is up and running on port 8000.


How to install MongoDB on Ubuntu 16.04

Hey all

I haven’t found any rock solid guides for doing so, so I thought I’d make my own. Follow these steps and I will explain as best as I can.


To start off let’s install some dependencies to make sure everything will work (sort of mundane but just do it for the memes).

sudo apt-get install sudo nano -y


Now, we need to add MongoDB to our apt.

sudo apt-key adv --keyserver hkp:// --recv 0C49F3730359A14518585931BC711F9BA15703C6

echo "deb [ arch=amd64,arm64 ] xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list


Next, we update and install it.

sudo apt-get update 
sudo apt-get install mongodb-org -y


To make sure Mongo can work properly we need a systemd service setup.

sudo nano /etc/systemd/system/mongodb.service


And in that file paste the following

Description=High-performance, schema-free document-oriented database

ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf



Okay, now we need to start MongoDB like so.

sudo systemctl start mongod

sudo systemctl enable mongod

and you should see something like this

Created symlink from /etc/systemd/system/
to /lib/systemd/system/mongod.service.


Now we need to add an admin user and set the password, replace admin123 with your own password.


use admin

db.createUser({user:"admin", pwd:"admin123", roles:[{role:"root", db:"admin"}]})


This step is optional, but if you want to enable security and allow database access from remote locations do this.

nano /etc/mongod.conf


And edit the following lines (see bold parts):

port: 27017


   authorization: "enabled"



And that’s it! Now restart Mongo for good measures and you’re done!

sudo systemctl restart mongod

SinusBot Bootscript Installation Guide

This tutorial will explain how to install the SinusBot automatic starting script on Debian and  Ubuntu 15.04 and lower servers.

Lets get straight into it!


First, we need to install the dependencies.

apt-get update && apt-get install curl screen -y


Next, we need to download the script and change its permissions. The script I have used can be found here. Full credit to its author.

curl -o /etc/init.d/sinusbot
chmod 777 /etc/init.d/sinusbot


If you followed my installation tutorial you can skip this step. Otherwise, if you didn’t you can use this command and edit the script to your linking.

nano /etc/init.d/sinusbot


Now that is done we just need to tell the server to use the file with the following command.

update-rc.d sinusbot defaults


UPDATE: The following commands may not display any text when typed on Ubuntu 16.04 or higher. I am aware of this issue and am going to release a short video explaining a workaround soon.

Now just do

service sinusbot

and it will list all the options you have! For example

service sinusbot start


service sinusbot stop


That will be all <3


SinusBot youtube-dl Installation Guide

This is just a short guide on how to install youtube-dl and set it up to work with SinusBot.

You may also want to read my SinusBot Installation Guide or my SinusBot Bootscript Installation Guide.
But anyway enough blah blah lets get into it!


First install curl so we can download youtube-dl

apt-get update && apt-get install curl python -y


Next we need to download youtube-dl and change it’s permissions. You can install it anywhere you want, but if you use the commands below you can run youtube-dl from anywhere on your server and it will work.

curl -L -o /usr/local/bin/youtube-dl
chmod a+rx /usr/local/bin/youtube-dl

Done, you just installed youtube-dl! If you need to upgrade it, just re-run the commands above. And if SinusBot stops playing videos, youtube-dl probably needs upgrading 😛


Now time to tell SinusBot where the file is. So change to the directory that you installed it in, if you followed my installation guide it will be in /home/sinusbot.

cd /home/sinusbot


Next, open the config.ini file in your favorite editor, I use nano.

nano config.ini


And change the line

YoutubeDLPath = ""

to (this is where we installed it to if you installed youtube-dl to a different directory just change it below)

YoutubeDLPath = "/usr/local/bin/youtube-dl"

and then exit and save the file (press Ctrl+x, then enter and then y).


And then restart SinusBot, if you followed my Bootscript guide, just type

service sinusbot restart


If you run into issues with youtube-dl not working at all, you might find that YouTube has blocked your IP. I have noticed this happens on mainly OVH servers or people who re-sell OVH etc. You can solve this issue by running this single command below.

echo '--force-ipv4' > /etc/youtube-dl.conf


And that is it! Good luck with your SinusBotting 😉


SinusBot Installation Guide

Hello there, this is my guide on how to install SinusBot on a Debian based operating system.

You may also want to check out my youtube-dl guide or my bootscript guide (which automatically starts sinusbot for you).

You will need to start by installing some dependencies. So let’s run the commands to install those now.

apt-get update
apt-get install nano x11vnc xvfb xinit libxcursor1 ca-certificates bzip2 curl -y

If you run into some issues on your server, try the following command as it can sometimes help.

apt-get install libglib2.0-0


We are now going to add a user for the bot. It can be anything but for this tutorial, I am going to use the username “sinusbot”.

adduser sinusbot

After you have typed this command it will then prompt you for a password, set it as whatever you’d like, but make sure you remember what it is! It will then prompt for some information, fill it out as you like and the finally create the user.


Next, we are going to extract the bot to a location on the server. I am going to install it in /opt but you can choose where you’d like to install it if you want.

su - sinusbot
curl -o sinusbot.tar.bz2
tar -xjf sinusbot.tar.bz2


Now that is done we need to set the default config SinusBot will use

cp config.ini.dist config.ini


The next step is to install the TeamSpeak3 client for SinusBot. If you want a custom TeamSpeak3 version just change in both places to the version you want!

curl -o
chmod 777


After TeamSpeak is installed we need to tell SinusBot where it is. So we need to edit the config.ini file in the Sinusbot directory like so.

nano config.ini


And then find this line:

TS3Path = "/opt/ts3soundboard/TeamSpeak3-Client-linux_amd64/ts3client_linux_amd64"

and if you have used the directory like I used in this tutorial change it to

TS3Path = "/home/sinusbot/TeamSpeak3-Client-linux_amd64/ts3client_linux_amd64"


Now we have to copy the SinusBot TeamSpeak plugin to the TeamSpeak clients directory. The bot WILL NOT WORK PROPERLY if you don’t do this command.

cp plugin/ /home/sinusbot/TeamSpeak3-Client-linux_amd64/plugins


After that just chmod the sinusbot executable to 755 like so.

chmod 755 sinusbot


If you want to be tidy you can remove the files you used to install it with the following commands.

rm /home/sinusbot/sinusbot.tar.bz2
rm /home/sinusbot/


And you are done! If you want you can just run it in a screen or tmux. Other than that you can check out my other tutorial that explains how to make it part of the init.d scripts in Ubuntu 14.04 or older.


TeamSpeak3 Server Ubuntu/Debian Installation Guide

Hi, all! I like all things TeamSpeak. So I thought I could write an article on how you would install it on your Ubuntu or Debian server. A thing to keep in mind is I will try to keep the download link updated as much as I can but if I forget you will just need to grab the latest server download from the TeamSpeak downloads page.

Anyway, enough chit-chat! Let’s get into it! 😀


Run this command to install the depends.

apt-get install curl bzip2 -y


If your server is 32-bit you will need to run this command:

curl -o teamspeak.tar.bz2

If your server is 64-bit you will need to run this command:

curl -o teamspeak.tar.bz2

It is VERY important that you download the correct file for your operating system. So make sure you get it right 😛


Next, we need to extract the file you downloaded like so.

tar -xjf teamspeak.tar.bz2


Now we need to set up the user that TeamSpeak will run as. I will use the user TeamSpeak in this tutorial.

adduser --disabled-login teamspeak


Now we want to move TeamSpeak to the user’s directory we just created. If you didn’t use TeamSpeak as the username just replace the part in bold with the username you used.

mv teamspeak3-server_linux_* /home/teamspeak/teamspeak3


Next up we need to make sure we change the permissions of the teamspeak3 folder to allow the user we created to access it. Again if you didn’t use the username TeamSpeak just replace the bit in bold.

chown -R teamspeak /home/teamspeak/teamspeak3


Now we need to add the TeamSpeak3 startup script to the init.d files.

ln -s /home/teamspeak/teamspeak3/ /etc/init.d/teamspeak


Now we need to tell the server to update the init.d scripts.

update-rc.d teamspeak defaults


Now you can use commands like.

service teamspeak start
service teamspeak stop
service teamspeak restart


Please note the first time you start the server it will spit out some information like this. PLEASE save it as you will need it!


                  I M P O R T A N T
Server Query Admin Account created
loginname= "serveradmin", password= "qp8UdSH7"

                  I M P O R T A N T
ServerAdmin privilege key created, please use it to gain
serveradmin rights for your virtualserver. please
also check the doc/privilegekey_guide.txt for details.



And now you are done. Every time you restart your server, TeamSpeak will automatically start with it.

Good luck and happy TeamSpeaking! 😀


A lot of stuff broke – Website Corrupted

A complete archive of my website here.


When I saw “LAX03-VZ91 Service Update – Data Loss” in my inbox, I knew I was in trouble.


Dear Sam Howell,

We are sending you this email as we have discovered that two drives that mirror the same data have failed, which means any data left on the RAID 10 storage array became irrecoverable.

While this is an unfortunate situation we would like to avoid, computer hardware failures do happen and we are not responsible for any lost data. Again, we would like to stress the importance of making backups of important data.

We are now setting up a new VPS for you and you will be able to access it through the original IP within the next 24 hours.

We apologise for any incovenience. Please contact us should you have any questions.



I will be restoring my website over the next few days.