Overview
Discover what makes Local Content Share powerful
Local Content Share is a lightweight, self‑hosted paste‑bin style service that lets developers and homelab operators expose text snippets, files, and URLs to any device on the same LAN without requiring client‑side software or authentication. The application is written in **Go**, with a single compiled binary that serves both the API and a bundled Vue‑based front end. All state is persisted in a local SQLite database stored under `/app/data`, which is mounted from the host to ensure durability across container restarts. The project ships a multi‑arch Docker image (x86‑64 & ARM64) and a GitHub Actions workflow that builds binaries for all supported platforms, making it trivial to deploy on Raspberry Pi, NAS devices, or cloud‑based VMs.
Text snippets
File uploads
Link storage
SSE push
Overview
Local Content Share is a lightweight, self‑hosted paste‑bin style service that lets developers and homelab operators expose text snippets, files, and URLs to any device on the same LAN without requiring client‑side software or authentication. The application is written in Go, with a single compiled binary that serves both the API and a bundled Vue‑based front end. All state is persisted in a local SQLite database stored under /app/data, which is mounted from the host to ensure durability across container restarts. The project ships a multi‑arch Docker image (x86‑64 & ARM64) and a GitHub Actions workflow that builds binaries for all supported platforms, making it trivial to deploy on Raspberry Pi, NAS devices, or cloud‑based VMs.
Key Features
- Text snippets: Create, rename, edit, and delete plain‑text notes. Markdown rendering is built into the UI for quick preview.
- File uploads: Drag‑and‑drop multi‑file support, with configurable TTLs (never, 1 h, 4 h, 1 d, or custom). Files are stored on the host’s filesystem under
/app/data/files. - Link storage: A dedicated “Links” section that lists URLs in LIFO order.
- SSE push: Server‑Sent Events notify all connected browsers when a snippet or file is added, edited, or removed, enabling real‑time collaboration.
- PWA & responsive UI: The Vue front end is a progressive web app, automatically themed with Catppuccin light/dark modes and optimized for mobile browsers.
- No authentication: The service intentionally omits auth; developers are expected to front it with a reverse proxy or VPN if exposing beyond the local network.
Technical Stack
| Layer | Technology |
|---|---|
| Runtime | Go 1.22 (compiled static binary) |
| Web framework | Standard net/http + gorilla/mux for routing |
| Template engine | Vue 3 (single‑page app) served as static assets |
| Data persistence | SQLite (github.com/mattn/go-sqlite3) for snippets and metadata |
| File storage | Local filesystem under a configurable data directory |
| Real‑time updates | Server‑Sent Events (EventSource) on /events endpoint |
| Containerization | Dockerfile builds a multi‑arch image; uses scratch base for minimal size |
| CI/CD | GitHub Actions publish binaries & Docker images on every release |
Core Capabilities
- RESTful API: Endpoints for CRUD operations on snippets (
/api/snippets), files (/api/files), and links (/api/links). The API returns JSON, making it easy to write custom clients or scripts. - SSE endpoint:
/api/eventsstreams JSON payloads like{type:"created",id:123}. Clients can subscribe withnew EventSource('/api/events'). - Expiration logic: TTL values are stored in the database; a background goroutine scans and deletes expired entries every minute.
- Metadata: Each resource carries
created_at,updated_at, and optionalexpires_at. File sizes are recorded for quota management.
Deployment & Infrastructure
- Self‑hosting: The service is designed to run behind a local reverse proxy (e.g., Nginx, Caddy) or directly on the host. No external dependencies are required.
- Scalability: SQLite limits concurrent writes, but for typical homelab usage (tens to low hundreds of requests per minute) performance is ample. For higher throughput, a lightweight external DB (PostgreSQL) could be swapped in by forking the repo.
- Containerization: The Docker image exposes port
8080. A simple volume mount (/app/data) guarantees persistence. ARM64 support makes it suitable for Raspberry Pi 4 or similar devices. - Resource footprint: Under 20 MB image size; runtime memory usage stays below 30 MiB when idle.
Integration & Extensibility
- Webhooks: Although not yet implemented, the SSE stream can be consumed by external services or custom webhooks via a lightweight adapter.
- Plugin system: No native plugin API, but the open‑source nature allows developers to fork and add features such as OAuth front‑ends or encrypted storage.
- Custom UI: The Vue source is exposed in the repository; developers can modify components or replace the front end with a custom SPA that consumes the same API.
Developer Experience
- Configuration: All settings are environment‑based (
PORT,DATA_DIR) or baked into the binary. The README provides a concise Docker‑one‑liner for quick starts. - Documentation: The repository includes API reference tables, usage examples, and a detailed “Tips & Notes” section covering edge cases (e.g., custom TTLs, file size limits).
- Community: The project is actively maintained on GitHub with CI workflows, issue tracking, and a small but responsive contributor base. The license is permissive (MIT), encouraging reuse.
Use Cases
| Scenario | Why Local Content Share fits |
|---|---|
| Team scratchpad | Quick sharing of notes or code snippets without email. |
| File drop zone | Collect logs, screenshots, or build artifacts from CI runners on the same LAN. |
| IoT data hub | Devices upload sensor readings or firmware updates to a central node. |
Open SourceReady to get started?
Join the community and start self-hosting Local Content Share today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
SimpleX Chat
Private messaging without identifiers
DavMail
Gateway for Exchange and Office 365 using POP/IMAP/SMTP
Wiki.js
Modern, lightweight wiki built on Node.js
pacebin
Minimalist self-hosted paste and file hosting service
MyFin
Personal finance platform for budgeting and tracking
Traefik
Dynamic reverse proxy and load balancer for microservices