PictShare
PictShare is a multi lingual, open source image hosting service with a simple resizing and upload API.
PictShare is a multi lingual, open source image hosting service with a simple resizing and upload API.
<p align="center">
<a href="" rel="noopener">
<img height=200px src="./css/imgs/logo/logo.svg" alt="PictShare logo">
</a>
</p>
<h1 align="center">PictShare v3</h1>
<h3 align="center">Caution: Pictshare v3 may not be fully compatible with previous Pictshare versions!</h3>
<h4 align="center">https://pictshare.net</h4>
<div align="center">

[](https://hub.docker.com/r/hascheksolutions/pictshare)

[](https://github.com/HaschekSolutions/pictshare/blob/master/LICENSE)

[](https://github.com/HaschekSolutions/pictshare)
#### Host your own `images` `gifs` `mp4s` `text bins` and stay in control
</div>
-----------------------------------------
<center>
<p align="center">
<img src="https://www.pictshare.net/39928d8239.gif" alt="PictShare demo">
</p>
Table of contents
=================
* [Quick Start](#quickstart)
* [Breaking changes in v3](#breaking-changes-in-v3)
* [Features](#features)
* [Installation](/rtfm/INSTALL.md)
* [Configuration](/rtfm/CONFIG.md)
* [Docker](/rtfm/DOCKER.md)
* [API](/rtfm/API.md)
* [Addons and integration](/rtfm/INTEGRATIONS.md)
* [Development roadmap](#development-roadmap)
---
## Quickstart
```bash
docker run -d -p 8080:80 --name=pictshare ghcr.io/hascheksolutions/pictshare
```
Then open http://localhost:8080 in your browser
## Breaking changes in v3
#### Dropped configuration options
- TITLE
- UPLOAD_FORM_LOCATION
- ALLOW_BLOATING
#### File name in URL
In Picthsare v3 we have changed the requirement for the image to be the last part of the URL. While with older PictShare Versions you could put the file name at any place of the URL, we now require the last part of the URL to be the file name.
- before: https://pictshare.net/roate-left/1234.png/800x600/
- now: https://pictshare.net/roate-left/600x600/1234.png
#### API changes
The API has been moved to a more consistant and RESTful design. The API documentation has been updated to reflect these changes.
## New Features
- Generate identicons based on strings in the URL [example1](https://pictshare.net/identicon/example1) [example2](https://pictshare.net/identicon/example2)
- Generate placeholder images by specifying the size in the URL. [example](https://pictshare.net/placeholder/555x250/color-white-blue)
- Added support for external storage
- [Encryption of files in external storage](/rtfm/ENCRYPTION.md)
- Added text hosting (like pastebin)
- Added Markdown rendering (converts .md files to HTML)
- Added Audio support (mp3, wav, ogg, flac, m4a with player)
- Added URL shortening
- Added [Albums](/rtfm/API.md#album): combine multiple uploads into a single immutable gallery URL
- Added "My Uploads" browser tab: localStorage-tracked list of files you uploaded from this browser, with per-item delete, copy URL, and bulk album creation
- Added WebP to images (and automatic conversion from jpg, png to webp if the requesting browser supports it)
- Massive code rework. Actually we designed it from the ground up to be more modular and easier to debug
# Features
- Selfhostable
- [Simple upload API](/rtfm/API.md)
- 100% file based - no database needed
- [Scalable hosting](/rtfm/SCALING.md)
- Many [Filters](/rtfm/IMAGEFILTERS.md) for images
- GIF to MP4 conversion
- JPG, PNG to WEBP conversion
- MP4 resizing
- PictShare removes all exif data so you can upload photos from your phone and all GPS tags and camera model info get wiped
- Change and resize your images and videos just by editing the URL
- Duplicates don't take up space. If the exact same file is uploaded twice, the second upload will link to the first
- Many [configuration options](/rtfm/CONFIG.md)
- Full control over your data. Delete images with individual and global delete codes
- Group files into immutable [albums](/rtfm/API.md#album) — share a single gallery URL instead of N individual links
- Browser-side "My Uploads" tab tracks what you uploaded (localStorage) so you can re-find, delete, or bundle into an album later
---
## Development roadmap
- [x] Duplicate detection
- [x] Write permission detection
- [x] Delete codes for every uploaded file
- [x] Upload via link/url
- [x] Upload via base64
- [ ] Autodestruct for every uploaded file
### Config options
Read [here](/rtfm/CONFIG.md) what those options do
- [x] ALT_FOLDER
- [x] URL (instead of FORCE_DOMAIN but mandatory)
- [x] LOG_UPLOADER
- [x] FFMPEG_BINARY
- [x] PNG_COMPRESSION
- [x] JPEG_COMPRESSION
- [x] WEBP_COMPRESSION
- [x] MASTER_DELETE_CODE
- [x] MASTER_DELETE_IP
- [x] UPLOAD_FORM_LOCATION
- [x] S3 Backend
- [x] UPLOAD_CODE
- [ ] UPLOAD_QUOTA
- [ ] LOW_PROFILE
- [ ] IMAGE_CHANGE_CODE
- [ ] MAX_RESIZED_IMAGES
- [ ] ALLOW_BLOATING
### Image hosting
- [x] Resizing
- [x] Filters
- [x] Gif to mp4 conversion
- [x] Upload of images
### Text file hosting
- [x] Upload of text files
- [x] Render template for text files
- [x] Raw data view
- [x] Downloadable
### URL shortening
- [ ] Upload of links to shorten
### MP4 hosting
- [x] Resizing
- [x] Preview image generation
- [x] Upload of videos
- [x] Automatic conversion if not mobile friendly or wrong encoder used
- [x] Render template for videos
---
This is a [HASCHEK SOLUTIONS](https://haschek.solutions) project
[](https://haschek.solutions)
Minimalistic web application designed for sending private and secure notes.
File sharing application based on unique and temporary links.
Modern file-uploader focusing on scalability and simplicity. It only depends on a S3 storage backend and hence scales horizontally without the need for additional databases or caches.
Zenko CloudServer, an open-source implementation of a server handling the Amazon S3 protocol.