Apply rewrite rules on import
Add rewrite rule editor
Add authentication on the gear page
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.
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.
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
There are multiple ways to get images into Photoflow.
make sure the environment variables are set from above
$ cd /path/to/photoflow
$ flask import-image image1.jpg image2.jpg image3.jpg
The webinterface has an upload tab with a multi-upload field which also lets you create an album from the upload batch.
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.
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