headscale-client-go

module
v0.7.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 21, 2026 License: MIT

README

headscale-cleint-go Logo

Headscale Client Go

A Go client for the Headscale HTTP API.

Go Reference Go Report Card

Features

  • Manage API Keys: List, create, expire, and delete API keys.
  • Manage Nodes: List, get, register, delete, expire, rename, tag, update user, and backfill IPs for nodes.
  • Manage Users: List, create, delete, and rename users.
  • Manage Policies: Get and update policy documents.
  • Manage Pre-Auth Keys: List, create, and expire pre-auth keys.
  • Customizable HTTP client, user agent, and logger support.
  • Idiomatic Go API with context support.

Installation

Requires Go 1.26+ and Headscale v0.28.0 & above.

go get github.com/hibare/headscale-client-go

Usage

See the examples/ directory for usage examples.

API Overview

The client exposes resource interfaces for each Headscale API resource:

  • client.APIKeys() – Manage API keys
  • client.Nodes() – Manage nodes
  • client.Users() – Manage users
  • client.Policy() – Manage policy
  • client.PreAuthKeys() – Manage pre-auth keys

Each resource provides methods for CRUD and management operations. See pkg.go.dev for full API documentation.


Development & Contributing

  • Run tests:

    make test
    
  • Lint:

    make install-golangci-lint
    golangci-lint run
    
  • Pre-commit hooks:

    make install-pre-commit
    pre-commit run --all-files
    
  • Formatting:

    go fmt ./...
    

Contributions are welcome! Please open issues or pull requests.


License

This project is licensed under the MIT License. See LICENSE for details.


Directories

Path Synopsis
Package logger provides a logger for the Headscale client.
Package logger provides a logger for the Headscale client.
Package requests provides a HTTP client for the Headscale API.
Package requests provides a HTTP client for the Headscale API.
Package utils provides utility functions for the Headscale client.
Package utils provides utility functions for the Headscale client.
v1
apikeys
Package apikeys provides a client for managing API keys in Headscale.
Package apikeys provides a client for managing API keys in Headscale.
client
Package client provides a Headscale client for the Headscale API.
Package client provides a Headscale client for the Headscale API.
nodes
Package nodes provides a client for managing nodes in Headscale.
Package nodes provides a client for managing nodes in Headscale.
policy
Package policy provides a client for managing policies in Headscale.
Package policy provides a client for managing policies in Headscale.
preauthkeys
Package preauthkeys provides a client for managing pre-auth keys in Headscale.
Package preauthkeys provides a client for managing pre-auth keys in Headscale.
users
Package users provides a client for managing users in Headscale.
Package users provides a client for managing users in Headscale.
Package versions provides types for the Headscale API.
Package versions provides types for the Headscale API.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL