Raspberry Pi setup as seedbox, IRC bouncer and ddns
I use Raspberry Pi B+ as IRC bouncer and seedbox-torrent server. I used Arch Linux because it provides me with the latest rolling versions of the software I need. This is a tutorial how to full set it up, mostly for me, just in case I want to make the same settings again.
This tutorial has the following sections:
- Create the SD card using Arch Linux
- Setup static ip
- Install some extra software
- Setup no-ip or inadyn client
- Install and setup ZNC (IRC Bouncer)
- Install Transmission (seedbox)
1. Create the SD card
Follow the official tutorial
Replace sdX in the following instructions with the device name for the SD card as it appears on your computer.
You can find the dev name using the command:
Unmount the SD card and start fdisk to partition the SD card:
At the fdisk prompt, delete old partitions and create a new one:
o. This will clear out any partitions on the drive.
pto list partitions. There should be no partitions left.
n, then p for primary,
1for the first partition on the drive, press
ENTERto accept the default first sector, then type
+100Mfor the last sector.
cto set the first partition to type W95 FAT32 (LBA).
2for the second partition on the drive, and then press
ENTERtwice to accept the default first and last sector.
- Write the partition table and exit by typing
Create and mount the FAT filesystem:
Create and mount the ext4 filesystem:
Download and extract the root filesystem (as root, not via sudo):
- For Raspberry Pi 1
- For Raspberry Pi 2
Move boot files to the first partition:
Unmount the two partitions:
Insert the SD card into the Raspberry Pi, connect ethernet, and apply 5V power. Use the serial console or SSH to the IP address given to the board by your router.
Login as the default user
alarm with the password
root password is
You can change the default passwrds using the command
2. Setup static ip
Edit the file eth0.network. Systemd-networkd uses *.network files.
paste the following (for static IP
You will then need to disable netcl. To find out what is enabled that is netctl related, run this:
Once you identify all netctl related stuff. Go through and disable all netctl related stuff. You may have more to disable than just the below:
You will then need systemd-networkd enabled:
3. Install some extra software (AUR and more)
The system is fully usable but I prefer to add some extra programs-tools (some might be already installed)
After some changes on pacman, there are some workarounds on how to install AUR.
Add users to a group with the gpasswd command as root:
Go to sudoers
and change the wheel line
Reboot the system and give the follwing commands as user
You can do the same with yaourt
ALTERNATIVE yaourt installation:
Open the file
Then install yaourt (as root):
Then delete the archlinuxfr repo.
To delete the user from wheel group, first execute the command as root:
and then go to sudoers
and change the wheel line (add #)
4. Setup no-ip or inadyn client
no-ip is the service I use for DDNS. It can be installed from AUR (
yaourt -S noip).
There were some changes on how to install AUR and that’s why I did it manually.
Most of the routers support it no-ip. You can use your router’s service. But what if you want 2 different host names on the same IP? Let’s say you have different ARM boards on the same router or you have a server etc.
First of all, install the needed programs to build the service (same as I did with ZNC)
Download the program
and decompress it
Go to the directory
Compile and install
While it installs the software you will prompted to enter the username & password. Once that is done it will ask you teh refresh interval … leave it.. to have the default value. You are required to answer some more questions … just answer NO and you should be good to go.
Start the client
To check if the service is running, use the command:
and the results should be like
Auto start the client on reboot
But what if you reboot? You want to start the client everytime you reboot. This can be done with systemd.
Create the service file.
Add the following content.
Start the service
and enable the service
If you installed AUR, here is how you can setup no-ip service.
Install No-IP Client with yaourt.
Configure No-IP Back-end
Create the configuration file.
Enter the relevant details when prompted. All settings can be modified individually later.
Modify the update interval.
Interval that the IP will be updated is set with -U option in minutes. Default is 30 minutes.
Modify No-IP username.
Modify No-IP password.
Start noip service.
Enable noip serive.
5. Install and setup ZNC (IRC Bouncer)
ZNC is the software I use as IRC bouncer. I’m 24/7 online, keep logs of the channels I’m in. Raspberry Pi is the perfect solution for that since I don’t need CPU or GUI. Arch has the latest version that supports more than one server for a single user. Here is how to install-setup.
Install with the command:
As user (alarm), run the command
and follow step by step the qustions to setup username-pass, port, channels, servers etc.
ZNC will run. If you want to start automatic, you have to add it as systemd service. I prefer to run it manually (
znc) everytime I boot my Raspberry Pi. It’s easier to understand if the system was down or not.
When you run the IRC program, you have to add the username and server. The password shoud be like
You can also open your browser and go to
http://IPSERVER:PORT to edit your settings.
6. Install Transmission (seedbox)
My SD card is 16GB. The total space to download files is about 14GB. It’s enough for everyday use.
I choose Transmission for this, because it is simple, fast and stable. Transmission has a good webinterface, plus it allows access from remote clients with the transmission-remote gui packages.
First install it with pacman:
Enable the service at startup:
Start the service:
Now create a folder where your user and the transmission group (where the transmission user belongs to) can read and write:
In my example the folder /mnt/torrents is a folder. You can mount an external USB harddrive which can be mounted via /etc/fstab at boot. Remember to change alarm to your Pi username (if it’s different).
Stop the daemon to make sure the config file edits stick:
Edit the default config file to allow remote access to the daemon (or do not do that and use an ssh tunnel every time) and update the downloads path:
Change the following parameters:
This sets the correct download folders and allows access from everywhere to the transmission webinterface. You can also list a range there (192.168.1.0/24) or just one IP address.
If you do not udate the ACL you get a nice error message when connecting:
403: Forbidden Unauthorized IP Address. Either disable the IP address whitelist or add your address to it. If you're editing settings.json, see the 'rpc-whitelist' and 'rpc-whitelist-enabled' entries. If you're still using ACLs, use a whitelist instead. See the transmission-daemon manpage for details.
If all went well you should be able to connect to
http://YOUR-PI-IP:9091 and see the nice transmission webinterface.
If you want more info on Transmission on Arch Linux, read up on the arch wiki.
- Android: Download Transdrone to add new torrents to your server.
- Filezilla: To get the downloaded files, use SFTP.