Install RuTorrent with Docker on Rapsberry Pi

1. Flash Raspbian Lite

2. Run the following commands (through serial, SSH, or directly)

#install docker
curl -fsSL -o

#don't need sudo to run future docker commands
#make sure to log out and back in after this!
sudo usermod -aG docker pi

#make directories
mkdir -p ~/rutorrent/conf
mkdir -p ~/rutorrent/downloads

#make a container:
docker create --name=rutorrent \
-v ~/rutorrent/conf:/config \
-v ~/rutorrent/downloads:/downloads \
-e PGID=`id -g` -e PUID=`id -u` \
-e TZ=America/Vancouver \
-p 80:80 -p 5000:5000 \
-p 51413:51413 -p 6881:6881/udp \
--restart unless-stopped \

#run the container
docker start rutorrent

Install Syncthing on Raspberry Pi Tutorial

1. Flash Raspbian Lite

2. Run the following commands (through serial, SSH, or directly)

# Add the release PGP keys:
curl -s | sudo apt-key add -

# Add the "stable" channel to your APT sources:
echo "deb syncthing stable" | sudo tee /etc/apt/sources.list.d/syncthing.list

# Update and install syncthing:
sudo apt-get update
sudo apt-get install syncthing

sudo systemctl enable syncthing@pi.service
sudo systemctl start syncthing@pi.service

#make accessible over the network by replacing to
sudo sed -i "s/127\.0\.0\.1/" ~/.config/syncthing/config.xml

Install mitmproxy on Ubuntu 16.04 and Linux Mint 18

A simple tutorial to help install mitmproxy for debugging web applications on Linux Mint 18 / Ubuntu 16.04).

Install python 2.7 dev first (needed to avoid the error below):
$ sudo apt-get install python-dev

Now install mitmproxy
$ sudo pip install mitmproxy

Example usage with Ruby on Rails
Assuming we ran “rails server” on the default port of 3000, we can run mitmproxy on port 3001.
$ mitmproxy -p 3001 -R http://localhost:3000/



Error that would appear without installing python-dev:
creating build/temp.linux-x86_64-2.7/ext
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/include/python2.7 -c ext/_yaml.c -o build/temp.linux-x86_64-2.7/ext/_yaml.o
ext/_yaml.c:4:20: fatal error: Python.h: No such file or directory
compilation terminated.
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-t2Ejye/PyYAML/';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-b7aU7h-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-t2Ejye/PyYAML/

Change Critical Battery Level and Action in Linux Mint 18 Cinnamon

A simple tutorial to help you find the options to change the battery critical value percentage and action options in Linux Mint 18 Cinnamon (based on Ubuntu 16.04).

Install dconf-editor:
$ sudo apt-get install dconf-editor

Go to org -> cinnamon -> settings-daemon -> plugins -> power

dconf-editor power settings

Default settings are (in %):
Critical battery action: hibernate
Critical: 2
Action: 2
Low: 10

Exercise caution and tweak to your heart’s content 🙂

Easy OpenVPN Setup Script for Debian Based OpenVZ VPS

What is OpenVPN?

OpenVPN is a reliable and well tested VPN solution that is able to run over a single port, supports compression, tunnels over NAT, and is very secure.

What does this script do?

This script will automatically install, configure, and add users to OpenVPN all in under 5 minutes, even with minimal Linux skills. The port forwarding, server configuration, and authentication setup is all taken care of for you.


  • Automatic .ovpn file generation with inline certificates in a single file
  • Google DNS servers
  • Port 53 captive portal bypass server option

Continue reading

Moving my scripts over to Github

A mini news flash here, I’ve created a Github account that will be hosting all my scripts.

The first to be moved over is my automated PPTP setup script, now called ezpptp.

The LNMP (Nginx, PHP, MySQL) script has been depreciated in favor of Xeoncross’s lowendscript that I’ve contributed some patches to.

My OpenVPN setup script will soon be joining the other bunch in the near future.

Hopefully with the scripts now being hosted on Github, I’ll see some patches and commits to make them even better 😀