Overview
Discover what makes Picsur powerful
Picsur is a lightweight, self‑hosted image hosting service that blends the simplicity of Imgur with the utility of Pastebin. From a developer’s standpoint it is a REST‑ful microservice that accepts multipart uploads, processes images on the fly, and exposes a small set of endpoints for CRUD operations. The application is written in **Go** (the core runtime) and leverages a modern web framework for routing, middleware, and request validation. Images are stored on the local filesystem (or any bind‑mounted volume) while metadata lives in a relational database managed by **PostgreSQL** or **SQLite**, depending on the deployment scenario. The service is fully container‑ready, with an official Docker image that supports both AMD64 and ARM64 architectures.
Language & Runtime
Web Framework
Database
Image Processing
Overview
Picsur is a lightweight, self‑hosted image hosting service that blends the simplicity of Imgur with the utility of Pastebin. From a developer’s standpoint it is a REST‑ful microservice that accepts multipart uploads, processes images on the fly, and exposes a small set of endpoints for CRUD operations. The application is written in Go (the core runtime) and leverages a modern web framework for routing, middleware, and request validation. Images are stored on the local filesystem (or any bind‑mounted volume) while metadata lives in a relational database managed by PostgreSQL or SQLite, depending on the deployment scenario. The service is fully container‑ready, with an official Docker image that supports both AMD64 and ARM64 architectures.
Technical Stack
- Language & Runtime: Go 1.22+ (compiled to a single binary)
- Web Framework:
net/httpwith custom router; middleware for CORS, authentication, and rate‑limiting - Database: PostgreSQL (recommended) or SQLite for lightweight setups; migrations handled via
golang-migrate - Image Processing:
github.com/disintegration/imagingandgolang.org/x/imagefor format conversions, resizing, rotating, etc. - Auth & RBAC: JWT‑based sessions with role‑based permissions (guest, user, admin)
- Docker: Multi‑stage build producing a minimal Alpine image; supports
docker runand Kubernetes deployments
Core Capabilities
- Upload API:
/api/uploadaccepts multipart files, validates size (≤16 MB by default), strips EXIF data unless overridden, and optionally keeps the original file. - Image Manipulation: Endpoints for resizing, rotating, flipping, greyscale, negative, and transparency stripping; all operations are chainable via query parameters.
- Expiration & Cleanup: Images can be tagged with a TTL; background worker deletes expired files and removes orphaned DB records.
- CORS & Security: Fine‑grained CORS policies, CSRF protection for form uploads, and rate limiting per IP/role.
- Webhooks & Extensibility: Although minimal, the API exposes hooks for post‑upload events; developers can implement custom webhooks by polling
/api/events.
Deployment & Infrastructure
Picsur is intentionally lightweight: a single binary, a small container image (~30 MB), and a relational database. It runs on any Linux distribution with Go runtime or Docker installed. For production, mount a dedicated volume for /data/uploads and configure PostgreSQL with proper WAL settings. The application can be scaled horizontally behind a load balancer; the stateless design ensures that any instance can serve any request. The built‑in cleanup worker can be adjusted via environment variables or a cron job for larger deployments.
Integration & Extensibility
Developers can integrate Picsur into existing workflows by consuming its JSON API. The ShareX endpoint (/api/sharex) allows automated uploads from desktop clients. Custom plugins are not yet supported, but the modular architecture (separate packages for auth, storage, and image processing) makes it straightforward to replace components—e.g., swap the local filesystem with an S3‑compatible object store. The RBAC system can be extended by adding new roles or permissions in the database, and custom middleware can enforce additional security policies.
Developer Experience
The codebase follows idiomatic Go conventions, with clear package boundaries and comprehensive unit tests. Documentation is kept in the README and a dedicated docs/ directory, including API reference and deployment guides. Community support is modest; the project’s GitHub issues page is the primary channel for feedback, and a Discord server provides quick help. Licensing under MIT allows unrestricted use in commercial or private projects.
Use Cases
- Internal Asset Management: Teams needing a quick, on‑premise image host for documentation or design mockups.
- Developer Tooling: Integrate with CI/CD pipelines to publish screenshots or build artifacts directly to a self‑hosted gallery.
- Educational Platforms: Schools can host student submissions without exposing them to public hosting services.
- Privacy‑First Applications: Services that must keep image data off third‑party clouds can embed Picsur as a backend.
Advantages
Picsur’s minimal footprint, combined with robust image processing and a straightforward API, makes it ideal for developers who need a self‑hosted solution without the overhead of larger frameworks. Its permissive MIT license, ARM64 support, and Docker readiness lower the barrier to entry, while the built‑in role system ensures that only authorized users can upload or manipulate images. Compared to alternatives like self-hosted Imgur clones or generic file servers, Picsur offers domain‑specific features (EXIF stripping, format conversion, TTL) that save developers time and reduce security risks.
Open SourceReady to get started?
Join the community and start self-hosting Picsur 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
Tags
Explore More Apps
Lichess
Free, real‑time online chess for all skill levels
cState
Fast, lightweight status pages for any project
SimpleLogin
Protect your identity with email aliases
Metabase
Easy open‑source business intelligence for everyone
Genea
Build and edit family trees in the browser
DreamFactory
Auto‑generate secure, documented APIs for your data