A self-hosted link archival tool
  • Go 76.3%
  • Vue 18%
  • TypeScript 3.1%
  • CSS 1.2%
  • Makefile 0.8%
  • Other 0.5%
Find a file
2026-01-12 21:18:29 +01:00
.readme docs: screenshots 2026-01-12 21:18:29 +01:00
.woodpecker chore: container deployment and updated readme 2026-01-12 21:08:33 +01:00
cmd/hako feat: enhance build configuration and implement versioning 2026-01-03 13:49:17 +01:00
docs docs: screenshots 2026-01-12 21:18:29 +01:00
internal chore: container deployment and updated readme 2026-01-12 21:08:33 +01:00
webapp chore: container deployment and updated readme 2026-01-12 21:08:33 +01:00
.gitignore feat: basic auth system 2026-01-03 13:16:12 +01:00
.goreleaser.yml chore: container deployment and updated readme 2026-01-12 21:08:33 +01:00
Containerfile chore: container deployment and updated readme 2026-01-12 21:08:33 +01:00
docker-compose.yml chore: container deployment and updated readme 2026-01-12 21:08:33 +01:00
go.mod deps: gotoolkit v0.2.4 2026-01-12 19:37:58 +01:00
go.sum chore: container deployment and updated readme 2026-01-12 21:08:33 +01:00
LICENSE initial boilerplate 2026-01-03 11:43:21 +01:00
Makefile chore: container deployment and updated readme 2026-01-12 21:08:33 +01:00
README.md docs: screenshots 2026-01-12 21:18:29 +01:00

Hako

Hako is a Golang service with HTTP and WebSocket capabilities.

Tech stack

  • Go
  • Vue 3
  • Bun

Screenshots

See docs/screenshots.

Running the Application

This project uses a Makefile for common tasks. Run make help to see all available commands.

Backend

To build and run the backend:

# Build the webapp (required for embedded frontend)
make build-webapp

# Run the server only (without building webapp)
make run-server

Frontend

The frontend is built with Vue.js and Vite, using Bun as the package manager:

# Run the webapp in development mode with hot-reload
make run-webapp

# Build the webapp for production
make build-webapp

Docker

Running with Docker Compose

To run Hako locally using Docker Compose:

# Build the docker binaries
make build-docker

# Start the container
docker compose up

# Or run in detached mode
docker compose up -d

The service will be available at http://localhost:8080.

Building Docker Images

To build Docker images using goreleaser (for production builds):

# Build Docker image locally (creates multi-arch images)
make build-docker

This will build Docker images for multiple architectures (amd64, arm64, armv7) using goreleaser.

Development

Development Commands

Common development tasks:

# Run linting (server and webapp)
make lint

# Run test suite
make test

# Format code
make format

# Clean build artifacts
make clean

# Clear dev data (keeps config.yaml)
make clean-devdata

Run make help to see all available commands.