A SQLite based photo archival system written in Rust and TypeScript.
The application consists of a command line application for maintaining the photo database (scanning photos, generating thumbnails) with a built-in web server that provides a (still limited) REST API for viewing the database and a frontend developed in Typescript.
The application is written in Rust 1.37 and TypeScript 3.6 (other version might also work). The following dependencies are needed for building:
- Rust 1.37
- Cargo
- TypeScript 3.6
- Browserify (for turning the JS generated by TypeScript into something that is usable in a browser)
- Inkscape (for rasterizing the favicon)
- ImageMagick (for converting png to ico)
The command line application is called photoctl
. It automatically tries to detect the location of the users photo library based on platform specific mechanisms, but it can also be explicitly overriden.
The most important commands are the following:
# Scanning the library
photoctl photos scan
# Generating thumbnails (for the web frontend)
photoctl thumbnails generate
# Start a webserver, listening on http://localhost:8076 by default
photoctl browse
# Discovering more functionality and customizable options
photoctl --help
photoctl photos --help
# ...