Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nning/imgshr
Simple image gallery sharing web application.
https://github.com/nning/imgshr
gallery image-sharing rails ruby
Last synced: 3 months ago
JSON representation
Simple image gallery sharing web application.
- Host: GitHub
- URL: https://github.com/nning/imgshr
- Owner: nning
- License: agpl-3.0
- Created: 2014-07-28T20:23:08.000Z (over 10 years ago)
- Default Branch: main
- Last Pushed: 2024-10-23T02:03:42.000Z (3 months ago)
- Last Synced: 2024-10-23T02:50:58.511Z (3 months ago)
- Topics: gallery, image-sharing, rails, ruby
- Language: Ruby
- Size: 8.36 MB
- Stars: 7
- Watchers: 5
- Forks: 1
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- License: COPYING
Awesome Lists containing this project
README
# IMGSHR
[![Build Status](https://img.shields.io/github/actions/workflow/status/nning/imgshr/test.yml?branch=main)](https://github.com/nning/imgshr/actions?query=workflow%3A%22Run+tests%22)
[![Maintainability](https://img.shields.io/codeclimate/maintainability/nning/imgshr.svg)](https://codeclimate.com/github/nning/imgshr)
[![Coverage](https://img.shields.io/coveralls/nning/imgshr/master.svg)](https://coveralls.io/r/nning/imgshr)Simple image gallery sharing application. Galleries are creatable by everyone
and available with a token in the URL. Everyone with the correct URL can change
the gallery name, upload images and set their title. On creation, a boss token
is generated, which can be used to delete the whole gallery, single pictures or
make the gallery read-only later on.You can test this at https://imgshr.space!
## Features
* Galleries are shared via secret token in URL
(e.g. [https://imgshr.space/!Njg4NThi](https://imgshr.space/!Njg4NThi))
* Galleries are editable by everyone or -- when they are configured to be
read-only -- only with a boss token (URL)
* Pictures can be shared with token URLs to prevent giving away a gallery's
token
* EXIF data is read and shown
* Pictures can be rated
* Infinite scrolling on gallery page
* Lazy image loading
* Responsive design
* Tagging of images
* Filter by tags, date, rating
* Automatic labelling using self-hosted Convolutional Neural Network
(Inception v3 model)
* GitHub login for taking track of galleries and gallery administration
* Device token authentication for galleries
* Symmetric client-side encrypted galleries with sharable secret based on
libsodium (XSalsa20 for encryption, Poly1305 for authentication)
* "Responsive Images Service": Options like resize for inclusion in third-party
sites
* Transparent conversion of images (to avif or webp) if browser supports these
formats
* Milestones can be set by gallery and shown on images (e.g. for showing time
since a certain event on photos)## Development
nvm use
npm install -g yarn
yarn
bundle
foreman start## Deployment using docker
### Initial setup
Clone the source code:
git clone https://github.com/nning/imgshr.git
cd imgshrChange the MySQL root password and the admin login credentials in `.env` and
`config/settings.yml`.Then generate a Rails secret key and paste it into `.env`:
./deploy.sh run web rails secret
Now start up all services (in background):
./deploy.sh up -d
**The docker volumes `deploy_db`, `deploy_redis`, and `deploy_storage` hold the
production data; make sure, you do not lose them.**The log can be followed with:
./deploy.sh logs -f
### Update the code
./deploy.sh down
git pull
./deploy.sh up --build### traefik example
See `examples/traefik` as a starting point for a deployment with traefik and Let's Encrypt.
## License
Copyright © 2014-2023 [henning mueller](https://nning.io/), released
under the terms of [GNU AGPL 3.0](http://www.gnu.org/licenses/agpl-3.0.html).