aboutsummaryrefslogtreecommitdiff

Lens

A read only file explorer with media capabilities.

Dev

To run the project you simply need to run:

make run

It should run using sqlite with a randon AES key. But if you don't set a AES_KEY a new one will generated every time the project is realead and you will be logged out.

You can also create a .env file which will be read by make to populate the environment variables, e.g.:

# .env
DB_TYPE=psql
DB_CON=host=localhost user=admin password=admin dbname=lens port=5432
LOG_LEVEL=error
SCHEDULER_COUNT=10
CACHE_PATH=/home/myhome/.thumb
AES_KEY=X4Eu3OT/WqUtUJhGLUtQ4xRahwhWYaSs+k2a03Kz1A8=

To generate a new AES_KEY run:

openssl rand -rand /dev/urandom 32 | base64

Obs.: don't quote the value, that will be done automatically.

Throughout the development you can also run make watch for a hot reload experience. It will feedback loop a bit faster.

Build and install

To build you simply run:

make

And a ./bin/lens will be created.

To install run:

make install

Or you can pass a custom target folder.

PREFIX=~/.local/ make install

Requirements

qtc

It is used as template engine for html. To install it:

go install  github.com/valyala/quicktemplate/qtc@latest

libvips

Libvips^1 is required by bimp ^2 used for image manipulation.

ffmpeg

Used to generate video thumbnail.

sassc

Sassc^4 is used to generate the css file from sass.

Bulma

Bulma is the css framework of choice for this project. It is added as sub-module, so don't forget to pull it.

TODO

  • Demo site
  • Single image viewer and show exif info (not sure how yet)
  • Better UI error handling (or error handling at all).
  • Log out option
  • Better pagination
  • Better Testing. Since I still on initial iteration phases I'm not adding as many testing as I'd like to. Once I set on most of the design I'll add more test (is this ever done :thinking:).