Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Installing on POSIX
Freenet requires Java 7 or later.
There is a Freenet package available in the AUR. It automatically unpacks the headless archive, adds the
freenet user and the startup daemon. Just add Freenet to your DAEMONS in
/etc/rc.conf if you want it to run automatically at startup, and run
/etc/rc.d/freenet start to start your freshly installed node.
Since Freenet (partly due to the continuous development and frequent updates) is not available in the repositories, the Freenet developers provide an installer.
After you have installed Sun Java (see above), you can go to https://freenetproject.org and simply click on Install (big green button). A dialog box should appear and you can choose to execute the file with Java 6 Web Start. After you have confirmed, the installation wizard will appear.
The first step is to select the language whereby you select
eng and click OK. Just click "Next" a few times and adjust the values if needed. If you are unsure, just leave the default values. A setup assistant should appear after the installation has finished.
Execute the following commands in a terminal to download the latest version of Freenet and install them:
wget https://downloads.freenetproject.org/alpha/installer/new_installer.jar && java -jar new_installer.jar
If the installer does not start in text mode and you want it to, add
-console to the end of the command. To start Freenet now, execute these commands:
cd ~/Freenet ./run.sh start
Once Freenet was launched successfully, open a web browser and point it to http://127.0.0.1:8888 where you can change the settings.
Debian-based, with a Freenet system user
This will install Freenet into a new system user account called
freenet on Debian-based systems - it makes use of Debian
tar. Fedora-based systems link
useradd, which is a more low-level program.
It uses the headless installer, so it will work on a system without X11 too. If the installer does not start in text mode and you want it to, add
-console to the end of the command.
root# adduser --system --group freenet root# cd ~freenet root# su -s "$SHELL" freenet freenet$ wget https://downloads.freenetproject.org/alpha/installer/new_installer_offline.jar freenet$ java -jar new_installer_offline.jar -console
If you don't want to use
/home/freenet as the installation directory, use
root# adduser --system --home PATH_TO_INSTALLATION_DIRECTORY --group freenet
For the rest of the commands to work verbatim, the directory name itself must be
/srv/freenet but not
adduser [etc]creates a system account called
freenetin a new group called
su [etc]switches to the new user account. The
-s "$SHELL"ensures it starts a working shell; otherwise, it'll immediately exit, since system accounts' default shells are
wget [etc]downloads the Freenet installer into
freenet's home directory.
jar -jar [etc]starts the installer.
see the relevant manual pages for more details.
You should be able to control Freenet from FProxy, at
localhost:8888/. However, if you can't do this, then you'll need a way to control Freenet as the
One way to do this is to
su freenet as above. To avoid the need to use the
-s flag, you might want to set the default shell to something usable - see the
chsh command for details.
A better method is to create a wrapper program around
run.sh that only root can run, that automatically takes care of the user-switching (eg. akin to the
Personally, I use a setgid program which allows everyone in the
freenet group to control Freenet. This is quite non-standard, but it does mean that you can control Freenet from your normal user account. I'm happy to provide the source code for this, to anyone who is interested (ask infinity0 on freenode; I'm in #freenet most of the time).
Single server (CLI) node
apt-get install wget default-jre-headless wget https://downloads.freenetproject.org/alpha/installer/new_installer_offline.jar java -jar new_installer_offline.jar
Use the alternative installation method mentioned above. Do not install as "root". Root user will get permission errors, and a failed install.
It is highly recommended for obvious security reasons to run the Freenet daemon in a jail.
Once you created the jail, mount the ports tree in it then bind a shell to it (using
tcsh). Install the java/openjdk7 port, run a standard headless Freenet installation in any directory (let's say
/freenet). After that you need to put the full path of the openjdk7
java binary in the
wrapper.conf file. It is probably
/usr/local/openjdk7/bin/java: put that value in
When you're done, create a wrapper script
/usr/local/etc/freenet (example) and add the corresponding line
freenet_enable="YES" to your
/etc/rc.conf to start and stop the node with the system/jail.
Also, don't forget to edit the
freenet.ini file because FProxy will only listen to
127.0.0.1 by default!
You need to get the wrapper for FreeBSD from http://wrapper.tanukisoftware.com/doc/english/download.jsp. The wrapper in the Freenet package is for Linux only. Delete
freenet/lib. Extract the downloaded
tar.gz and copy the included
Freenet should start and stop fine now.
Theoretically, Freenet could run on a good android phone, although it's a background app so maybe only on recent versions. The APIs we use from the JDK are (mostly?) also present in Android.
Compile it yourself, see what happens. Also, please see the suggestion about Freenet on phones in general.