A professional, production-ready P2P network visualization platform for cryptocurrency blockchains. Monitor your network's health, discover nodes worldwide, and provide transparency to your community.
🚀 Fork-Ready | ⚡ Real-time Updates | 🌍 Global Node Discovery | 🎨 Fully Customizable
- Real-time Node Discovery: Bitcoin P2P protocol crawler with recursive peer discovery from DNS seeds
- Interactive Geolocation Map: Leaflet-powered map with clustering, filtering, and node details
- Performance Metrics: Node tiers (Diamond/Gold/Silver/Bronze) based on uptime, latency, and reliability
- Node Verification: Prove node ownership via message signing, DNS TXT records, or user agent tags
- Operator Profiles: Custom branding with avatars, descriptions, and social links for verified nodes
- Dingocoin Network: nodes.dingocoin.org (example deployment)
📖 New users: See docs/GETTING_STARTED.md for complete guide!
# 1. Clone repository
git clone https://github.com/RaxTzu/AtlasP2P.git
cd AtlasP2P
# 2. Choose deployment mode:
# Option A: Local Docker (Full Stack - Recommended)
make setup-docker # Creates .env from template
make docker-dev # Starts PostgreSQL + Supabase + Web + Crawler
# Option B: Cloud Supabase (Production-Ready)
make setup-cloud # Creates .env from template
# Edit .env with your Supabase Cloud credentials
make cloud-dev # Starts Web + Crawler onlyWhat just happened?
make setup-dockercopied.env.docker.example→.envmake setup-dockercopiedproject.config.yaml.example→project.config.yaml- Both files are gitignored for upstream development
Forking? Use make setup-fork for guided fork setup!
- Customize
config/project.config.yamlfor your blockchain - Commit with
git add -f config/project.config.yaml - See FORKING.md for complete instructions
Access locally:
- Web App: http://localhost:4000
- Supabase Studio: http://localhost:4022 (Docker mode only)
- API: http://localhost:4020 (Docker mode only)
# 1. Configure domain in .env
DOMAIN=nodes.yourcoin.org
ACME_EMAIL=admin@yourcoin.org
# 2. Deploy with auto-SSL
make prodAccess: https://nodes.yourcoin.org (Caddy handles SSL certificates automatically)
Frontend:
- Next.js 16 - React framework with App Router
- React 19 - UI library
- TypeScript - Type safety
- Tailwind CSS 4 - Styling
- Leaflet + Leaflet.markercluster - Interactive maps
- Recharts - Charts and statistics
- Zustand - State management
Backend:
- Supabase - PostgreSQL database, REST API, Authentication, Real-time subscriptions
- PostgREST - Auto-generated REST API from database schema
- Kong - API Gateway for request routing
Crawler:
- Python 3.12 with asyncio - Bitcoin P2P protocol implementation
- MaxMind GeoIP2 - IP geolocation
- Supabase Python Client - Database integration
Infrastructure:
- Docker Compose - Multi-container orchestration
- Caddy - Reverse proxy with automatic HTTPS
- Turborepo - Monorepo build system
AtlasP2P is designed to be forked! Deploy a node map for ANY Bitcoin-derived cryptocurrency in minutes.
1. Edit Configuration (config/project.config.yaml):
chain: yourcoin
chainConfig:
name: YourCoin
ticker: YOUR
p2pPort: 8333
magicBytes: "f9beb4d9" # Your chain's magic bytes
dnsSeeds:
- seed.yourcoin.org2. Replace Logos (apps/web/public/logos/):
- Use the provided
TEMPLATE-*.svgfiles as guides - Replace with your coin's branding (PNG or SVG)
- Update paths in
project.config.yaml
3. Deploy!
make prodKeep Your Fork Updated:
make sync-upstream # Pull latest improvements from AtlasP2PSee Complete Forking Guide for detailed instructions.
📘 Complete Documentation - GitHub Pages
Quick Links:
- Forking Guide ⭐ Start here to fork for your cryptocurrency
- Configuration Reference - Complete config options
- API Reference - Public API endpoints
- Deployment Guide - Docker, Kubernetes, AWS, VPS
- Crawler Implementation - P2P crawler details
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Run make lint && make typecheck && make build before submitting.
Built by: RaxTzu Team
Inspired by:
- Bitnodes.io - Node discovery methodology and API structure
- Reference implementation by Addy Yeow
- We adapted the P2P crawler approach and API compatibility
Core Technologies:
- Next.js by Vercel - React framework
- Supabase - Open-source Firebase alternative
- Leaflet - Open-source interactive maps
- PostgreSQL - Database
- Python - Crawler implementation
- Docker - Containerization
- MaxMind GeoLite2 - Geolocation data
Map Tiles:
- OpenStreetMap - Map data contributors
- CARTO - Map tile provider
Bitcoin P2P Protocol:
- Based on Bitcoin Core protocol specification
- Adapted for Bitcoin-derived chains (Dogecoin, Litecoin, Dingocoin, etc.)
Dependencies:
- See package.json for complete frontend dependencies
- See requirements.txt for complete Python dependencies
MIT License - see LICENSE file for details.
Copyright (c) 2025 RaxTzu Team
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
