Damselfly

Note: since i don't use this service anymore, this page might be not updated.

Damselfly is a digital asset management tool to manage huge collections of photos. Still testing, i love the concept.

Installation

Installing Damselfly can be done on bare-metal, but the dev does not support it, so i will show you both ways.

In general you can find more installation information here.

Common installation steps

Create a damselfly user and make it member of the photos group:

groupadd photos
useradd -d /data/daemons/damselfly -m -g photos damselfly

Since Damselfly uses INotify triggers, you need to increase defaults or it will be unable to monitor large collections of photos (see here).

Create the file /etc/sysctl.d/damselfly.conf:

fs.inotify.max_user_instances=524288

And for it to be applied without a reboot:

 sysctl -p /etc/sysctl.d/damselfly.conf

Bare Metal Installation (not recomended)

Non-containerized install instructions here

Download and decompress the release:

su - damselfly
wget https://github.com/Webreaper/Damselfly/releases/download/4.1.0/damselfly-server-linux-4.1.0.zip
mkdir damselfly
cd damselfly
unzip damselfly-server-linux-4.1.0.zip

(the release zip file requires a sub-folder to store neatly all files)

In order for Damselfly to work you need to install some dependencies, which can be found in the Docker file.

There you go:

emerge -s media-fonts/liberation-fonts dev-dotnet/libgdiplus media-gfx/dcraw media-libs/exiftool

The supposed libgmp1 dependency is satisfied by adding openmp useflag to GCC (see here) which should be enabled by default in Gentoo.

Podman installation

Create the following docker-compose.yml:

docker-compose.yml
version: "3.8"

name: damselfly
    
services:
  damselfly: 
    container_name: damselfly
    image: webreaper/damselfly
    ports:
      - 6363:6363/tcp
    volumes:
      - /data/daemons/damselfly/config:/config
      - /data/daemons/damselfly/thumbs:/thumbs
      - /data/Photos:/pictures 
    restart: unless-stopped

networks:
  damselfly-net: {}

And install it:

su - damselfly
podman compose pull

Reverse Proxy

Damselfly do not support sub-paths, so you must spin your own subdomain for it to work. Here is the relevant NGINX configuration file:

damselfly.conf
TBD

Startup

Bare Metal running

Start:

./Damselfly.Web /path/to/my/photos

You will need the usual script & /etc/local.d/damselfly.start script for automatic start on boot.

Podman running

Running is, as usual:

su - damselfly
podman compose up

To run at boot, add the following lines to your /etc/local.d/80-containers.start:

podman network create damselfly-net
su - damselfly -c "podman compose up -d"

and the following lines to /etc/local.d/80-containers.stop:

su - damselfly -c "podman compose down"