Overview
Discover what makes PictShare powerful
PictShare is a lightweight, self‑hosted file transfer service focused on images, GIFs, MP4 videos and text snippets. From a developer’s standpoint it is essentially a **file‑centric microservice** that exposes a simple HTTP API, stores data in the filesystem (no database required), and can be run inside Docker or any LAMP‑style stack. The core idea is to give you full ownership of the uploaded assets while still offering a rich set of image manipulation and URL‑shortening features.
Zero‑DB Storage
API‑First Design
Image & Video Processing
External Storage & Encryption
Overview
PictShare is a lightweight, self‑hosted file transfer service focused on images, GIFs, MP4 videos and text snippets. From a developer’s standpoint it is essentially a file‑centric microservice that exposes a simple HTTP API, stores data in the filesystem (no database required), and can be run inside Docker or any LAMP‑style stack. The core idea is to give you full ownership of the uploaded assets while still offering a rich set of image manipulation and URL‑shortening features.
Key Features
- Zero‑DB Storage – All metadata and files are kept in a structured directory hierarchy. This simplifies backups, replication, and makes the service trivially portable across environments.
- API‑First Design – A RESTful endpoint accepts
multipart/form-data, raw base64 blobs, or remote URLs. Each upload returns a JSON payload with public and delete tokens. - Image & Video Processing – Built‑in filters (resize, crop, rotate), format conversion (JPG/PNG → WebP, GIF → MP4), and EXIF stripping. These are powered by PHP’s GD or Imagick libraries.
- External Storage & Encryption – Optional back‑ends (S3, MinIO, GCS) with optional AES‑256 encryption of the payload before transit to storage.
- URL Shortening & Identicons – Handy vanity URLs for images and automatically generated placeholder/identicon services, useful for front‑end placeholders or user avatars.
- Duplicate Detection – SHA‑256 hashing of the payload; identical files are deduplicated to save space.
Technical Stack
| Layer | Technology | Notes |
|---|---|---|
| Runtime | PHP 8.2+ (CLI + FPM) | Leverages PHP’s native file handling and image libraries. |
| Web Server | Nginx (or Apache) | Configured to serve static assets and proxy API requests. |
| Storage | Local filesystem or S3‑compatible object store | Transparent to the application via a pluggable storage interface. |
| Containerization | Docker (official image on GHCR) | Minimal image (~30 MB) with all dependencies baked in. |
| CI/CD | GitHub Actions | Builds and pushes Docker images to GHCR on every push. |
| License | Apache 2.0 | Fully open source with no copyleft restrictions. |
Architecture
PictShare follows a single‑process, stateless design: every request is independent and can be served by any instance behind a load balancer. The application is split into three logical layers:
- HTTP Layer – Handles routing, authentication (via tokens), and request validation.
- Service Layer – Encapsulates business logic: file ingestion, duplicate checking, and storage delegation.
- Storage Layer – Abstracts the filesystem or external provider; responsible for generating unique keys, handling encryption, and ensuring atomic writes.
Because the service is stateless, horizontal scaling is trivial: just spin up more containers and point them at a shared storage backend. The file‑based nature also means you can use existing tools (rsync, tar, etc.) for backups.
Deployment & Infrastructure
- Docker – The official image exposes port 80 and can be run with a single
docker runcommand. Environment variables expose configuration (storage path, external bucket URL, encryption key, etc.). - Kubernetes – A
Deploymentwith aPersistentVolumeClaimfor local storage, or an S3‑compatible bucket mounted via CSI. - Bare Metal / VPS – Install PHP 8.2, Nginx/Apache, and place the repo in
/var/www/pictshare. Theconfig.phpfile exposes all options. - Scalability – Since there is no database, the bottleneck is the storage backend. Using a distributed object store (MinIO, Ceph) or a cloud provider’s S3 service removes this limitation.
Integration & Extensibility
- Webhooks – After a successful upload, PictShare can POST to a configurable endpoint with the file metadata (URL, MIME type, size).
- Plugins – The architecture allows for custom “filters” by extending the image‑processing pipeline. Developers can drop a PHP class into
src/Filtersand register it in the config. - SDKs – While no official SDK exists, the API is straightforward enough that any language with HTTP support (Python
requests, Node.jsaxios) can be used. - CLI – A small command‑line tool (
pictshare-cli) can be used to generate URLs, delete files, or pre‑populate the storage.
Developer Experience
- Configuration – All options live in a single
config.phpfile. No database migrations or schema changes are required. - Documentation – The repo contains concise Markdown docs for each feature (
API.md,CONFIG.md). The API spec is documented inline and via example requests. - Community – Active GitHub issues, a Slack channel for contributors, and frequent releases (every few weeks) keep the project responsive.
- Testing – Unit tests cover file ingestion, duplicate detection, and storage logic. CI runs tests on PHP 8.2.
Use Cases
| Scenario | Why PictShare fits |
|---|---|
| Internal asset sharing | Zero‑DB, full ownership; easy to host on a private network. |
| Developer tooling | API for CI/CD pipelines to upload build artifacts or screenshots. |
| **Static site image |
Open SourceReady to get started?
Join the community and start self-hosting PictShare 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
Flyimg
On‑Demand Image Resizing and Compression Service
Evidence
Generate BI reports from SQL and markdown
SHKeeper
Self-hosted crypto payment processor without fees
Plane
Open‑source project management for teams
CloudBeaver
Web‑based database manager for teams
AppFlowy
AI-powered workspace for notes, projects, and wikis