~martijnbraam/Photoflow

Photo management solution
Update installation instructions
Fix crash on public unlisted pictures
Remove old serving script

clone

read-only
https://git.sr.ht/~martijnbraam/Photoflow
read/write
git@git.sr.ht:~martijnbraam/Photoflow

You can also use your local clone with git send-email.

#Photoflow

Photoflow is a photo hosting solution for uploading and sharing pictures including the accompanying raw files and with the metadata extracted and displayed.

The user interface is somewhat inspired by google photos and the main photo gallery rendering is done by the great pig.js library.

Photoflow main screen

#Technical details

This is a Flask based Python webapplication. The application stores duplicates of the imported files in the datastore directory. The datastore is the datastore directory inside the source folder, symlink this to whereever you want to store the pictures. This is also used to store the generated thumbnails and the uploaded raw files.

#Installing

From the distribution package manager install exiftool and python3-waitress, these are the 
only external tools.
$ python3 -m venv venv
$ ./venv/bin/pip3 install -r requirements.txt
$ ./venv/bin/pip3 install waitress

$ FLASK_APP=photoflow ./venv/bin/flask db upgrade
$ FLASK_APP=photoflow ./venv/bin/flask create-user [username]

$ ./venv/bin/waitress-serve --port 5000 --call photoflow:create_app

#Importing images

There are multiple ways to get images into Photoflow.

#Through the shell

make sure the environment variables are set from above
$ cd /path/to/photoflow
$ flask import-image image1.jpg image2.jpg image3.jpg

#Through the webinterface

The webinterface has an upload tab with a multi-upload field which also lets you create an album from the upload batch.

#Through Darktable

It is possible to upload images directly through Darktable by using the Piwigo upload plugin.

Use the hostname for the Photoflow deployment as the server in the Piwigo settings. If the deployment does not have https then you'll need to prefix the hostname with http:// in the server field.

The album selection dialog will list all the albums in Photoflow and allows creating a new one for the current upload. Nested albums are not supported. When visibility is set to "everyone" the album will be public in Photoflow. All other options will make the album private.

#Service file

For running in a systemd distribution:

[Unit]
Description=Photoflow picture host

[Service]
Type=simple
ExecStart=/srv/photoflow/venv/bin/waitress-serve --port 5000 --call photoflow:create_app
Restart=on-failure
WorkingDirectory=/srv/photoflow

[Install]
WantedBy=multi-user.target