Files
Linking-Tool/README.md
2025-12-29 17:36:44 -06:00

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)