π GraphDone v0.3.1-alpha
A major release featuring enhanced graph interactions, stable camera controls, and production-ready Docker deployment.
β¨ What's New
π― Enhanced Graph Experience
- Smart Camera System: Eliminated camera jumps, preserved zoom/pan during updates
- Intuitive Zoom Controls: Natural scroll behavior (up=zoom in, down=zoom out)
- Real-time Visual Updates: Immediate feedback for node/edge changes
- Modern UI Components: Refreshed modals, hover effects, and animations
π Production Infrastructure
- Secure Docker Setup: Internal networking, security hardening, health monitoring
- SQLite Authentication: Encrypted passwords, session management
- Enhanced Admin Tools: Database management, health diagnostics, cleanup utilities
- Reliable CI/CD: Automated testing and deployment pipeline
ποΈ System Architecture
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β GRAPHDONE SYSTEM β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Frontend Layer (Port 3127) β
β βββββββββββββββ βββββββββββββββ βββββββββββββββββββββββββββ β
β β React β β D3.js β β Apollo Client β β
β β Web App β β Graph β β GraphQL + WebSocket β β
β βββββββββββββββ βββββββββββββββ βββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β API Layer (Port 4127) β
β βββββββββββββββββββββββββββ ββββββββββββββββββββββββββββββββββββ
β β GraphQL API Server β β SQLite Authentication ββ
β β Apollo + Express β β bcrypt + session management ββ
β βββββββββββββββββββββββββββ ββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Data Layer (Internal Network) β
β βββββββββββββββ βββββββββββββββ ββββββββββββββββββββββββββββββββ
β β Neo4j β β Redis β β SQLite ββ
β β Graph DB β β Cache β β User Auth ββ
β β APOC+GDS β β Sessions β β File Storage ββ
β βββββββββββββββ βββββββββββββββ ββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Infrastructure Layer β
β βββββββββββββββ βββββββββββββββ ββββββββββββββββββββββββββββββββ
β β Docker β β Health β β Security ββ
β β Compose β β Monitor β β Non-root + Cap Dropping ββ
β βββββββββββββββ βββββββββββββββ ββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
π Real-time Graph Updates Flow
User Action β Web UI β GraphQL API β Neo4j Database
β β β β
Click Node Send Mutation Execute Update
Edit Request Cypher Graph
β β β β
UI Update β Response β Query Result β Database
β
Smart Update Check:
ββ Data Structure Changed? β Full Reinitialization (Camera Preserved)
ββ Properties Only? β Gentle Simulation Update
Result: Real-time visual feedback with stable camera position
π³ Docker Deployment Structure
Host System (localhost:3127)
β
βββ Docker Internal Network (bridge)
βββ graphdone-web (React App)
β βββ Vite Dev Server
β βββ Security: non-root user (1001:1001)
β βββ Health Check: curl localhost:3127
β
βββ graphdone-api (GraphQL Server)
β βββ Apollo Server + Express
β βββ Security: non-root user (1001:1001)
β βββ Health Check: curl localhost:4127/health
β
βββ graphdone-neo4j (Graph Database)
β βββ Neo4j 5.26 + APOC + GDS
β βββ Security: capability dropping, no external ports
β βββ Health Check: cypher-shell connection test
β
βββ graphdone-redis (Cache & Sessions)
βββ Redis 8 Alpine
βββ Security: read-only filesystem, user 999:999
βββ Health Check: redis-cli ping
Security Features Applied to All Containers:
β’ no-new-privileges:true
β’ Capability dropping (ALL removed, selective add)
β’ Internal networking only (except web UI)
β’ Health monitoring and auto-restart
β’ Centralized logging to volumes
π Authentication & Security
Password Security
- bcrypt encryption with salt rounds for all user passwords
- Session-based authentication with secure HTTP-only cookies
- JWT tokens for API authentication
- SQLite database for user storage (production-ready)
Container Security
- Non-root users in all containers (UIDs 999-1001)
- Capability dropping - remove ALL, add only necessary capabilities
- Read-only filesystems where possible (Redis)
- Internal networking - only web UI exposed to host
- Security scanning in CI pipeline
Network Security
- Internal Docker network isolates services
- No external database ports (7687, 6379 internal only)
- Single entry point through web UI (port 3127)
- Health checks ensure service availability
π³ Quick Start with Docker
Prerequisites
- Docker & Docker Compose installed
- Git for cloning the repository
One-Command Setup
git clone https://github.com/GraphDone/GraphDone-Core.git
cd GraphDone-Core
./startThat's it! The ./start script will:
- Set up the complete Docker environment
- Build all services with security hardening
- Launch GraphDone at http://localhost:3127
What Gets Deployed
- Web Application: React frontend with graph visualization
- GraphQL API: Node.js backend with real-time subscriptions
- Neo4j Database: Graph database with APOC/GDS plugins
- Redis Cache: Session storage and caching
- Security: Internal networking, non-root containers, health monitoring
Default Setup
- Create your account through the signup flow
- All data persists in Docker volumes
- Admin tools available at
/adminafter login
π Development Mode
For development with hot reloading:
./start --dev
# or
./tools/run.sh --docker-devπ§ Manual Setup (Advanced)
If you prefer manual control:
# 1. Environment Setup
./tools/setup.sh
# 2. Start Services
docker-compose -f deployment/docker-compose.dev.yml up -d
# 3. Access Application
open http://localhost:3127π System Requirements
Minimum
- CPU: 2 cores
- RAM: 4GB
- Disk: 2GB free space
- Ports: 3127 (web), 7474/7687 (Neo4j internal)
Recommended
- CPU: 4+ cores
- RAM: 8GB+
- Disk: 10GB+ for data growth
- Network: Fast connection for real-time features
π Health Monitoring
Check system status:
# Container health
docker ps
# Application health
curl http://localhost:3127/health
# Access admin dashboard
# Navigate to http://localhost:3127/adminπ§ Next Release Roadmap
v0.3.1-alpha (Current) v0.4.0-alpha (Next) v0.5.0+ (Future)
βββ Graph Interactions βββ Enhanced Node Editing βββ TLS/SSL Security
βββ Docker Security βββ Inline Connections βββ Production Deploy
βββ CI/CD Pipeline βββ Streamlined UX βββ AI Mini-Agents
βββ Camera Stability βββ Real-time Collaboration βββ In-App Documentation
Timeline: Q1 2025 Timeline: Q2 2025 Timeline: Q3-Q4 2025
Immediate Next Steps (v0.4.0-alpha)
- Enhanced Node Editing: Streamlined creation and connection workflows
- TLS/SSL Security: Production-grade encrypted connections
- AI Agent Integration: Mini-agents for intelligent graph assistance
- In-App Documentation: Interactive help with detailed diagrams
π Technical Stack Details
Frontend Technologies
- React 18 + TypeScript for modern UI development
- D3.js for interactive graph visualization with force simulation
- Tailwind CSS for consistent styling and responsive design
- Apollo Client for GraphQL integration with real-time subscriptions
- Vite for fast development and optimized builds
Backend Technologies
- Node.js + TypeScript for server-side development
- Apollo Server for GraphQL API with subscription support
- Express.js for HTTP server and middleware
- SQLite for authentication and user management
- bcrypt for secure password hashing
Database & Storage
- Neo4j 5.26 graph database with APOC and Graph Data Science plugins
- Redis 8 for session storage and application caching
- SQLite for user authentication and metadata
- Docker Volumes for persistent data storage
DevOps & Infrastructure
- Docker Compose for multi-container orchestration
- GitHub Actions for CI/CD pipeline
- Playwright for end-to-end testing
- Vitest for unit testing
- ESLint + TypeScript for code quality
π Issues & Support
Report issues at: https://github.com/GraphDone/GraphDone-Core/issues
For quick support:
- Check
docker psfor container health - Visit
/adminfor system diagnostics - Review logs with
docker logs <container-name>
Common Troubleshooting
- Port conflicts: Ensure ports 3127, 4127, 7687, 6379 are available
- Docker issues: Try
docker system pruneto clean up resources - Database connection: Check Neo4j health at
http://localhost:7474 - Authentication problems: Clear browser cookies and try again
Ready to reimagine project management? Run ./start and explore graph-native coordination! π