π― Visualize Your Security Testing & Analysis Journey
Penflow is a mind-mapping platform designed specifically for cybersecurity professionals. it helps you visualize, track, and share your security testing methodologies while maintaining complete control over your sensitive data.




- πΊοΈ Interactive Mind Maps: Create and navigate complex security testing workflows with an intuitive visual interface
- π€ AI-Powered Assistance: Generate node suggestions and expand your methodology with integrated AI capabilities
- π Command Templates: Save and reuse CLI commands with variable substitution
- π Progress Tracking: Visualize testing progress and methodology coverage
- π Self-Hosted Option: Run entirely on your infrastructure
- π Encrypted Exports: AES-256-GCM encryption for secure sharing of Projects & Templates
- π Authentication/Authorization: Token-based authentication withresource-level access control
- π€ AI Privacy: Only non-sensitive data (node titles/descriptions) shared with AI - no commands or sensitive details
- π₯ Template Import: Load methodologies from GitHub or private repositories
- π€ Multiple Export Formats: CSV and encrypted formats
- π Legacy Migration: Import from previous Penflow versions
- π¦ Bulk Operations: Export multiple projects or templates at once
-
Frontend: React 19 + TypeScript + Vite
- TailwindCSS for styling
- XYFlow for mind map visualization
- Zustand for state management
-
Backend: FastAPI (Python 3.12)
- Neo4j graph database for storing relationships
- Redis
- Docker and Docker Compose
- Node.js 18+ and pnpm (for development)
- Python 3.12+ (for backend development)
- Clone the repository:
git clone https://github.com/rb-x/penflow.git
cd penflow
- Make the run script executable:
chmod +x run.sh
- Start the development environment:
./run.sh dev
This will automatically:
- Check for Docker and Docker Compose
- Create
.env.development
with secure defaults (Neo4j password:password
) - Start all services (Frontend, Backend, Neo4j, Redis)
- Display service URLs
- Access the application:
- Frontend: http://localhost:5173
- Backend API: http://localhost:8000
- API Documentation: http://localhost:8000/docs
- Neo4j Browser: http://localhost:7474
- Redis Commander: http://localhost:8081
./run.sh prod # Start production environment (with nginx)
./run.sh stop # Stop all containers
./run.sh clean # Stop and remove all containers and volumes
./run.sh dev
This starts all services with hot-reload enabled. Perfect for full-stack development.
If you prefer running services individually without Docker:
Frontend Development
cd frontend
pnpm install
pnpm dev # Runs on http://localhost:5173
Backend Development
cd backend
pipenv install --dev
pipenv shell
python main.py # Runs on http://localhost:8000
Note: For manual setup, you'll need Neo4j and Redis running locally:
- Neo4j: Download from neo4j.com
- Redis:
brew install redis
(macOS) orapt install redis
(Linux)
penflow/
βββ frontend/ # React TypeScript application
β βββ src/
β β βββ components/ # UI components
β β βββ pages/ # Route pages
β β βββ services/ # API services
β β βββ store/ # State management
β βββ package.json
βββ backend/ # FastAPI application
β βββ api/ # API endpoints
β βββ crud/ # Database operations
β βββ models/ # Data models
β βββ schemas/ # Pydantic schemas
β βββ services/ # Business logic
βββ docker-compose.*.yml
The run.sh
script handles all environment configuration automatically:
- Development (
./run.sh dev
): Creates.env.development
with secure defaults - Production (
./run.sh prod
): Creates.env.production
with strong passwords
To add AI features, simply edit the generated .env.development
or .env.production
file and add your GOOGLE_API_KEY
.
For production deployment:
- Run the production setup:
./run.sh prod
This will:
- Check for existing
.env.production
file - Generate secure passwords and secrets if needed
- Prompt you to update CORS origins for your domain
- Run security checklist before starting
- Start all services behind nginx proxy
- On first run, update
.env.production
:
- Set your domain in
BACKEND_CORS_ORIGINS
- Add your
GOOGLE_API_KEY
for AI features (optional) - Review all generated passwords
- Additional production steps:
- Whitelist trusted IP addresses through your WAF or firewall
- Disable the registration endpoint after setup by blocking /api/v1/auth/register at the reverse proxy level.
- Set up SSL/TLS certificates (Let's Encrypt recommended)
- Set up monitoring and logging
- Implement regular security updates
π§ Documentation is currently being updated for the new full-stack architecture
Penflow is perfect for:
- Penetration Testers: Track methodology and findings
- Security Analysts: Document investigation workflows
- Incident Responders: Map out response procedures
- Security Teams: Share knowledge and methodologies
- Researchers: Organize and visualize attack paths
Penflow is designed with security in mind:
- Privacy-First AI: AI features only access node titles and descriptions - never sensitive data like findings or variables
- Encrypted Exports: Secure sharing with AES-256-GCM encryption
- Zero Telemetry: No tracking or data collection
- Open Source: Full transparency and community-driven security
Created with β€οΈ in π«π· by Riadh BOUCHAHOUA (rb-x) & Ludovic COULON (LasCC)
Join the Penflow community and revolutionize your security testing workflow!