ab39ddca15aa0ade1c7bb65833a6b862784cb9de
Quad4 Linking Tool
A web linking tool for mapping relationships between entities.
Desktop apps for Windows, macOS, and Linux are coming soon...
Quick Start
Using the Binary
- Build the binary:
task build
- Run the server:
./bin/linking-tool --port 8080
- Open your browser at
http://localhost:8080
Using Docker
docker run -p 8080:8080 git.quad4.io/quad4-software/linking-tool
Then open your browser at http://localhost:8080
Features
- Interactive graph visualization
- Multiple entity types (person, email, phone, address, domain, org, IP, social)
- Auto-save to IndexedDB
- Import/Export JSON
- Share link via base64 for smaller graphs
- Undo/Redo support
- PWA support (installable, offline-capable)
- Native desktop app support (via Wails)
- Single-binary lightweight web server
- Support for 32-bit and 64-bit architectures (runs on old Raspberry Pi Zero W)
Installation Options
Self-Hosted Web Server
The easiest way to self-host is using the single binary:
task build
./bin/linking-tool --port 8080
The binary will be located in bin/ after building.
Desktop Application
Build the desktop application for your platform:
task desktop-build
The binary will be located in bin/ after building.
Development
Prerequisites
- Go
1.25.5 - Node.js
- pnpm
- Wails (for desktop app development)
Setup
git clone https://git.quad4.io/quad4-software/linking-tool.git
cd linking-tool
pnpm install
Task
The project uses Task for all development tasks.
| Task | Description |
|---------------------|-------------------------------------------|
| default | Show available tasks |
| dev | Run development servers (Go & SvelteKit) |
| build | Build the single binary web server |
| build:frontend | Build frontend only |
| build:backend | Build backend binary only |
| package | Package the application |
| release | Build binaries for all platforms |
| build-linux-amd64 | Build Linux AMD64 binary |
| build-linux-arm64 | Build Linux ARM64 binary |
| build-linux-armv6 | Build Linux ARMv6 binary |
| build-linux-armv7 | Build Linux ARMv7 binary |
| build-windows-amd64 | Build Windows AMD64 binary |
| build-darwin-amd64 | Build Darwin AMD64 binary |
| build-darwin-arm64 | Build Darwin ARM64 binary |
| build-freebsd-amd64 | Build FreeBSD AMD64 binary |
| docker-build | Build Docker image |
| docker-run | Run Docker container |
| docker-builder | Build and extract binaries using Docker |
| podman-build | Build Podman image |
| podman-run | Run Podman container |
| podman | Build and run Podman container |
| desktop-build | Build desktop application |
| desktop-linux | Build desktop application for Linux |
| desktop-windows | Build desktop application for Windows |
| desktop-darwin | Build desktop application for Darwin |
| desktop-dev | Run desktop app in development mode |
| clean | Clean build artifacts |
| setup | Setup development environment |
| install | Install dependencies |
| install:ci | Install dependencies for CI (frozen lock) |
| preview | Preview production build |
| check | Run type checking |
| lint | Run linter |
| format | Format code |
| version:minor | Bump minor version in package.json |
| version:major | Bump major version in package.json |
example: task dev
you might to set alias alias task=`go-task`
Contributing
Send us an email at team@quad4.io for any issues or feedback.
License
Description
A client-side web linking tool for mapping relationships between entities.
https://linking.quad4.io/
Readme
BSD-3-Clause
1.5 MiB