Skip to content


Installing Freenet on Ubuntu server (command line)

After the Tor command line installation guide, it’s only logical to carry on with Freenet 😉 It’s a bit sad how both those projects lack of crystal clear command line instructions, as, once again, they would likely benefit the most from users running them on dedicated servers, i.e. most often on GUI-less machines. This guide was made for Ubuntu, but should be remarkably similar on other Linux distributions, apart from the package manager (yum vs apt-get, I guess).

Installing Java

The main turn off with Freenet for me is that it’s written in Java. Once you’ve installed it you’ll see for yourself how CPU-intensive it actually is – much more than Tor (which on the opposite isn’t too demanding). Anyway, installing Java is now a bit trickier than before, because Oracle got their reference implementation removed from official distribution repositories, but OpenJDK works just as well so that’s what we’ll pick.
apt-get install openjdk-6-jdk
(that will be about 170 MiB of stuff to install)

Installing Freenet

Even though the headless server instructions there are a bit scary, I found them quite sufficient. It’s not that complicated to install after all (also, maybe after getting warmed up by Tor’s installation I’m a little biased, too ;)), so I’ll just list the commands you need to type (obviously, edit the pathes), and they should be pretty self-explanatory:
cd /where/you/want/to/install/it
mkdir someFolder
cd someFolder
wget https://downloads.freenetproject.org/alpha/installer/freenet07.tar.gz --no-check-certificate
tar xzf freenet07.tar.gz

Now we need to create a user for Freenet, give it a password and assign them the freenet folder:
useradd someUserName
passwd someUserName
[enter the password twice]
chown someUserName freenet -R

First Freenet launch, configuration

Connect to the machine where you just installed Freenet as this someUserName, go to the freenet folder and run run.sh:
cd /where/you/want/to/install/it/someFolder/freenet
./run.sh

FYI (actually, more for my personal archives ^^), here’s the output:

Enabling the auto-update feature
Detecting tcp-ports availability...
Downloading update.sh
Downloading wrapper_Linux.zip
Downloading freenet-stable-latest.jar
Downloading freenet-ext.jar
Downloading the JSTUN plugin
Downloading the UPnP plugin
Downloading seednodes.fref
Installing cron job to start Freenet on reboot...
Installed cron job.
Starting Freenet 0.7...
Please visit http://127.0.0.1:8888/ to configure your node
Finished

Now, you need to connect to http://127.0.0.1:8888 to configure Freenet. If, as is likely since you’re reading this tutorial on console-based installation, it’s not on the same computer as where you are now, you have 2 options:
– follow this to allow external IPs (preferably, just a specific one: yours ;)) to connect to your Freenet node
– create an SSH tunnel to your machine (see the second half of this old post), and then when your browser is configured to use it (NB: don’t forget to remove “127.0.0.1” from the exclusion list, in Firefox called “no proxy for”), going to http://127.0.0.1:8888 will actually go to your server.

Well, that’s pretty much it, now just configure it from the GUI as you wish. Here are a few hints, though:

  • You should increase the RAM available to Freenet. By default it’s 128, it would be a good idea to at least double it. Actually 512 MiB would be even nicer. Note that you’ll have to restart Freenet in order for the change to be applied. The RAM can also be configured manually in wrapper.conf:
    wrapper.java.initmemory=60
    wrapper.java.maxmemory=512
  • You’ll probably want to review input and output bandwidth settings (although you already had the opportunity to do so during the first launch wizard)
  • You’ll want to increase the datastore size (this helps the network) and the client cache (this helps you ;)), because during the first launch wizard you aren’t really given much choice for some reason… Respectively 50GiB and 25GiB could be fine for instance, although of course you can increase that much more. Note however that whenever you change those settings Freenet will rebuild its database, which means it will be somewhat slower for a while.
  • Finally, it’s probably a good idea to install some social plugins such as WebOfTrust and Freetalk (both are official plugins), which will give you access to discussion boards. Other plugins of interest: Sone (kind of a social network), Library (search engine), Freenet Search (search engine too).

Bonus: solving the “There isn’t enough entropy available on your system… Freenet won’t start until it can gather enough.” error

Freenet seems to have massive needs for entropy, and if you happen to run out of it, it might take some time to spontaneously replenish. A quick way to boost this is to generate lots of disk access. I saw the suggestion of running find / >/dev/null, but it didn’t help a lot for me, maybe because my HD isn’t that filled. What worked great was to either copy a big directory, or even simpler, to download some large file, like: wget ftp://ftp.free.fr/mirrors/ftp.ubuntu.com/dvd/current/precise-dvd-amd64.iso

Bonus 2: restarting/stopping the node without using the web GUI

The ./run.sh script can be run with arguments, such as ./run.sh restart or ./run.sh stop

Posted in cryptography, privacy, servers.


2 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. Anonymous says

    “Now, you need to connect to http://127.0.0.1:8888 to configure Freenet.”

    A third option is to install a graphical web browser such as w3m to the server, and use that to access http://127.0.0.1:8888

    sudo apt-get install w3m

  2. David Dernoncourt says

    I guess that’s a possibility too, although maybe not as comfortable lag-wise 😉



Some HTML is OK

or, reply to this post via trackback.

Please solve the CAPTCHA below in order to fight spamWordPress CAPTCHA