Skip to content

Releases: kOlapsis/shm

Migrate to kOlapsis Github namespace

09 Mar 17:56

Choose a tag to compare

No change, simply migrate package

SHM v1.2.3

20 Jan 23:09

Choose a tag to compare

Delete instance

Is instance lost her identity.json file

SHM v1.2.1

29 Dec 22:08

Choose a tag to compare

Fix release

Bug on db application creation

πŸŽ‰ SHM v1.2.0 - Applications Management & GitHub Integration

21 Dec 15:05

Choose a tag to compare

Highlights

Applications as First-Class Entities

  • New applications table to group instances by product
  • Automatic URL-safe slug generation (My App β†’ my-app)
  • Transparent migration of existing data

GitHub Integration

  • Automatic GitHub stars capture (hourly refresh)
  • GITHUB_TOKEN support to avoid rate limiting (60 β†’ 5000 req/h)
  • Manual refresh via admin API

Public SVG Badges

  • /badge/{app}/instances - Active instances count
  • /badge/{app}/version - Most used version
  • /badge/{app}/metric/{name} - Aggregated metrics
  • /badge/{app}/combined - Combined stats
  • Shields.io flat-square style, customizable via query params

Dashboard Performance

  • Lazy loading for long instance lists
  • Server-side pagination with full-text search
  • Modular Alpine.js architecture (separate stores/components)

New Features

Feature Description
applications table Relational structure for app metadata
GitHub Stars Auto-fetch with 1h cache and background scheduler
Custom logo Configurable logo URL per application
Public SVG badges 4 badge types embeddable in your READMEs
Node.js SDK @btouchard/shm-sdk - Zero dependencies, Node 22+
Lazy loading Progressive instance loading (25/page)
Instance search Filter by app, version, environment

API Changes

New Endpoints

GET /api/v1/admin/applications
GET /api/v1/admin/applications/{slug}
PUT /api/v1/admin/applications/{slug}
POST /api/v1/admin/applications/{slug}/refresh-stars

GET /badge/{app}/instances
GET /badge/{app}/version
GET /badge/{app}/metric/{metric}
GET /badge/{app}/combined

Modifications

  • GET /api/v1/admin/instances now supports ?app=, ?q=, ?offset=, ?limit=
  • Instances now include app_slug in the response

Breaking Changes

None. Migration 002_applications.sql is additive and preserves all existing data.


Configuration

New optional environment variable:

GITHUB_TOKEN=ghp_xxx # For 5000 req/h instead of 60


Migration

Download the new migration

curl -sL https://raw.githubusercontent.com/btouchard/shm/main/migrations/002_applications.sql
-o migrations/002_applications.sql

Apply (migration is idempotent)

psql $DATABASE_URL -f migrations/002_applications.sql


Full Changelog: v1.1.0...v1.2.0

πŸŽ‰ SHM v1.1.0 - Dashboard, Graph & Rate Limit

17 Dec 23:22

Choose a tag to compare

✨ Highlights

  • Added rate limiting to protect endpoints.
  • Configurable report interval.
  • Dashboard improvements (usability and readability).

πŸ“š Internal Changes

  • Migrated to a clearer, testable hexagonal architecture.
  • Refactored handlers and updated documentation.

First version

16 Dec 21:00

Choose a tag to compare

SHM / Self-Hosted Metrics

Privacy-first, Agnostic Telemetry for Self-Hosted Software.
Collect usage stats, verify active instances, and understand your user base without spying on them.

When you distribute self-hosted software (on-premise), you fly blind. You don't know how many instances are running, which versions are active, or if your features are actually used.

SHM solves this with a lightweight, secure approach:

  1. Privacy First: Collects aggregate counters, never user content.
  2. Agnostic: Send any JSON payload. The dashboard adapts automatically.
  3. Secure: Every request is signed with an Ed25519 keypair generated on the client.
  4. Zero-Config Dashboard: Single Go binary with embedded UI. No frontend build required.

✨ Features

  • πŸ” Cryptographic Identity: Instances generate a unique ID and keypair. No spoofing possible.
  • πŸ“¦ Multi-App Support: Track multiple software products on a single SHM server.
  • 🎨 Dynamic Dashboard: Send {"pizzas_eaten": 10} and SHM automatically creates the KPI cards and table columns.
  • βš™οΈ Ops vs Business Separation: Automatically distinguishes between business metrics (KPIs) and system metrics (CPU, RAM, OS).
  • 🐳 Docker Native: Runs anywhere with a simple docker-compose.

⚑ Quick Start (Server)

Docker:

docker pull ghcr.io/btouchard/shm:latest

Get the server running in 30 seconds.

1. Create a compose.yml

services:
  shm:
    image: ghcr.io/btouchard/shm:latest # (Or build locally)
    ports:
      - "8080:8080"
    environment:
      - DATABASE_URL=postgres://user:pass@db:5432/shm?sslmode=disable
    depends_on:
      - db

  db:
    image: postgres:15-alpine
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: pass
      POSTGRES_DB: shm
    volumes:
      - shm_data:/var/lib/postgresql/data

volumes:
  shm_data:

2. Run it

docker compose up -d