Install Freenet/Hyphanet on a GNU/Linux server
Jump over censorship. When Free Speech dies, we need a place to organize.
Hyphanet is a peer-to-peer platform for censorship-resistant communication and publishing. But over the years many people asked how to install Freenet from the commandline, for example for a headless server.
General approach
To install Freenet/Hyphanet:
- Install openjdk
- Get the Installer from https://github.com/freenet/fred/releases/download/build01487/new_installer_offline_1487.jar
- Run the installer with
java -jar new_installer_offline_1487.jar -console
Then follow the prompts.
Finally open http://127.0.0.1:8888 and follow the wizard.
Example on GNU Guix
guix install openjdk
wget 'https://github.com/freenet/fred/releases/download/build01487/new_installer_offline_1487.jar'
java -jar new_installer_offline_1487.jar -console
LANG=C wget 'https://github.com/freenet/fred/releases/download/build01487/new_installer_offline_1487.jar'
… new_installer_offline_1487.jar 100%[===============================================================================>] 18.88M 2.23MB/s in 12s 2020-10-20 09:35:26 (1.59 MB/s) - 'new_installer_offline_1487.jar' saved [19801684/19801684]
java -jar new_installer_offline_1487.jar -console
Select target path [/tmp] /tmp/Freenet press 1 to continue, 2 to quit, 3 to redisplay 1 [ Starting to unpack ] [ Processing package: Base (1/3) ] [ Processing package: License (2/3) ] [ Processing package: Unix (3/3) ] [ Unpacking finished ] [ Starting processing ] Starting process Setting up the environment (1/16) Offline installation mode File './wrapper.jar' already exists. Starting process Setting the Updater up (2/16) Starting process Setting Opennet up (3/16) Starting process Setting JSTUN up (4/16) Downloading the STUN plugin Starting process Setting UPnP up (5/16) Downloading the UP&P plugin Starting process Setting Librarian up (6/16) Downloading the Library plugin Starting process Setting KeyUtils up (7/16) Downloading the KeyUtils plugin Starting process Setting ThawIndexBrowser up (8/16) Downloading the ThawIndexBrowser plugin Starting process Setting plugins up (9/16) Starting process Downloading freenet-stable-latest (10/16) Starting process Downloading freenet-ext (11/16) Starting process Downloading bcprov (12/16) Starting process Detecting port availability (13/16) Detecting tcp-ports availability... … Starting process Setting up auto-start (14/16) Enabling auto-start. Installing cron job to start Freenet on reboot... mcron: autostart.install:1: Bad job line in Vixie file. Starting process Starting the node up (15/16) Starting Freenet 0.7... Starting process Cleaning up (16/16) All done, please click Next [ Console installation done ]
note that mcron failed, on Guix you currently have to start Freenet manually.
Now open the freenet web interface:
lynx 127.0.0.1:8888
Set Up Freenet Connect to any Freenet user: (low security) Connect only to friends: (high security) Detailed settings: (custom) If you live in a relatively free country where running Freenet is legal, you can choose this option. It is much safer than traditional P2P software like BitTorrent or Gnutella, but an attacker with moderate resources may be able to trace your activity on Freenet back to you. If you have friends who also run Freenet, you can improve security by adding them as Friends, then connecting only to them. Choose low security If you know several people you want to connect to, this setting allows you to create your own Freenet darknet for vastly improved security. If you only have a few people it may not be very useful, but if some of them know others, or have low security set, you can have a very large network. Choose high security If you want more fine-grained control, this option lets you set up Freenet according to your own privacy needs. It will take a bit longer than the other two options. Choose custom security [English______________] Submit
Choose low security.
For the next two dialogs, just click next.
Browser Security Advisory You are using a browser with incognito mode for Freenet (this is good) You seem to be using a browser in privacy/incognito mode (check in the title bar). This should be relatively safe, but do not use the same browser for the web and Freenet, unless it is in privacy mode. Most web browsers, apart from Microsoft Internet Explorer, will work adequately with Freenet, for example Firefox, Opera, Safari, Chrome, and Lynx are known to work. If you are using a thirdparty IME (Input Method Editor, used as text input for common asian languages), please disable it for Freenet and use an IME from your Operating System. There have been reports of the IME collecting your keystrokes and sending them to remote servers. Back Next
Datastore Size Datastore size Please select a size for your datastore. Recommended values lie between 1GiB and 20GiB. A smaller datastore can result in problems downloading files, a larger datastore is beneficial to the network but might slow down your computer due to high filesystem load, especially in the first few hours after installation. The datastore acts like a cache; storing data for the network will help you to get better throughput when requesting popular files. The more space you can afford the better it is for the community and the faster your node and especially your downloads will go. [10.0 GiB] Back Next
Bandwidth Limits Bandwidth Limits Does your internet connection have a monthly data limit? Yes No Back
I have No monthly limits.
Bandwidth Limits Transfer Rate Limit How fast is your Internet connection? Freenet should use no more than half of it. You can change this setting later on the Core settings page. Note that 1 megabit per second (1 Mbps) = 125 kilobytes per second (125 KB/s). Connection type Download limit Upload limit Select 4 megabits 256 KiB/s (= 2Mbps) 16.0 KiB/s ( ) 6 megabits (average ADSL1) 384 KiB/s (= 3Mbps) 16.0 KiB/s ( ) 8 megabits (fast ADSL1) 512 KiB/s (= 4Mbps) 32.0 KiB/s ( ) 12 megabits (slow ADSL2) 768 KiB/s (= 6Mbps) 64.0 KiB/s (*) 20 megabits (fast ADSL2, fast cable) 1.25 MiB/s (= 10Mbps) 64.0 KiB/s ( ) VDSL (20/5) 1.25 MiB/s (= 10Mbps) 320 KiB/s ( ) 100 megabits (fibre) 2.0 MiB/s (= 16Mbps) 2.0 MiB/s ( ) Enter a custom bandwidth limit ____________________ ____________________ Back Next
⇒ Freenet is setup and running.
Now open 127.0.0.1:8888 in any webbrowser to use Freenet. To increase security, you can setup Freenet as a proxy in your webbrowser, using a nonstandard IP and Port.
Distributions
Debian
sudo apt-get install default-jre wget lynx wget 'https://github.com/freenet/fred/releases/download/build01487/new_installer_offline_1487.jar' java -jar new_installer_offline_1487.jar -console # follow the prompts lynx 127.0.0.1:8888 # follow the wizard
Gentoo
sudo emerge freenet lynx sudo rc-update add freenet default sudo rc-config start freenet lynx 127.0.0.1:8888 # follow the wizard
Arch
Install from AUR package freenet:
pacman -S --needed git base-devel wget lynx git clone https://aur.archlinux.org/freenet.git cd freenet curl -sS https://freenetproject.org/assets/keyring.gpg | gpg --import - makepkg -si lynx 127.0.0.1:8888 # follow the wizard
CentOS
sudo yum install java-11-openjdk wget lynx wget 'https://github.com/freenet/fred/releases/download/build01487/new_installer_offline_1487.jar' java -jar new_installer_offline_1487.jar -console # follow the prompts lynx 127.0.0.1:8888 # follow the wizard
SUSE
sudo zypper install java-11-openjdk wget lynx wget 'https://github.com/freenet/fred/releases/download/build01487/new_installer_offline_1487.jar' java -jar new_installer_offline_1487.jar -console # follow the prompts lynx 127.0.0.1:8888 # follow the wizard
Guix
guix install openjdk wget lynx wget 'https://github.com/freenet/fred/releases/download/build01487/new_installer_offline_1487.jar' java -jar new_installer_offline_1487.jar -console # follow the prompts lynx 127.0.0.1:8888 # follow the wizard
OpenBSD and similar
On some systems (including OpenBSD), you can install Freenet as above,
but starting it with the wrapper (./run.sh start
) does not work. You
can run Freenet manually there, but you then don’t have auto-updates.
Get the relevant classpath arguments in wrapper.conf (after install).
Then call java directly with a command like
java -classpath \ wrapper.jar:bcprov-jdk15on-1.59.jar:freenet-ext.jar:jna-4.2.2.jar:jna-platform-4.2.2.jar:freenet.jar.new \ -Dnetworkaddress.cache.ttl=0 -Dnetworkaddress.cache.negative.ttl=0 -Djava.net.preferIPv4Stack=true \ -Djava.io.tmpdir=./tmp/ -Xss512k \ freenet.node.NodeStarter