OpenWrt Mods

There are several ways you can modify your PirateBox when running it on an OpenWrt compatible device. The tutorials and links below will help to get you started.

PirateBox Team

PirateBox Streaming Radio with Icecast

You can modify your PirateBox to become a streaming PirateBox radio using Icecast. Check out janbre's Icecast tutorial on GitHub and this thread on the PirateBox Forum for more info.

OpenStreetMap on Piratebox

Peter Rukavina has developed a tutorial for installing a static OpenStreetMap on your PirateBox using Leaflet. Check out his PirateBox + OpenStreetMap GitHub page here and also this PirateBox Forum thread for more info.

Calibre eBook Server on PirateBox

Thanks to PirateBox Forum member angrygnome, it is possible to set up your PirateBox as a Calibre ebook library server using COPS. Check out this tutorial on the PirateBox Forum for more info.

PirateBox 1.1.x mods

If not listed separately the documentation of 1.0.x applies.

Activate PHP

PHP should be ready to run. To activate PHP on PirateBox, you need to edit /opt/piratebox/conf/lighttpd/lighttpd.conf and remove the # in front of the last line: #include “/opt/piratebox/conf/lighttpd/fastcgi-php.conf”

The can be achieved with the following command, too:

 sed -i -e 's|^#include "/opt/piratebox/conf/lighttpd/fastcgi-php.conf"|include "/opt/piratebox/conf/lighttpd/fastcgi-php.conf"|' \
   /opt/piratebox/conf/lighttpd/lighttpd.conf

After this make a reboot. All .php files are processed, as long as these are placed in the /content/ folder. This folder is located in /opt/piratebox/share - on OpenWrt on the USB stick <usb>/PirateBox/.

Disable client isolation

Per default it is not permitted to connect directly to another client. To allow this, you need to disable the feature “AP isolation”. Connect via SSH and run the following commands:

 uci set wireless.@wifi-iface[0].isolate='0'
 uci commit
 reboot

Lighttpd Mods - Piratebox version 1.0.x

Change SSID

You can change the SSID with editing the file /etc/config/wireless and then

/etc/init.d/network reload

your Network settings to make the change active.

Change of IP-Adresses

  • /opt/piratebox/conf/piratebox.conf - The following lines:
 #Network
 NET=192.168.1
 

And if you want to change the IP of your Box directly, you need to find this line and exchange the 1:

 #IP-SHORT (is stringed together)
 #  Which IP is your Box??  i.e. 1 => 192.168.77.1
 IP_SHORT=1
  • On OpenWRT you need to change /etc/config/network
 config interface 'loopback'                                                               
      option ifname 'lo'                                                                
      option proto 'static'                                                             
      option ipaddr '127.0.0.1'                                                         
      option netmask '255.0.0.0'                                                        
                                                                                        
 config interface 'lan'                                                                    
      option ifname 'eth0'                                                              
      option type 'bridge'                                                              
      option proto 'static'      
 #------  CHANGE THE LINE BELOW -------
      option ipaddr '192.168.1.1'          
 #------  CHANGE THE LINE ABOVE -------        
      option netmask '255.255.255.0'                                                    

Since 1.1: The next step is to change the referred IP in the firewall configuration. This can be done easily with that command:

sed -i -e 's|192.168.1.1|<new IP>|g' /etc/config/firewall

As the changes will drop in the connectivity, reboot the box:

reboot

Small python Forum

For installing the pyForum named Forest, run:

/opt/piratebox/bin/install_piratebox.sh /opt/piratebox/conf/piratebox.conf pyForum

Files for the forum are stored in /opt/piratebox/forumspace (which should be Backuped before upgrading).

Currently, there is no reaction on the web-UI after instaling. You can open the Forum using the url: http://piratebox.lan/cgi-bin/forest.py. So you might need to do additional work to fully apply it to your setup.

Secured directories

With secured directories it is possible to save folder with passwords or simply upload into a folder structure. To enable this feature, find the following lines in /opt/piratebox/conf/piratebox.conf

## Droopy Userdir Option?
DROOPY_USERDIR=""
# Uncomment the following line to enable Userdirs
#DROOPY_USERDIR="-u True"

Remove the # in the last line and restart your PirateBox-Scripts.

Exchange Upload-Folder

Do you want, that your users uploads to a different directory than the default directory, where the “Browse” link points to? You can easily achieve this with editing /opt/piratebox/conf/piratebox.conf. Find this line and enter your new upload folder:

#Upload Folder
# Change this if you want to user uploaded data in a subfolder
#   Make sure the folder exists
# UPLOADFOLDER="$FOLDER/Upload"
UPLOADFOLDER=$FOLDER

Avoid special characters in directory-name and ensure the directory exists and has the correct permissions!

Disabling Shoutbox-Reset after reboot

On default, the Shoutbox is cleared on a new startup. To disable this, you need to set the following line in /opt/piratebox/conf/piratebox.conf to no

 # Reset Shoutbox on Startup?
 RESET_CHAT="yes"

If you want to cleanup your shoutbox, you can later run the following commands manually to empty the log:

