memories/README.md

62 lines
4.6 KiB
Markdown
Raw Normal View History

2022-10-16 04:45:29 +00:00
![Screenshot](appinfo/screenshot.jpg)
2022-08-18 03:36:37 +00:00
2022-10-20 00:35:03 +00:00
## Photo Viewer and Manager
Memories is a photo management app for Nextcloud with advanced features including:
2022-08-13 01:58:37 +00:00
2022-10-28 19:11:08 +00:00
- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.
- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.
- **🤖 AI Tagging**: Group photos by people and objects using AI, powered by the [recognize](https://github.com/nextcloud/recognize) app.
- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.
- **📁 Folders**: Browse your own and shared folders with a similar, efficient timeline.
- **🎦 Slideshow**: View photos from your timeline and folders easily.
- **📱 Mobile Support**: Works on devices of any shape and size through the web app.
- **✏️ Edit Metadata**: Edit Exif dates on photos quickly and easily.
- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.
- **📷 RAW Support**: View RAW photos from your camera with the [Camera RAW Previews](https://apps.nextcloud.com/apps/camerarawpreviews) app.
- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.
2022-10-28 19:11:08 +00:00
- **⚡️ Fast**: Memories is extremely fast. Period. More details below.
2022-08-13 01:58:37 +00:00
2022-10-22 17:55:57 +00:00
To get an idea of what memories looks and feels like, check out the [public demo](https://memories-demo.radialapps.com/apps/memories/). Note that the demo is read-only and may be slow since it runs in a low-end free tier VM provided by [Oracle Cloud](https://www.oracle.com/cloud/free/). Photo credits go to [Unsplash](https://unsplash.com/) (for individual credits, refer to each folder).
2022-10-07 21:08:05 +00:00
## How to support development
2022-10-28 19:11:08 +00:00
- **🌟 Star this repository**: This is the easiest way to support the project and costs nothing.
- **🪲 Report bugs**: If you find a bug, please report it on the issue tracker.
- **📝 Contribute**: If you want to contribute, please read file / comment on an issue and ask for guidance.
2022-10-07 21:08:05 +00:00
2022-08-16 01:28:40 +00:00
## 🚀 Installation
2022-08-13 01:58:37 +00:00
2022-10-20 20:45:00 +00:00
1. Install the app from the Nextcloud app store.
1. Run `php ./occ memories:index` to generate metadata indices for existing photos.
2022-08-20 01:07:39 +00:00
1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos. Photos from this directory will be displayed in the timeline, including any photos in nested subdirectories.
2022-09-12 06:22:56 +00:00
1. Installing the [preview generator](https://github.com/rullzer/previewgenerator) for pre-generating thumbnails is strongly recommended.
2022-08-13 01:58:37 +00:00
2022-08-16 01:28:40 +00:00
## 🏗 Development setup
2022-08-13 01:58:37 +00:00
2022-08-16 01:28:40 +00:00
1. ☁ Clone this into your `apps` folder of your Nextcloud.
1. 👩‍💻 In a terminal, run the command `make dev-setup` to install the dependencies.
2022-10-20 21:08:46 +00:00
1. 🏗 To build the Typescript, run `make build-js`. Watch changes with: `make watch-js`.
2022-08-16 01:28:40 +00:00
1. ✅ Enable the app through the app management of your Nextcloud.
2022-10-28 19:11:08 +00:00
1. ⚒️ (Strongly recommended) use VS Code and install Vetur and Prettier.
2022-08-13 01:58:37 +00:00
2022-09-13 07:41:06 +00:00
## ⚡ Performance
2022-10-28 19:11:08 +00:00
2022-09-13 18:49:10 +00:00
- Once properly configured, Memories is **extremely fast**, possibly one of the fastest web photo viewers.
2022-10-17 03:23:47 +00:00
- On a server with relatively cheap hardware (`Intel Pentium G6400 / 8GB RAM / SSD`), loading the timeline takes only `~400ms` without cache on a laptop (`Intel Core i5-1035G1 / Windows 11 / Chrome`) for a library of `~17000 photos` totaling `100GB`. The test was performed on Nextcloud 24 with `nginx`, `php-fpm` and `mariadb` running in Docker.
2022-09-13 03:42:02 +00:00
- For best performance, install the [preview generator](https://github.com/rullzer/previewgenerator) and make sure HTTP/2 is enabled for your Nextcloud instance.
2022-09-13 07:41:06 +00:00
## 📝 Notes
2022-10-28 19:11:08 +00:00
2022-09-13 03:42:02 +00:00
- You may need to configure the Nextcloud preview generator and Imagemagick / ffmpeg to support all types of images and videos (e.g. HEIC). If using the official docker image, add `OC\Preview\HEIC` to `enabledPreviewProviders` in your `config.php`.
- If local time is not found in the photo (especially for videos), the server timezone is used.
2022-09-24 02:58:12 +00:00
- All photos in the timeline _must_ be on a single storage. For example, you cannot have a mounted directory inside your photos directory.
- The app can work with external storage for photos. Just set the mountpoint as the timeline directory.
2022-10-28 19:11:08 +00:00
- If you add any photos from outside Nextcloud, you must run the scan and index commands.
- Indexing may be slow, since all files must be downloaded from the storage. The app currently assumes that the Exif data is present with the first 20MB of each file.
2022-09-25 23:43:32 +00:00
- The archive feature moves photos to a separate folder called `.archive` at the root of your timeline. You can use this, for example, to move these photos to a cold storage.
2022-08-16 02:13:04 +00:00
2022-09-13 07:41:06 +00:00
## Special Thanks
2022-10-28 19:11:08 +00:00
Nextcloud team. A lot of this work is based on [Photos](https://github.com/nextcloud/photos).