Services & Infrastructure
Public applications, classic internet protocols, APIs, event-driven services, and operational tooling running across my Linux VPS and personal workstation.
kyle@kgivler:~$ ls -la ./public-services/
Random Steam Game Stops library paralysis by choosing a game for you. PUBLIC CHECKING HTTPS
A fast random game picker for public Steam libraries. It resolves a Steam account, loads the user's owned games, applies exclusions and filters, and returns a random game without making the visitor wait through a slow picker.
Includes a public website, API endpoints, Steam data caching, rate limiting, and persistent user preferences.
HappyDiscard A modern implementation of the classic Discard protocol. PUBLIC CHECKING TCP :9
Accepts data over TCP port 9 and discards every byte without decoding, storing, logging, or echoing it.
nc discard.kgivler.com 9
HappyDaytime Connect to receive the current server time. PUBLIC CHECKING TCP :13
HappyDaytime is a modern implementation of the classic Daytime protocol. Each TCP connection receives a human-readable representation of the server's current date and time, then the connection closes.
nc daytime.kgivler.com 13
This is a real TCP Daytime service on its assigned port, not an HTTP endpoint.
HappyEcho A modern implementation of the classic Echo protocol. PUBLIC CHECKING TCP :7
HappyEcho accepts a TCP connection and sends received data back to the client. The service is intentionally simple: what you send is what you get back.
It exists as a practical networking exercise and as a working example of one of the original small Internet services.
HappyFinger Finger a Steam ID to receive a random game recommendation. PUBLIC CHECKING TCP :79
HappyFinger is a modern .NET implementation of the classic Finger protocol with a Steam-powered twist. Supply a Steam ID as the Finger username and the service will choose a random game from that public Steam library.
finger [email protected]
The Steam profile and owned-games list must be public. This is a real TCP Finger service listening on the protocol's assigned port, not an HTTP simulation.
HappyGopher A real Gopher server for text-first browsing. PUBLIC CHECKING TCP :70
HappyGopher serves hierarchical menus and text resources using the Gopher protocol. It is a lightweight alternative view of publishing content without the modern web stack.
The result is closer to navigating a remote text filesystem than browsing a typical website.
HappyGemini A small Gemini protocol server for the text-first web. PUBLIC CHECKING TLS :1965
A .NET 10 Gemini server with TLS, virtual hosts, static content, dynamic pages, and external plugin support.
HappyQOTD Classic Quote of the Day over TCP with a matching HTTP API. PUBLIC CHECKING TCP :17
HappyQOTD serves a single persisted quote for the current UTC day through the classic Quote of the Day protocol on TCP port 17 and through a companion HTTP API.
ncat qotd.kgivler.com 17
The TCP service and the API return the same quote of the day, which makes it useful both as a classic protocol demo and as a lightweight integration endpoint.
IT-Tools A public collection of browser-based developer utilities. PUBLIC CHECKING HTTPS
IT-Tools provides convenient encoders, decoders, converters, formatters, generators, networking helpers, and other small developer utilities from one browser-based interface.
The service is publicly available for now. Access may be restricted later if it attracts abusive traffic or excessive resource usage.
kyle@kgivler:~$ ls -la ./mission-control/
Mission Control Gateway Receives external events and publishes them internally. SYSTEM CHECKING HTTP
The Gateway accepts generic integration events and signed GitHub webhooks. Validated events are wrapped in a common envelope and published to NATS JetStream for downstream processing.
This keeps external HTTP concerns separate from storage, projections, and other event consumers.
Mission Control Archive Maintains a durable SQLite history of integration events. SYSTEM CHECKING SQLITE
Archive subscribes to the complete Mission Control event stream and writes each event to SQLite. It provides a durable history independent of specialized consumers.
Specialized projections can change without losing the original integration-event record.
Mission Control GitActivity Turns GitHub push events into a website-friendly feed. SYSTEM CHECKING JSON API
GitActivity consumes GitHub push events, filters them by allowed repositories and branches, and stores a sanitized commit projection in SQLite.
The public website reaches this data through kgivler.api, which keeps the GitActivity service key out of browser code.
NATS JetStream Provides durable event streaming for Mission Control. INTERNAL CHECKING NATS
NATS JetStream is the message broker behind Mission Control. It persists integration events and delivers them to durable consumers so Archive, GitActivity, and future services can process events independently.
Durable streams separate publishers from consumers while preserving events for reliable processing and recovery.
kyle@kgivler:~$ ls -la ./operations/
Mission Control Dashboard A private operations console for monitoring the JoyfulReaper service stack. PRIVATE CHECKING BLAZOR
An authenticated Blazor dashboard for viewing Mission Control events, service status, container health, protocol probes, archive statistics, and detailed event payloads.
The dashboard is authenticated; no administrative action is exposed from this public catalog.
What Should I Work On Today? Surfaces neglected projects and gives me something concrete to work on. PRIVATE CHECKING BLAZOR
A private work-planning application for tracking projects and todos, recording when work was last performed, and choosing a daily task based on neglect, energy, and effort.
ntfy Delivers push notifications from applications and infrastructure. OPERATIONS CHECKING HTTPS
A self-hosted notification service that accepts simple HTTP requests and delivers real-time push notifications to subscribed devices. It is used for application alerts, monitoring events, and operational notifications.
Beszel Lightweight host and container resource monitoring. PRIVATE CHECKING HTTP :8090
Beszel provides the container list, CPU, memory, network, uptime, and status information used to inspect this stack.
The dashboard is administrative and is not exposed as a public service.
Beszel Agent Collects host and container metrics for Beszel. CHECKING INTERNAL
The Beszel agent reads host and container statistics and reports them to the private Beszel dashboard.
Uptime Kuma Checks whether public services are actually reachable. PRIVATE CHECKING HTTP :3001
Uptime Kuma performs scheduled availability checks against selected websites, APIs, and network services. It provides a clearer answer than container status alone because a running process is not always a working service.
kyle@kgivler:~$ mission-control status --live
| Container | State | Memory | Memory % | CPU % | Restarts |
|---|---|---|---|---|---|
| Live snapshot data will appear here when JavaScript can reach Kgivler.Api. The service details above remain usable as a static fallback. | |||||
kyle@kgivler:~$ ./show_hosting_provider.sh
VPS hosting
Clanker and ScopeCreep, the two public VPS nodes behind many of the services shown here, run on GreenCloud VPS. I use them for application hosting, Docker services, monitoring, network experiments, and the public infrastructure behind a growing pile of projects.
They've worked well for the kind of small Linux VPS workloads I run, and their pricing has made it practical to keep multiple locations online without spending much on infrastructure.
The GreenCloud link is an affiliate link. I may earn a commission if you sign up through it.