Skip to content


Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Smart Gallery Manager · GitHub license Build Status

Your personal locally hosted smart gallery manager.

View this Trello Board for the TODO items.

Please note that this is a personal project, that is still in the pre-alpha stage, so it should only be used for development purposes.


  • Gallery of images [Note: Currently it will scan and add ALL files inside the folders you specify, so add folders that only contain images]
  • Filter the images by type, date taken or created & tags (if labelling via Amazon Rekognition is enabled)
  • Search images by path, location (if reverse geolocation via HERE Geocoding is enabled), tags, extension and more
  • Detailed modal view with information about the image
  • A map view to show whey you took the images


  • Processor: dual core or higher
  • Memory: 1 GB RAM or more

May work on lower specs, but it has to be tested first.


Preview 1 Preview 2 Preview 3


  • It runs on Nginx with PHP-FPM
  • The main app (API & admin) is written in Symfony with MySQL as the database
  • Frontend is written in React
  • It uses webpack as the bundler via Symfony Webpack Encore
  • There is also a python micro service for converting & reading exif data from .dng files and for face detection on images


  • Prepare the environment
    • Create your own .env file (copy the contents from .env.example)
      • All the variables in .env, will automatically be forwarded to the sgm_php_fpm, sgm_node & the sgm_python container.
      • This is the most convenient way to set the web app variables all in one place. Alternatively you can duplicate the web/.env into web/.env.local and set your the values for your custom variables there - particularly those, inside the Project block.
    • Create a docker-compose.override.yml file and set your custom volumes there - just copy the contents from docker-compose.override.example.yml
    • (optional) Create a settings.yml file and add your file folders in - just copy the contents from settings.example.yml
      • Those will be your default folders that will be used when manually triggering the files scan with docker exec -i sgm_php_fpm php bin/console app:files:scan and the files that will per default always show up in the dashboard, when triggering the scan via the web UI
  • Build the app
    • Run: docker-compose build
    • Run: docker-compose up
      • This may take a while, especially for the first time, as the sgm_node container will install all the dependencies.
    • Run: docker exec -i sgm_php_fpm composer install
    • Run: docker exec -i sgm_php_fpm php bin/console doctrine:schema:update -f
  • Start scanning for new files


  • To run the tests, you simply execute: docker exec -i sgm_php_fpm php bin/phpunit



Smart Gallery Manager is licensed under the MIT license.