rm /opt/piratebox/www/cgi-bin/data.pso
/opt/piratebox/bin/shoutbox_stuff.sh /opt/piratebox/www /opt/piratebox/conf/piratebox.conf

Hostname

Since PirateBox 1.0 there is a command in install_piratebox.sh ; this is the only thing needed.

 /opt/piratebox/bin/install_piratebox.sh /opt/piratebox/conf/piratebox.conf hostname <new hostname>
 

Before PirateBox 1.0: Change hostname in the file index.html /opt/piratebox/www/index.html

 <iframe  width='650' frameBorder='0' src='http://piratebox.lan:8080'>Your browser does not supprt Iframes.. If you want to upload something, follow this <a href='http://piratebox.lan:8080'>Link</a></iframe>

Custom Directory Listing

How to customize your personal directory-listing is described on the Lighttpd wiki

PHP for PirateBox

Make sure your box has internet, see this howto for informations when you have a single-ethernet-port device like the MR3020.

Login to you box using SSH or telnet, then the following lines to install php and dependencies

/etc/init.d/piratebox nodns
opkg update
opkg -d ext install extendRoot-php lighttpd-mod-fastcgi

That takes a small moment, then we need to add the corresponding configuration parts to the lighttpd configuration. Take care, that you copy&paste all of them at once:

cat >/opt/piratebox/conf/lighttpd/fastcgi.conf <<EOF
#-------------------- FAST CGI stuff

server.modules += ( "mod_fastcgi" )
fastcgi.server = (
      ".php" => ((
                      "bin-path" => "/usr/bin/php-cgi",
                      "socket" => "/tmp/php.socket",
                      "max-procs" => 1
              ))
)

EOF
echo 'include "/opt/piratebox/conf/lighttpd/fastcgi.conf"' >> /opt/piratebox/conf/lighttpd/lighttpd.conf
echo "<?php phpinfo(); ?>" >> /opt/piratebox/www/phpinfo.php

Now we can do a quick restart of the PirateBox scripts:

/etc/init.d/piratebox restart

Open up your browser and then, checkout http://piratebox.lan/phpinfo.php Attention, please keep in mind, that with this configuration even an uploaded PHP script would be executed. To restrict this, you can edit the /etc/php.ini file on your PirateBox and change the value from

;doc_root = "/www"

to

doc_root = "<path to your php application>"

In addition, you might need some more extentions to be installed (which isn't that easy to find out). This can be done with the command

  opkg -d ext install php5-mod-//....//

After that, you need to remove the ; in fron of the module-name in the dynamic extention section of /etc/php.ini.

You can lay down you php files there or in subfolders now. You can lay down your php stuff on the USB-device and link to it. For example a link to my wiki located on the usb device:

  ln -s /mnt/usb/PirateBox/wiki  /opt/piratebox/www/wiki

Show connected clients

Included since 0.3.1 There is a script, which greps the needed informations from “iw”. It was designed to run on OpenWRT, but it might work on laptops, too. If you want to use this, run the following command:

  /opt/piratebox/bin/install_piratebox.sh /opt/piratebox/conf/piratebox.conf station_cnt 
  

That makes an entry into the crontab of the current user. It updates a station_cnt.txt file in /opt/piratebox/www every 2 minutes. On OpenWRT you have to ensure, that the Cron daemon runs:

 /etc/init.d/cron enable && /etc/init.d/cron start 

Add the following line in the index.html file

 <div id="station" class="card"></div> 

Note: if you try to do the activation on the RPi version, you need to execute the following command to enable Cron:

sudo systemctl enable cronie
sudo systemctl start cronie

www offload

This option is important for the OpenWRT users. You want a www folder on your USB stick?

We are going to disable the script exchange_www.sh with PirateBox hotfix release 1.0.4 , even if the installation tells you to change something, it won't. The www_alt feature is disabled, please follow the instructions below.

After finalizing your box, you can run the following set of commands while being connected via ssh. These commands will create a folder, where you can put your files to.

 mkdir -p /opt/piratebox/share/content
 ln -s /opt/piratebox/share/content  /opt/piratebox/www
 chown -R nobody:nogroup /opt/piratebox/share/content
 sed -i "s|#####HOST#####/|#####HOST#####/content|" /opt/piratebox/src/redirect.html.schema
 . /opt/piratebox/conf/piratebox.conf
 sed "s|#####HOST#####|${HOSTNAME}|" /opt/piratebox/src/redirect.html.schema > /opt/piratebox/www/redirect.html
 mv /opt/piratebox/www/index.html /opt/piratebox/www/index_old.html
 ln -s /opt/piratebox/www/redirect.html /opt/piratebox/www/index.html
 sync

After this, you can power off your PirateBox and put your content to the “content” folder.

Bigger image file size for webdata

Changing MAC for Hostspot

If you want a regular changing MAC address for you hostspot, you can implement the script which is found on OpenWrt forum. It is reported as working.

Install a Torrent tracker software

The linked guide describes how to install a Torrent tracker to your PirateBox. You find support in this forum topic.