koishi / i2pd-rc-openbsd

Makefile (90.65%)
Other (9.35%)

LICENSE

Added reference to license at the end of readme

2022-05-20T18:05:11-04:00

Makefile

Added step in makefile to make the i2pd executable belong to the _i2pd user and group

2022-05-24T21:45:31-04:00

README.md

Add instructions with git pull to update repo that was already cloned

2023-09-06T20:13:31-04:00

i2pd

Added readme, license, makefile, and rc script

2022-04-03T19:37:59-04:00

I2Pd RC script for OpenBSD

Instructions on how to compile I2Pd on OpenBSD, together with a makefile and an
RC script to make it a system service, allowing it to be started at boot and so
on.

Description

I2Pd is packaged in
OpenBSD's official repositories, but the provided
versions are usually old, and older versions don't always run reliably when
interacting with newer versions on the I2P network.

More recent versions can be installed using the ports tree, but doing so is
pretty unpleasant, from my experience: CVS has to be used, but it's slow and
unintuitive; also X11 has to be installed in order to be able to build ports,
which makes no sense on a headless server... </rant>

Fortunately, compiling the latest version from source on OpenBSD is painless.
LibreSSL is supported, the official instructions work out of the box, and only a
small manual intervention is required to make the daemon start at system boot.

This repository contains instructions on how to compile I2Pd on OpenBSD together
with a makefile and an RC script to make it a system service. This allows it
to be started at boot, to be managed by rcctl, to be restarted if it crashes,
etc.

Compiling and installing

This part is taken from
the official instructions
for compiling and installing I2Pd on a generic Unix system.
If the instructions listed here differ from the official instructions,
prioritize the official instructions, unless a detail specific to OpenBSD is
stated here.

First, install
a few dependencies.
Git is not listed as a dependency in the official build documentation, but it is
needed as it does not come with OpenBSD's base system:

$ doas pkg_add boost cmake git

Next, clone their git repository if it was not already cloned before:

$ cd /some/directory
$ git clone https://github.com/PurpleI2P/i2pd.git
$ cd i2pd

Or if the repository was already cloned before and you want to update it:

$ cd /some/directory/i2pd
$ git pull

Then, generate the makefile and compile the source. You can also
pass options to cmake
to customize your makefile:

$ cd build
$ cmake .
$ make

Next, install the binaries you just compiled:

$ doas make install

Finally, the base config files and certificates must be copied in the
appropriate folders. This step is not clearly listed in the official
installation instructions. It is only mentionned
on this page.
These base files are in the contrib folder at the root of the git repository.

$ cd ../contrib
$ doas mkdir -p /etc/i2pd /var/lib/i2pd
$ doas cp -R i2pd.conf tunnels.* /etc/i2pd
$ doas cp -R certificates /var/lib/i2pd

Making I2Pd start at boot

At this point, you can start I2Pd manually, but it won't start automatically
when the system boots. This section describes how to achieve this.

The first thing to do is to create a new login class to increase the number of
files I2Pd will be able to open simultaneously. By default, OpenBSD restricts
this number to a value that is too low for I2Pd to work properly. Symptoms of a
number that is too small include difficulties connecting to eepsites and high
CPU usage.

If you are using OpenBSD 7.0 or older, simply add the following lines at the
end of /etc/login.conf to create the login class:

i2pd:\
    :openfiles-cur=102400:\
    :openfiles-max=102400:\
    :tc=daemon:

If you are using OpenBSD 7.1 or newer, a login class can be created by adding a
file in /etc/login.conf.d. The makefile ran in the next steps detects the
version and creates the file automatically if the version is 7.1 or newer.

This new login class will be used by the user _i2pd created in the following
steps.

Next, clone this git repository if it wasn't cloned before:

$ cd /any/directory
$ git clone https://gitlab.com/alpou/i2pd-rc-openbsd.git
$ cd i2pd-rc-openbsd

Or if the repository was already cloned before and you want to update it:

$ cd /any/directory/i2pd-rc-openbsd
$ git pull

Then, simply run the makefile. This will create a dedicated user and group to run
I2Pd, both called _i2pd, and give them ownership of the binaries compiled
previously. The login class described above will also be created if you are using
OpenBSD 7.1 or newer, and the init script will be copied in /etc/rc.d.

$ doas make install

The final step is to enable the service to make it start at boot time and then to
manually start it:

$ doas rcctl enable i2pd
$ doas rcctl start i2pd

You're done. Enjoy!

Licensing

The content of this repository is provided under a 0BSD license. See the LICENSE
file for more information.

This is the Zero-Clause BSD (0BSD) license.

Permission to use, copy, modify, and/or distribute this software for any purpose
with or without fee is hereby granted.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
THIS SOFTWARE.

クローン


このレポジトリについて

0

1

0


最終コミット

Add instructions with git pull to update repo that was already cloned
2023-09-06T20:13:31-04:00

リリース

作成中・・・

寄付

作成中・・・