I2P reseed server distributing signed SU3 bootstrap bundles, with first-boot keys, gated endpoints and a liveness probe.
  • Shell 76.5%
  • Dockerfile 19.8%
  • Makefile 3.7%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Damián Búho b07008a745
All checks were successful
published / release-tag (push) Successful in 2s
published / runner-is-ready (push) Successful in 4s
published / signing-is-ready (push) Successful in 4s
published / projectfile-is-valid (push) Successful in 4s
published / source-is-compliant (push) Successful in 6s
published / projectfile-is-ok (push) Successful in 6s
published / source-is-secure (push) Successful in 18s
published / source-passes-lint (push) Successful in 42s
published / documentation-passes-lint (push) Successful in 51s
published / image-is-built (push) Successful in 25s
published / image-has-sbom (push) Has been skipped
published / image-is-seeded (push) Has been skipped
published / container-is-verified (push) Successful in 39s
published / image-is-secure (push) Successful in 1m27s
published / image-is-published (dockerhub) (push) Successful in 2s
published / image-is-published (kiota) (push) Successful in 3s
published / release-is-published (push) Has been skipped
published / release-notes-are-published (push) Has been skipped
published / published (push) Successful in 0s
fix(security): suppress go-jose/v4 CVE-2026-116587 until upstream bumps it
2026-10-28 13:59:38 -03:00
.compose fix(compose): default XDG_DATA_HOME in dev.yaml comment 2026-10-10 16:55:41 -03:00
.container fix: pin fork delta as 0.3.13-health.1 2026-10-16 00:37:14 -03:00
.forgejo/workflows build(workflows): enable zstd in artifacts 2026-10-26 14:24:41 -03:00
.github/workflows build(workflows): enable zstd in artifacts 2026-10-26 14:24:41 -03:00
.makefile chore(makefile): sync m6e submodules 2026-10-28 13:59:15 -03:00
.projectfile chore(security): list advisory aliases beside suppressed IDs 2026-10-08 22:10:55 -03:00
docs fix(security): suppress go-jose/v4 CVE-2026-116587 until upstream bumps it 2026-10-28 13:59:38 -03:00
LICENSES feat: add i2p-reseed image serving signed SU3 bootstrap bundles 2026-08-22 18:02:07 -03:00
.claudeignore chore: sorting for claudeignore 2026-09-13 12:48:37 -03:00
.containerignore build: ignore .worktrees (oci/docker) 2026-09-29 23:59:21 -03:00
.dockerignore build: ignore .worktrees (oci/docker) 2026-09-29 23:59:21 -03:00
.gitattributes chore: clean j2 from attributes 2026-09-14 00:36:37 -03:00
.gitignore build: ignore .worktrees 2026-09-29 23:56:19 -03:00
.gitmodules build: hard .gitmodules before big refactoring of m6e 2026-09-02 18:40:03 -03:00
.grype.yaml fix(security): suppress go-jose/v4 CVE-2026-116587 until upstream bumps it 2026-10-28 13:59:38 -03:00
.trivyignore fix(security): suppress go-jose/v4 CVE-2026-116587 until upstream bumps it 2026-10-28 13:59:38 -03:00
.yamllint chore(makefile): sync m6e submodules 2026-09-18 00:19:30 -03:00
AGENTS.md feat: build from fork v0.3.14 for unthrottled /health 2026-10-16 00:07:26 -03:00
AI_POLICY.md chore(style): unify project naming schema 2026-09-13 14:44:53 -03:00
CITATION.cff chore(version): 0.7.2 2026-10-23 20:09:59 -03:00
CODE_OF_CONDUCT.md chore(style): unify project naming schema 2026-09-13 14:44:53 -03:00
CODEOWNERS feat: add i2p-reseed image serving signed SU3 bootstrap bundles 2026-08-22 18:02:07 -03:00
CONTRIBUTING.md chore: regenerate contributing 2026-09-30 06:39:45 -03:00
Dockerfile build(docker): own the download cache as the build user 2026-10-10 04:22:55 -03:00
lefthook.yaml chore: regenerate lefthook.yaml 2026-09-29 22:28:50 -03:00
LICENSE feat: add i2p-reseed image serving signed SU3 bootstrap bundles 2026-08-22 18:02:07 -03:00
Makefile feat: add i2p-reseed image serving signed SU3 bootstrap bundles 2026-08-22 18:02:07 -03:00
osv-scanner.toml fix(security): suppress go-jose/v4 CVE-2026-116587 until upstream bumps it 2026-10-28 13:59:38 -03:00
projectfile.yaml fix(security): suppress go-jose/v4 CVE-2026-116587 until upstream bumps it 2026-10-28 13:59:38 -03:00
README.md docs: sync generated docs with the m6e milestone names 2026-10-20 05:39:00 -03:00
SECURITY.md fix(security): suppress go-jose/v4 CVE-2026-116587 until upstream bumps it 2026-10-28 13:59:38 -03:00
SUPPORT.md feat(forge): declare and publish to GitHub 2026-09-15 02:43:48 -03:00

