gregordr / ImageStore

Open source google photos alternative!
https://gregordr.github.io/ImageStore/
Apache License 2.0
700 stars 33 forks source link
album images labelers media photo photos storage

ImageStore

ImageStore is a self-hosted photo gallery, that makes Google Photos users feel right at home.

Features:

Online demo

This should give you a feeling of how everything works with images of cats. The demo is not very up to date or fast, but you can use it to see if you like the UI in general.

To upload your own images and use all features, you will need to self-host.

preview

Installation instructions:

Docker prebuilt images

Requirements:

Download the docker-compose.yml: wget https://raw.githubusercontent.com/gregordr/ImageStore/main/docker-compose.yml.

Run docker-compose up. If you want any optional modules, use --profile module to add them. Check below for a list of modules and explanations!

Example: docker-compose --profile search --profile face --profile import up.

Go to http://localhost:3000. You can edit the used port in the dockerfile.

You can update to the newest version with docker-compose pull. Again, use --profile module if you also want to update a module.

Last, if you want to run the dev-branch, do TAG=:test docker-compose up.

Docker build images yourself

Requirements:

If you want to build yourself, then clone this repo and run docker-compose -f docker-compose-build.yml up. Again, you can use --profile to add features.

Without docker

Requires a distribution with any of the four following packaging systems: pacman, yum, apt, apk and either systemd or OpenRC.

git clone https://github.com/gregordr/ImageStore
cd CLI-Install

If you're using systemd (most distros):

sudo ./install-systemd.sh

If you're using OpenRC (e.g. Artix, Void, Alpine; Gentoo is not supported – see above):

sudo ./install-openrc.sh If you are using doas, please use su -c instead.

This will install and configure everything as needed in order to host ImageStore. PostgreSQL 13 (most Debian/Ubuntu based distros), on other distros it'll most likely be PostgreSQL 14, Nodejs and nginx will be installed. By default it hosts over port 8080. If it is already in use, it will ask for an alternate port. The created database user is seeded with a random 16 character string, so there is no default password to worry about.

The Imagestore service by default will start on boot. To stop Imagestore, on systemd run sudo systemctl stop ImageStoreFRONT.service; sudo systemctl stop ImageStoreBACK.service;

on OpenRC run: sudo rc-service ImageStoreFRONT stop && sudo rc-service ImageStoreBACK stop

To prevent the service from starting on boot, run sudo systemctl disable ImageStoreFRONT.service; sudo systemctl disable ImageStoreBACK.service;

on OpenRC run:

sudo rc-update disable ImageStoreFRONT && sudo rc-update disable ImageStoreBACK

Notes for raspberry Pi:

Incase you get an error with the backend saying unreachable code, you might have to run the following commands:

wget http://ftp.ch.debian.org/debian/pool/main/libs/libseccomp/libseccomp2_2.5.1-1_armhf.deb
sha256sum libseccomp2_2.5.1-1_armhf.deb
# CONFIRM THAT THE OUTPUT MATCHES THE FOLLOWING LINE BEFORE YOU RUN THE LAST COMMAND:
# 7a4d09eea20f7e17a416825ae2be06ca08b9cb5072566045c545c74192e6fcca  libseccomp2_2.5.1-1_armhf.deb
sudo dpkg -i libseccomp2_2.5.1-1_armhf.deb

List of modules:

These are the currently avaialable modules, or add-ons.

Feel free to open an issue if you want to see any new features.

If you would like to implement a feature, please create a PR to the test branch.