Index: Makefile =================================================================== RCS file: /cvs/ports/net/i2pd/Makefile,v diff -u -p -r1.33 Makefile --- Makefile 21 Feb 2026 14:20:20 -0000 1.33 +++ Makefile 24 Jul 2026 17:33:42 -0000 @@ -2,7 +2,7 @@ COMMENT = client for the I2P anonymous n GH_ACCOUNT = PurpleI2P GH_PROJECT = i2pd -GH_TAGNAME = 2.59.0 +GH_TAGNAME = 2.61.0 CATEGORIES = net HOMEPAGE = https://i2pd.website @@ -12,9 +12,10 @@ MAINTAINER = SystemFailure > /etc/sysctl.conf If you intend to run a floodfill, you should raise this limit even more: - + # sysctl kern.maxfiles=16000 # echo "kern.maxfiles=16000" >> /etc/sysctl.conf @@ -24,3 +66,73 @@ and also edit /etc/login.conf.d/i2pd: :openfiles-cur=8192:\ :openfiles-max=8192:\ :tc=daemon: + + +The HTTP interface +================== + +On OpenBSD, i2pd's HTTP interface is disabled by default, because it +allows any user on the system to perform actions on the daemon, such +as shutting it down, or access private data, such as the router +identity and the tunnels' B32 addresses. + +If you want to use this interface anyway, you can reenable it in +${SYSCONFDIR}/i2pd/i2pd.conf under the [http] section. + + +Graceful shutdown +================= + +It is good practice to shutdown the i2pd daemon gracefully, to avoid +immediately severing all connections, which would disconnect all +your peers and affect the overall operation of the I2P network. + +You can initiate a graceful shutdown without the HTTP interface by +sending a signal to the i2pd daemon like this: + + kill -INT $(cat /var/i2pd/i2pd.pid) + +When it shuts down gracefully, the i2pd daemon waits for all transit +tunnels to expire, which usually takes 10 minutes. + + +Logging +======= + +By default, this package sends its log messages to syslogd(8), which +writes them to the /var/log/daemon file. + +The default log level of i2pd ("warn") can be very verbose. You may +want to reduce this log verbosity by changing the "loglevel" +parameter in ${SYSCONFDIR}/i2pd/i2pd.conf. + +If you want log messages to be written to another file, e.g. +${LOCALSTATEDIR}/i2pd/i2pd.log, you can change the "log" and "logfile" + +parameters in ${SYSCONFDIR}/i2pd/i2pd.conf. To have this log file +rotated automatically, you can add an entry to /etc/newsyslog.conf +using the i2pd pid file so that newsyslog(8) can send SIGHUP to the +daemon after rotation. + +For example: + + ${LOCALSTATEDIR}/i2pd/i2pd.log _i2pd:_i2pd 644 6 * $D13 Z ${LOCALSTATEDIR}/i2pd/i2pd.pid + +Sending SIGHUP is enough for log rotation, and also makes i2pd reload +its tunnel configuration and rotate transient keys. + + +Known bugs +========== + +Version 2.61.0 of i2pd introduced two small regressions on OpenBSD: + +- i2pd is currently unable to autodetect the proper MTU for SSU2 + packets and falls back to the default value of 1280. If you want to + set another value, you can do so by tuning the ssu2.mtu4 and + ssu2.mtu6 parameters. + +- i2pd runs fine when launched as the default _i2pd user and with the + default file paths (ie. when run with the default rc script). + However, it doesn't run as another user or with non-standard file + paths. Index: pkg/i2pd.rc =================================================================== RCS file: /cvs/ports/net/i2pd/pkg/i2pd.rc,v diff -u -p -r1.4 i2pd.rc --- pkg/i2pd.rc 11 Mar 2022 19:46:04 -0000 1.4 +++ pkg/i2pd.rc 24 Jul 2026 17:33:42 -0000 @@ -2,7 +2,12 @@ daemon="${TRUEPREFIX}/bin/i2pd --daemon" daemon_user="_i2pd" -daemon_flags="--service --datadir=${LOCALSTATEDIR}/lib/i2pd --conf=${SYSCONFDIR}/i2pd/i2pd.conf --tunconf=${SYSCONFDIR}/i2pd/tunnels.conf --tunnelsdir=${SYSCONFDIR}/i2pd/tunnels.d" +daemon_flags="--service \ + --datadir=${LOCALSTATEDIR}/i2pd \ + --conf=${SYSCONFDIR}/i2pd/i2pd.conf \ + --tunconf=${SYSCONFDIR}/i2pd/tunnels.conf \ + --tunnelsdir=${SYSCONFDIR}/i2pd/tunnels.d \ + --certsdir=${LOCALSTATEDIR}/i2pd/certificates" . /etc/rc.d/rc.subr