diff --git a/.DS_Store b/.DS_Store index b0fa5755..038241b7 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/README.md b/README.md index 25d0eb12..ac2cc050 100644 --- a/README.md +++ b/README.md @@ -5,19 +5,23 @@ Damselfly is a server-based Digital Asset Management system. The goal of Damself ![Damselfly Screenshot](docs/Screenshot.png) +![Damselfly Screenshot](docs/Screenshot2.png) + ## Features * Server-based deployment, with a web UI, so the image library can be accessed via multiple devices without having to copy catalogues or other DBs to local device storage. * Focus on extremely fast performance - searching a 500,000-image catalogue returns results in around a second. * Full-text search with multi-phrase partial-word searches * Fast keyword tagging workflow addition, with non-destructive tagging (JPEG images are not re-encoded) -* Background indexing of images, so that the collection is automatically updated when new images are added quickly +* Background indexing of images, so that the collection is automatically and quickly updated when new images are added or updated * Background thumbnail generation -* Synology DSM/Photos compatibility mode to re-use the same thumbnails as your NAS +* Synology DSM/Photos compatibility mode to re-use exiting thumbnails generated by the indexing process * Selection basket for collecting images from search results to save locally and work within Digikam/PhotoShop/etc. * Download/export processing to watermark images ready for social media, or sending via Email etc. * Runs on Windows, Linux and OSX, and in Docker. -* Desktop Client for hosted site to allow closer native integration with client OS +* Electron.Net Desktop Client for hosted site to allow closer native integration with client OS + * Synchronise images from server basket select to local filesystem for editing + * Other integrations coming in future * Direct upload to Wordpress * Persistable named basket selections @@ -26,7 +30,36 @@ Damselfly is a server-based Digital Asset Management system. The goal of Damself * Direct upload to CMS platforms * Direct sharing to social media (Twitter, Facebook etc) * Support for selection and upload to Alamy Stock Image photo service -* Simple editing/manipulation +* Simple non-destructive editing/manipulation - cropping, colour adjustment etc +* Synchronisation of local images to the server +* If you have ideas for other features - let me know by raising an issue! + +## Installation + +The easiest way to install Damselfly is via Docker. + +``` +docker run \ + --name damselfly \ + --restart unless-stopped \ + -v /volume1/dockerdata/damselfly:/config \ + -v /volume1/photo:/pictures \ + -e SYNO_THUMBS=true \ + -p 6363:6363 \ + -d \ + webreaper/damselfly +``` + +The default port is 6363. The /pictures volume is mapped to the root directory of your photographs. + +Note that in order to set up inotify watchers on your folders, Damselfly will increase the number of inotify instances as follows: + +``` +echo fs.inotify.max_user_instances=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p +``` + +Other options: +`SYNO_THUMBS=True` - Tells Damselfly to use existing Synology thumbnails (which are generated by DSM's indexing process) and to generate new thumbs in the same format. ## How do we use Damselfly? What's the workflow? @@ -41,7 +74,13 @@ Workflow is a little like distributed software development using Git. Photo mani 5. Images in the basket can be copied back to the desktop/laptop for local editing in Lightroom/On1/Digikam/etc. * Use the Damselfly Desktop client to write the files directly to the local filesystem in the same structure as on the server. * Export to a zip file to download and extract into the local image folder for additional editing -6. Re-sync using RClone to push the images back to the collection. +6. Re-sync using RClone to push the images back to the collection [Future enhancement: Damselfly Desktop App will do this for you] + +# Background/FAQ + +## Do I have to run it in Docker? + +No, you can run it standalone. For the first beta release, I'm only making Docker available, but I'll soon make binaries available for Windows and MacOS. ## Why 'Damselfly'? @@ -49,7 +88,7 @@ Etymology of the name: DAM-_sel_-fly - **D**igital **A**sset **M**anagement that ## Why Damsefly? -My wife is a horticultural writer and photographer ([pumpkinbeth.com](http://www.pumpkinbeth.com)) and over the years has accumulated a horticultural photography library with more than half a million pictures, in excess of 3TB of space. +I wrote Damselfly mainly to cater for a personal use-case, but decided to open-source it to make it available for others to use if it works for them. My wife is a horticultural writer and photographer ([pumpkinbeth.com](http://www.pumpkinbeth.com)) and over the years has accumulated a horticultural photography library with more than half a million pictures, in excess of 4.5TB of space. In order to find and retrieve photographs efficiently when writing about a particular subject, all of the photos are meticulously tagged with IPTC keywords describing the content and subject matter of each image. However, finding a digital asset management system that supports that volume of images is challenging. We've considered many software packages, and each has problems: @@ -96,11 +135,11 @@ In order to find and retrieve photographs efficiently when writing about a parti * Con: Search ignores IPTC tags * Con: Only supports Amazon's native apps. No support for _any_ third party clients. -## Damelfly Architecture +## What is the Damelfly Architecture? Damselfly is written using C#/.Net Core and Blazor Server. The data model and DB access is using Entity Framework Core. Currently the server supports Sqlite, but a future enhancement may be to add support for PostGres, MySql or MariaDB. -## Wordpress Integration +## How do I set up the Wordpress Integration? Damselfly allows direct uploads of photographs to the media library of a Wordpress Blog. To enable this feature, you must configure your Wordpress site to support JWT authentication. For more details see [JWT Authentication for WP REST API](https://wordpress.org/plugins/jwt-authentication-for-wp-rest-api/). @@ -128,7 +167,7 @@ Once you have the site configured: ## Contributing to Damselfly -I am a professional developer, but Damselfly is a side-project. I'm also not a web designer or CSS expert (by any means). If you'd like to contribute to Damselfly with features, enhancements, or with some proper shiny design/layout enhancements, please submit a PR! +I am a professional developer, but Damselfly is a side-project, written in my spare time. I'm also not a web designer or CSS expert (by any means). If you'd like to contribute to Damselfly with features, enhancements, or with some proper shiny design/layout enhancements, please submit a PR! ## Thanks and Credits