A simple web app that scans a local directory for .mp4
files and lets you browse & play them in a web browser.
Example screenshot:
A live demo is available at https://amony.nl. It is running on single GCE e2-micro
instance.
Note: All videos on the demo site are free and sourced from Pexels
The image is hosted on a public Google Cloud docker repository.
docker pull europe-west4-docker.pkg.dev/amony-04c85b/docker-images/amony/app:latest
The default location for the media files is /media
. You can mount a local directory to it.
The default location for the solr index, database and config files is /app/data
. It is recommended to mount a local directory to it to persist the data.
docker run -v /path/to/my/media:/media -v /path/to/my/amony-data:/app/data -p 8080:8080 --name amony europe-west4-docker.pkg.dev/amony-04c85b/docker-images/amony/amony-app:latest
The webapp now runs at http://localhost:8080
Notes:
- It takes some time to index the videos. Check progress with
docker logs amony
- Requires write access in the chosen directory, a
.amony
directory will be created with the index data, thumbnails and 3 seconds preview videos.
In dev mode the media files are expected to in a directory named media
inside the git repository. Move them there or create a symbolic link.
cd server
sbt
Inside the sbt console run the command ~reStart
After compiling the server will be running on port 8080
. It will start scanning the videos
directory and log its progress.
cd web-client
npm install --save
npm start
After compiling the web-client will be running on port 3000
. It will proxy all api requests to the server on port 8080
.
Set location to localhost:3000
cd web-client
npm install --save
npm run build
cd server
sbt web-server/jibDockerBuild
docker run -v /path/to/my/media:/media -v /path/to/my/amony-data:/app/data -p 8080:8080 --name amony europe-west4-docker.pkg.dev/amony-04c85b/docker-images/amony/amony-app:latest