README.md
<b>Hey!</b> Stan here, if you've used FossFLOW and it's helped you, <b>I'd really appreciate if you could donate something small :)</b> I work full time, and finding the time to work on this project is challenging enough. If you've had a feature that I've implemented for you, or fixed a bug it'd be great if you could :) if not, that's not a problem, this software will always remain free!
<b>Also!</b> If you haven't yet, please check out the underlying library this is built on by <a href="https://github.com/markmanx/isoflow">@markmanx</a> I truly stand on the shoulders of a giant here 🫡
<a href="https://www.buymeacoffee.com/stan.smith" target="_blank"></a>
Thanks,
-Stan
FossFLOW is a powerful, open-source Progressive Web App (PWA) for creating beautiful isometric diagrams. Built with React and the <a href="https://github.com/markmanx/isoflow">Isoflow</a> (Now forked and published to NPM as fossflow) library, it runs entirely in your browser with offline support.
# Using Docker Compose (recommended - includes persistent storage)
docker compose up
# Or run directly from Docker Hub with persistent storage
docker run -p 80:80 -v $(pwd)/diagrams:/data/diagrams stnsmith/fossflow:latest
Server storage is enabled by default in Docker. Your diagrams will be saved to ./diagrams on the host.
To disable server storage, set ENABLE_SERVER_STORAGE=false:
docker run -p 80:80 -e ENABLE_SERVER_STORAGE=false stnsmith/fossflow:latest
Protect your FossFLOW instance with HTTP Basic Auth:
# With Docker Compose
HTTP_AUTH_USER=admin HTTP_AUTH_PASSWORD=secret docker compose up
# Or with docker run
docker run -p 80:80 \
-e HTTP_AUTH_USER=admin \
-e HTTP_AUTH_PASSWORD=secret \
stnsmith/fossflow:latest
Note: Both variables must be set to enable authentication. If either is empty, the app is accessible without login.
# Clone the repository
git clone https://github.com/stan-smith/FossFLOW
cd FossFLOW
# Install dependencies
npm install
# Build the library (required first time)
npm run build:lib
# Start development server
npm run dev
Open http://localhost:3000 in your browser.
This is a monorepo containing two packages:
packages/fossflow-lib - React component library for drawing network diagrams (built with Webpack)packages/fossflow-app - Progressive Web App which wraps the lib and presents it (built with RSBuild)# Development
npm run dev # Start app development server
npm run dev:lib # Watch mode for library development
# Building
npm run build # Build both library and app
npm run build:lib # Build library only
npm run build:app # Build app only
# Testing & Linting
npm test # Run unit tests
npm run lint # Check for linting errors
# E2E Tests (Selenium)
cd e2e-tests
./run-tests.sh # Run end-to-end tests (requires Docker & Python)
# Publishing
npm run publish:lib # Publish library to npm
Add Items:
Connect Items:
Save Your Work:
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
MIT