143 lines
4.4 KiB
Markdown
143 lines
4.4 KiB
Markdown
# Quad4 Linking Tool
|
|
|
|
A web linking tool for mapping relationships between entities.
|
|
|
|
<img src="showcase/linkingtool.png" alt="showcase image" width="900">
|
|
|
|
Desktop apps for Windows, macOS, and Linux are coming soon...
|
|
|
|
## Quick Start
|
|
|
|
### Using the Binary
|
|
|
|
1. Build the binary:
|
|
|
|
```sh
|
|
task build
|
|
```
|
|
|
|
2. Run the server:
|
|
|
|
```sh
|
|
./bin/linking-tool --port 8080
|
|
```
|
|
|
|
3. Open your browser at `http://localhost:8080`
|
|
|
|
### Using Docker
|
|
|
|
```sh
|
|
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:
|
|
|
|
```sh
|
|
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:
|
|
|
|
```sh
|
|
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
|
|
|
|
```sh
|
|
git clone https://git.quad4.io/quad4-software/linking-tool.git
|
|
cd linking-tool
|
|
pnpm install
|
|
```
|
|
|
|
### Task
|
|
|
|
The project uses [Task](https://taskfile.dev/) 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](mailto:team@quad4.io) for any issues or feedback.
|
|
|
|
## License
|
|
|
|
[BSD 3-Clause](LICENSE)
|