NodehistJ is a comprehensive system for managing and accessing FidoNet nodelist data, including historical records, current nodelists, and node history differences. The system provides RESTful APIs to query and retrieve node information across different time periods and contexts.
The system consists of multiple microservices that work together to provide complete nodelist management:
- Historic Nodelists Service (
/historiccontext) - Stores and retrieves historical FidoNet nodelist data - Newest Nodelists Service (
/newestcontext) - Provides access to current nodelist data - History Diff Service (
/diffcontext) - Manages node history and difference tracking
- Any S3 storage – File storage for nodelist archives
- Redis – Caching for improved performance
- Redpanda (Kafka) – Message exchange for data synchronization
- PostgreSQL – Primary data store for all nodelist information
docker compose -f compose.yml up -ddocker compose -f compose-dev.yml up -ddocker compose -f compose-traefik.yml up -d| Variable | Description | Required | Default |
|---|---|---|---|
S3_USER |
MinIO user | Yes | – |
S3_PASSWORD |
MinIO password | Yes | – |
POSTGRES_PASSWORD |
PostgreSQL password | Yes | – |
KAFKA_BOOTSTRAP_SERVER |
Kafka address | No | redpanda:9092 |
REDIS_HOST |
Redis address | No | redis |
FTP_DOWNLOAD_FROM_YEAR |
Start year for downloads | No | 1984 |
DOMAIN |
Traefik domain (only for compose-traefik.yml) |
Yes (only for Traefik) | – |
- Stop services:
docker compose -f compose.yml down - View logs:
docker compose -f compose.yml logs -f - Rebuild images:
docker compose -f compose.yml build
- Docker and Docker Compose
- Java 25
- Gradle
./gradlew build./gradlew test# Start dependencies
docker compose -f compose-dev.yml up -d
# Build and run services
./gradlew :nodehistj-historic-nodelists:bootRun
./gradlew :nodehistj-newest-nodelists:bootRun
./gradlew :nodehistj-history-diff:bootRun