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
Update (2019-06-11)
Firefox is breaking things YET AGAIN. In order to access Freenet via 127.0.0.1 via the SSH tunnel, you need to make sure 127.0.0.1 is not in network.proxy.no_proxies_on
, but also you need to set network.proxy.allow_hijacking_localhost
to false
. For fucking fuck sake. That’s what they do with your donations, to catch up with Chrome…
“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
Lynx, ELinks (handles frames well), and w3m are all very solid options.
ELinks does the best in terms of rendering the page the way you would be used to from a browser like Firefox, but all of these work just fine.
Dhoh! Forgot to mention… elinks lets you use the mouse, even over SSH, even though the browser itself renders text. You can get similar behavior from Lynx, though it isn’t usually enabled by default.
I guess that’s a possibility too, although maybe not as comfortable lag-wise 😉
Hi!
To get access to server via browser on other machine (to complete wizard) you need add your ip on freenet.ini file on fields bind and allowhost 😉