MCPSERV.CLUB
ybFeed

ybFeed

Self-Hosted

Sync micro‑feeds across machines with a secret link or PIN

Stale(53)
61stars
0views
Updated Nov 8, 2024
ybFeed screenshot

Overview

Discover what makes ybFeed powerful

`ybFeed` is a lightweight, self‑hosted micro‑feed service written in **Go** with a bundled Vue/React‑style single‑page UI. It is designed to sync small text or image snippets across multiple machines without relying on external services, making it ideal for high‑security environments such as VDIs or air‑gapped networks. From a developer’s standpoint, the project exposes a minimal yet powerful REST API for CRUD operations on feed items and authentication tokens, while keeping the entire state on a local filesystem.

Language

Front‑end

Persistence

Authentication

Overview

ybFeed is a lightweight, self‑hosted micro‑feed service written in Go with a bundled Vue/React‑style single‑page UI. It is designed to sync small text or image snippets across multiple machines without relying on external services, making it ideal for high‑security environments such as VDIs or air‑gapped networks. From a developer’s standpoint, the project exposes a minimal yet powerful REST API for CRUD operations on feed items and authentication tokens, while keeping the entire state on a local filesystem.

Technical Stack & Architecture

  • Language: Go 1.22+ – the core server and API are implemented in pure Go, leveraging the standard net/http library with a few lightweight middlewares for routing and CORS handling.
  • Front‑end: The UI is a single‑page application built with Vite and Vue 3 (or React, depending on the branch). The build process outputs static assets that are served directly by the Go server.
  • Persistence: Data is stored in a simple directory structure (config.json + sub‑folders per feed). Each feed contains JSON metadata and a binary blob for images, avoiding the need for a relational or NoSQL database.
  • Authentication: Sessions are cookie‑based; the server generates a secret link or 4‑digit PIN per feed, which is stored in clear text on disk. The cookie is set with a long expiration but browsers may truncate it, so the config file serves as a recovery fallback.

Core Capabilities

  • Feed CRUD: Create, read, update, delete items via JSON payloads. Items can be plain text or base64‑encoded images up to YBF_MAX_UPLOAD_SIZE (default 5 MB).
  • Sharing Mechanisms: Generate a secret URL that auto‑authenticates the user, or set a temporary PIN for manual entry. These tokens are exposed through simple API endpoints and can be integrated into scripts or custom clients.
  • Rate & Capacity Controls: Currently unimplemented, but the API is designed to accept middleware hooks for throttling or quota enforcement.
  • Webhook Hooks: While not built‑in, the server exposes a simple hook endpoint that can be wired to external services (e.g., Slack notifications when a new item is added).

Deployment & Infrastructure

ybFeed ships as a Docker image (ghcr.io/ybizeul/ybfeed:latest) and also supports local builds via a Makefile. The container exposes port 8080 by default and mounts a host directory for persistence (YBF_DATA_DIR). Because the application is single‑process and stateless beyond the local filesystem, it scales horizontally by running multiple instances behind a load balancer; however, each instance would need access to the same shared storage or you would have to implement a sync layer. For production, run behind an HTTPS reverse proxy (e.g., Nginx or Traefik) to satisfy the browser’s security constraints and to enforce TLS.

Integration & Extensibility

  • Plugin System: No explicit plugin API exists, but the modular Go code allows developers to fork and extend the api package with custom middleware or additional endpoints.
  • Webhooks & Automation: The simple API can be consumed by CI/CD pipelines, custom CLI tools, or browser extensions to push snippets programmatically.
  • Customization: The UI is open source; developers can replace the Vite/Vue build with any front‑end framework, or tweak CSS variables for branding.
  • Security Enhancements: The project is open to contributions that encrypt stored tokens, implement OAuth2 flows, or add rate limiting—features that can be merged via pull requests.

Developer Experience

  • Configuration: Environment variables (YBF_DATA_DIR, YBF_HTTP_PORT, etc.) control all runtime settings, making it easy to integrate into Docker Compose or Kubernetes manifests.
  • Documentation: The README covers installation, environment variables, and known caveats. While terse, it points to the source code for deeper understanding.
  • Community & Support: As a hobby project, community size is small but responsive; issues can be opened on GitHub and are typically addressed promptly. The codebase is cleanly organized, with a clear separation between API logic and UI assets.

Use Cases

  1. VDI Sync – Users on a virtual desktop can copy snippets from their local machine by posting to ybFeed and then retrieving them via the secret link on the VDI.
  2. Cross‑Device Note Taking – Developers can jot quick notes on a laptop and view them instantly on a tablet without cloud services.
  3. Internal Tooling – A lightweight pastebin for internal tooling or automation scripts that need to store transient data without exposing it externally.
  4. Educational Environments – In classrooms or labs where external paste services are blocked, ybFeed can act as a shared whiteboard for short messages or images.

Advantages

  • Zero‑External Dependencies – No database, CDN, or external auth provider; everything lives on the host filesystem.
  • Performance & Simplicity – Written in Go, it compiles to a single binary with minimal runtime overhead.
  • Licensing – The open‑source MIT license allows commercial use and modification without copyleft constraints.
  • Security Control – Developers can audit

Open SourceReady to get started?

Join the community and start self-hosting ybFeed today

Weekly Views

Loading...
Support Us
Most Popular

Infrastructure Supporter

$5/month

Keep our servers running and help us maintain the best directory for developers

Repository Health

Loading health data...

Information

Category
other
License
MIT
Stars
61
Technical Specs
Pricing
Open Source
Docker
Official
Supported OS
LinuxDocker
Author
ybizeul
ybizeul
Last Updated
Nov 8, 2024