mirror of
https://github.com/go-i2p/go-jump-addr.git
synced 2025-06-07 09:03:36 -04:00
main
go-jump-addr
A library and server implementation for I2P "Jump" service functionality. This allows for human-readable domain names to be mapped to I2P destinations and provides search/discovery capabilities for I2P services.
Table of Contents
Features
- Human-readable Hostnames: Map memorable names to I2P destinations
- Search Functionality: Search across hostnames, descriptions, and tags
- Metadata Extraction: Automatically extracts metadata from I2P destinations
- Sync Support: Synchronize hostname data with other jump servers
- Web Interface: Clean, responsive web UI for managing entries
- RESTful API: Simple HTTP API for programmatic access
- Tag System: Organize entries with tags for better discovery
- Validation: Built-in validation for I2P addresses and hostnames
Installation
Requires Go 1.23.5 or later.
go install github.com/go-i2p/go-jump-addr/jumpd@latest
Or clone and build manually:
git clone https://github.com/go-i2p/go-jump-addr.git
cd go-jump-addr
make build
Usage
Running the Server
-
Ensure I2P router is running with SAM enabled on port 7656
-
Start the jump server:
./jumpserver
The server will be accessible via I2P at the address shown in the startup logs.
API Endpoints
GET /
- Homepage with hostname listingGET /search
- Search interfaceGET /add
- Add new hostname formPOST /add
- Submit new hostnameGET /all-hosts.txt
- Plain text list of all hostnames
Example: Adding a Hostname
curl -X POST http://localhost:7654/add \
-d "hostname=example.i2p" \
-d "destination=BASE64_DEST..." \
-d "type=service" \
-d "name=Example Service" \
-d "description=An example service" \
-d "tags=example,demo"
Development
Requirements:
- Go 1.23.5+
- Running I2P router with SAM enabled
- Make (optional, for build script)
Building from source:
make build
Testing:
go test ./...
Contributing
- Fork the repository
- Create a feature branch (
git checkout -b feature/improvement
) - Make changes with accompanying tests
- Run tests (
go test ./...
) - Commit changes (
git commit -am 'Add improvement'
) - Push to branch (
git push origin feature/improvement
) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Copyright (c) 2025 I2P For Go
Languages
Go
46%
HTML
29%
CSS
12.6%
JavaScript
12.1%
Makefile
0.3%