A minimal and self-updating Docker container for i2pd-exporter.
- Base Image:
alpine:latest - Architecture:
amd64,arm64 - Size: ~13MB (uncompressed)
- User:
exporter(running as non-root)
This repository uses an automated CI/CD pipeline that runs daily to ensure the container is always up-to-date with the latest updates.
- Application Version: Builds over the latest release tag of Jercik/i2pd-exporter.
- Base System: Tracks updates for critical Alpine packages only:
rustcargoopenssl-devpkgconflibgcc
If any of these components change, the image is automatically rebuilt and pushed.
This image requires a running i2pd instance with i2pcontrol enabled.
For full configuration options (environment variables and flags), please refer to the Original Repository Documentation.
Important
Protocol Scheme: Match your i2pd configuration. If your control port (7650) uses standard HTTP, use http://127.0.0.1:7650. If it uses HTTPS, you might need to add the --i2pcontrol-tls-insecure flag.
You need to enable the I2PControl interface in your i2pd.conf. See the i2pd documentation for details.
Example i2pd.conf snippet:
[i2pcontrol]
enabled = true
address = 127.0.0.1
port = 7650
password = <YOUR_PASSWORD># Note: --metrics-listen-addr 0.0.0.0:9600 allows external access.
# Use 127.0.0.1:9600 if Prometheus is on the same machine.
docker run -d \
--name i2pd-exporter \
--net host \
--restart unless-stopped \
ghcr.io/joan-morera/i2pd-exporter:latest \
--i2pcontrol-address http://127.0.0.1:7650 \
--i2pcontrol-password <YOUR_PASSWORD> \
--metrics-listen-addr 0.0.0.0:9600services:
i2pd-exporter:
image: ghcr.io/joan-morera/i2pd-exporter:latest
container_name: i2pd-exporter
# Use host networking to easily access local i2pd instance
network_mode: "host"
restart: unless-stopped
# Note: --metrics-listen-addr 0.0.0.0:9600 allows external access.
# Use 127.0.0.1:9600 if Prometheus is on the same machine.
command: >
--i2pcontrol-address http://127.0.0.1:7650
--i2pcontrol-password <YOUR_PASSWORD>
--metrics-listen-addr 0.0.0.0:9600The metrics are exposed on port 9600 by default.
- URL:
http://localhost:9600/metrics - Note: The endpoint requires the
X-Prometheus-Scrape-Timeout-Secondsheader. Accessing it via a standard browser will return400 Bad Request.
Manual Test:
curl -v -H "X-Prometheus-Scrape-Timeout-Seconds: 10" http://localhost:9600/metricsPrometheus Config:
scrape_configs:
- job_name: 'i2pd'
static_configs:
- targets: ['localhost:9600']