Wednesday, 13 June 2018

SSH Stuff

I've just managed to install a load of stuff onto my desktop as I didn't realise I wasn't connected to a remote machine via ssh.

G+ gave me a suggestion about changing the login colours on the remote machine so a bit of searching came up with this.

Connect via ssh and run

nano .bashrc

Add this lot in just above the last fi

#Make prompt colored when logged in remote
export NON_LOCAL_LOGIN=`env | grep SSH`
if [ "$NON_LOCAL_LOGIN" != "" ]; then
       PS1="\033[33m[\u@\h:\w]#\033[0m "

Save and close and you're sorted

Original answer came from here

Saturday, 9 June 2018

More NewzNab Stuff

Back to getting Newznab running on a Raspberry Pi, I want to add some extra storage for the NZB files, so I'll be connecting 2 x 32Gb USB sticks in a RAID 1 array, I'll initially use the sticks in an lvm in case I want to increase the size at a later date, I won't be going through how to install Raspbian or configure the Pi with a static address, plenty of articles about this elsewhere. I would encourage you to make a new super user on the Pi and then delete the Pi user for security reasons

Once the initial install has finished it's time to ssh into the server with:

ssh servername

And then we'll get started with some updates and installation of the required packages.

First off we need to run:

sudo nano /etc/apt/sources.list 

Uncomment the line that says 

deb-src jessie main contrib non-free rpi

Once we've done that we can begin

sudo -s

cd  /root

apt update && apt upgrade

apt-get build-dep unrar-nonfree

apt-get source -b unrar-nonfree

sudo dpkg -i unrar_5.2.7-0.1_armhf.deb

Next we install ZRAM to imrpove the performance

sudo wget -O /usr/bin/\

chmod +x /usr/bin/

And then add a line to /etc/rc.local to get it running on boot

sudo nano /etc/rc.local

Insert the line shown below before the exit 0, save the file and reboot


Time now to install some software

sudo -i

apt install ssh screen apache2 php mysql-server libapache2-mod-php php-pear php-gd php-mysql php-curl php-json unrar lame mediainfo subversion ffmpeg memcached mc nfs-common lvm2 mdadm -y

Once that's all finished we will tighten up the SQL security with this:


Now it's time to create the SQL database:

mysql -u root -p


USE mysql;
UPDATE user SET plugin='mysql_native_password' WHERE User='root';

And then we edit the mysql config

nano /etc/mysql/conf.d/mysql.cnf

Add the following to the bottom


innodb_flush_log_at_trx_commit = 2

Save that and then edit this file

nano /etc/mysql/my.cnf

Add this to the bottom



Time now to add the external storage, plug the drives in, if you plug them into the sockets nearest the ethernet connector they should be recognised as /dev/sda and /dev/sdb and stay that way too.


fdisk /dev/sda

Delete any existing partion and creat a new one, then do the same for /dev/sdb

Might be worth a restart if you get any messages about the kernel using the old table.

Prepare the partitions with

sudo pvcreate /dev/sda1 /dev/sdb1

Make two volume groups for each drive with this command

Now we create two  "Volume Groups" with the command:

sudo vgcreate newznab1 /dev/sda1

sudo vgcreate newznab2 /dev/sdb1

Now we give all the drive space to the volume with:

sudo lvcreate -l 100%FREE -n newznablv1 newznab1

sudo lvcreate -l 100%FREE -n newznablv2 newznab2

This creates two devices called /dev/newznab1/newznablv1 and 

Next it's time to create the filesystem with the command:

sudo mkfs.ext4 /dev/newznab1/newznablv1

sudo mkfs.ext4 /dev/newznab2/newznablv2

Time to make the RAID 1 array

sudo mdadm --create /dev/md0 --level=mirror --raid-devices=2 /dev/newznab1/newznablv1 /dev/newznab2/newznablv2

Create a filesystem with 

sudo mkfs.ext4 /dev/md0

Now we create a mount point

sudo mkdir  /var/www/newznab

Update fstab to start mount on reboot

echo "/dev/md0 /var/www/newznab/ ext4 defaults,noatime 0 1" | sudo tee -a /etc/fstab

And finally update mdadm to start it at boot, don't run this twice

sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf

Now we make the directory structure:

sudo -i

mkdir /var/www/newznab

mkdir /var/www/newznab/htdocs
mkdir /var/www/newznab/logs

Now it's time to get Newznab, you can get it here, I suggest you get the paid version, it's cheap and it's much better and these instructions are written with it in mind.

Let's get it installed with 

svn co svn:// /var/www/newznab/htdocs/

Now we make the directories writable with

chmod 777 /var/www/newznab/htdocs/www/lib/smarty/templates_c
chmod 777 /var/www/newznab/htdocs/www/covers/movies
chmod 777 /var/www/newznab/htdocs/www/covers/anime
chmod 777 /var/www/newznab/htdocs/www/covers/music
chmod 777 /var/www/newznab/htdocs/www/covers/tv
chmod 777 /var/www/newznab/htdocs/www
chmod 777 /var/www/newznab/htdocs/www/install
chmod -R 777 /var/www/newznab/htdocs/nzbfiles/

And then make a config for Apache to use

nano /etc/apache2/sites-available/newznab.conf

Paste this into it:

<VirtualHost *:80>
    <Directory /var/www/newznab/htdocs/www/>
        Options FollowSymLinks
        AllowOverride All
        Order allow,deny
        allow from all

    DocumentRoot /var/www/newznab/htdocs/www

    ErrorLog /var/www/newznab/logs/error.log
    CustomLog /var/www/newznab/logs/access.log combined

You can change the port in the top line to something else if you want but you have to add a line to


That says

Listen 8080 or whatever port you choose.

Now some config file changes with:

nano /etc/php/7.0/apache2/php.ini

Find these values and change them as shown below, they are listed in order:

max_execution_time = 120

memory_limit = -1
date.timezone = 'Europe/London'

Now we activate the server and deactivate the default one with:

a2dissite 000-default.conf

a2ensite newznab
a2enmod rewrite
service apache2 restart
service mysql restart

And point your browser to:

http://server:port to finish setting up Newznab itself

Once you've finished the initial setup, go the admin section and click on edit site, find these options and change the values to the ones shown below, you don't have to change the default home page if you don't want to.

default home page : /browse

newznabID : <provided in signup email>
unrar path : /usr/bin/unrar
mediainfo path : /usr/bin/mediainfo
ffmpeg path : /usr/bin/ffmpeg
lame path : /usr/bin/lame
integrated cleanup : yes
save audio preview : yes
check for password : deep
delete passworded releases : yes

Activate one group, probably alt.binaries.teevee

Then let's try running an update

cd /var/www/newznab/htdocs/misc/update_scripts

php update_binaries.php
php update_releases.php

Once completed you should see some articles appearing

There's a lot more information here on how to get Newznab running to continuously pull updates here, the one thing that you shouldn't do is use a cron job.

Hope that helps, it's not fast but it's quiet and it works