Español · Українська

F5M / I2P Reseed

I2P reseed server distributing signed SU3 bootstrap bundles, with first-boot keys, gated endpoints and a liveness probe.

Stand with Ukraine Projectfile inside License Cosign ClamAV scanned PRs welcome REUSE compliance

Project status Last commit on GitHub Last commit on kiota.ch

Publish pipeline on GitHub Vulnerability audit on GitHub Dependency freshness on GitHub Analysis sweep on GitHub

Publish pipeline on kiota.ch Vulnerability audit on kiota.ch Dependency freshness on kiota.ch Analysis sweep on kiota.ch

Features

  • Abuse-resistant by default
  • Fresh seed bundles without restarts
  • Reverse-proxy ready
  • Self-bootstrapping signing keys

It also inherits the features of B19 / Ubuntu — see Features for the full list.

Quick Start

Save this as compose.yaml:

---
services:
  i2p-reseed:
    image: docker.io/damianbuho/f5m-i2p-reseed:latest
    ports:
      - "8080:8080"
    environment:
      F5M_I2P_RESEED_SIGNER: change-me@mail.i2p
    volumes:
      - i2p:/app/.i2p
      - i2p-reseed:/app/data
    cap_drop: [ALL]
    security_opt: [no-new-privileges:true]
    restart: unless-stopped
  i2p:
    image: docker.io/damianbuho/f5m-i2p:latest
    volumes:
      - i2p:/app/.i2p
    cap_drop: [ALL]
    security_opt: [no-new-privileges:true]
    restart: unless-stopped
volumes:
  i2p:
  i2p-reseed:

Then start it with docker compose up --detach.

What this provides

  • Service i2p-reseed — listens on 8080 (http) — I2P reseed server
  • Container image ghcr.io/damian-buho/f5m/i2p-reseed:latest
  • Container image damianbuho/f5m-i2p-reseed:latest

Installation

Pull the published container image:

Pull from GHCR — linux/amd64

docker pull ghcr.io/damian-buho/f5m/i2p-reseed:latest

Pull from DockerHub — linux/amd64

docker pull damianbuho/f5m-i2p-reseed:latest

Stable releases also publish X.Y.Z, X.Y and X tags — pull the precision you want to pin.

If the registries above are unreachable, pull from the origin instead:

Pull from Kiota — linux/amd64

docker pull kiota.ch/f5m/i2p-reseed:latest

Usage

Run the service in the background, publishing its ports:

From GHCR

docker run --detach --publish 8080:8080/tcp ghcr.io/damian-buho/f5m/i2p-reseed:latest

From DockerHub

docker run --detach --publish 8080:8080/tcp damianbuho/f5m-i2p-reseed:latest

Then check that it answers:

curl http://localhost:8080/i2pseeds.su3

Building

Clone the repository with its submodules:

git clone --recurse-submodules https://github.com/damian-buho/f5m-i2p-reseed i2p-reseed && cd i2p-reseed

Build the container image locally:

make container-build

Run make with no arguments for the default target; run make help to list every target.

For the local dev loop, make dev-container brings up the dev-container.

Pipeline entry points:

  • make analyzed — Run the heavy analysis sweep (mutation testing, benchmarks)
  • make audited — Re-scan the pinned dependencies and published artifacts for new vulnerabilities
  • make check-outdated — Report every pinned dependency that lags upstream
  • make release-is-ready — Run the pseudo-CI pipeline locally — build, test and scan, without publishing

Roadmap

See the Roadmap for what is planned next.

Policies

Related projects: F5M/Tor | F5M/I2P | F5M/Tor Snowflake | F5M/OONI Probe | F5M/Knot | F5M/Radicle | F5M/Solid | F5M/SSH

License

This project is licensed under MIT — see the LICENSE file for details.