Skip to content

Commit

Permalink
docs: general improvements
Browse files Browse the repository at this point in the history
Signed-off-by: Varun Patil <radialapps@gmail.com>
  • Loading branch information
pulsejet committed Oct 17, 2023
1 parent b43fec0 commit a235c7a
Show file tree
Hide file tree
Showing 8 changed files with 41 additions and 34 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ All notable changes to this project will be documented in this file.

- **Breaking**: Nextcloud 26+ and PHP 8 are now required.
- Significant improvements to code quality and maintainability.
- Improvements to the [documentation](https://memories.gallery/install/).

## [v5.5.0] - 2023-10-06

Expand Down
6 changes: 2 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,11 +41,9 @@ Memories is a _batteries-included_ photo management solution for Nextcloud with

## 📱 Mobile Apps

- An Android app for Memories is available in early access.
An Android client for Memories is available in early access on [Google Play](https://play.google.com/store/apps/details?id=gallery.memories).

<a href='https://play.google.com/store/apps/details?id=gallery.memories&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1'>
<img width=170 alt='Get it on Google Play' src='https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png'/>
</a>
For automatic uploads, you can use the official Nextcloud mobile apps. These are available for [Android](https://play.google.com/store/apps/details?id=com.nextcloud.client) ([F-Droid](https://f-droid.org/en/packages/com.nextcloud.client/)) and [iOS](https://apps.apple.com/us/app/nextcloud/id1125420102).

## 🏗 Development Setup

Expand Down
42 changes: 18 additions & 24 deletions docs/config.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,7 @@ occ memories:places-setup # set up reverse geocoding, will force re-indexing
occ memories:index # index existing photo files (can run in parallel, refer to admin panel)
```

!!! warning "OCCWeb"

The OCCWeb app is deprecated, and will not work with Memories. You must use the `occ` command line.

!!! tip "Cron"
!!! question "Cron"

You **DO NOT** need to set up a cron job or run `occ memories:index` periodically, since this is handled internally.
Any subsequently uploaded files will be indexed automatically with hooks. In case you upload files externally and run
Expand All @@ -39,33 +35,27 @@ occ memories:index # index existing photo files (can run in parallel,

If you are using Nextcloud AIO, see [this documentation](https://github.com/nextcloud/all-in-one#how-to-run-occ-commands).

## Recommended apps
## Recommended Apps

For the best experience and performance, the following apps are recommended.

- [Preview Generator](https://github.com/rullzer/previewgenerator) - For pre-generating image previews (**required** for performance)
- [Preview Generator](https://github.com/nextcloud/previewgenerator) - For pre-generating image previews (**required** for performance)
- [Recognize](https://github.com/nextcloud/recognize) - The official Nextcloud app for AI tagging of images and people.
- [Photos](https://github.com/nextcloud/photos) - The official Nextcloud Photos app, required for albums support.
- [Face Recognition](https://github.com/matiasdelellis/facerecognition) - An alternative face recognition app, which offers more fine-tuning. Alpha stage integration.

## Storage support
## Storage Support

The app can work with external storage for photos. Just set the mountpoint as the timeline directory.
Memories works out-of-the-box with most Nextcloud setups, including with external storage.

- 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.
- If you upload any photos from outside of Nextcloud, you may need to run the `occ files:scan` and `occ memories:index` commands.
- With external storage, indexing may be slow since all files must be downloaded.

!!! warning "Transcoding with external storage"

Video transcoding requires the entire file to be available locally for ffmpeg. To prevent downloading the
entire for every playback, transcoding is disabled for external storage.

## Image/Video support

To get support for all file types including HEIC, TIFF and RAW, refer to [this page](./file-types.md).

To enable support for high resolution images, you need to update the preview generation configuration from the admin panel.

## Transcoding

Memories bundles a [transcoding server](https://github.com/pulsejet/go-vod) with HLS capabilites for adaptive streaming. You need to configure transcoding to be able to play any videos. HLS enables the browser to download the video as small chunks and in resolutions adaptive to the connection speed. As a result, this is usually expected to have a major boost in video experience and performance.
Expand All @@ -80,17 +70,21 @@ Read the following considerations carefully regarding transcoding:
1. If transcoding fails, the video player will fall back to the original video stream. Check the output of `/tmp/go-vod/<instanceid>.log`
1. For better performance, you may configure the transcoder to use hardware acceleration. See [this page](./hw-transcoding.md).

!!! tip "Hardware acceleration"
!!! tip "Hardware Acceleration"

Memories supports hardware acceleration for transcoding using VA-API and NVENC.
If you have supported hardware, using hardware acceleration can significantly improve performance.
If you have compatible hardware, using acceleration can significantly improve performance.
See the instructions on [this page](./hw-transcoding.md) for more information.

## Reverse geocoding
## Reverse Geocoding

Reverse geocoding to find the location of photos. To set up geocoding you need to download the planet boundary dataset and store it in the database. This works only on MySQL / MariaDB / Postgres (no SQLite support). To set up reverse geocoding, go to the Memories admin panel.

!!! info "World map of photos"

Memories supports reverse geocoding to find the location of photos. To set up geocoding you need to download the planet boundary dataset and store it in the database. This works only on MySQL/MariaDB/Postgres (no SQLite support). To set up reverse geocoding, go to the Memories admin panel.
Reverse geocoding and the map of photos are **two separate features** and do not depend on each other.

## Preview storage
## Preview Storage

By default, previews upto `4096px` size are generated by Nextcloud. Each of the largest previews might be a few megabytes in size. This may not be ideal if you have limited storage space, since the preview size may become larger than the originals (especially if you use efficient image formats like HEIC). In this case, you can limit previews to a smaller size like `2048px`.

Expand All @@ -114,7 +108,7 @@ rm -rf <nextcloud-data-dir>/appdata_*/preview
occ files:scan-app-data
```

## Header logo
## Header Logo

Nextcloud supports customizing the logo for your instance. To properly theme the logo to match the user's theme, the logo you use in `Admninistration => Theming` must follow the following criteria:

Expand All @@ -133,7 +127,7 @@ Note that you may skip these steps and also use a PNG file, but the logo will no
## Migration
Memories directly uses EXIF metadata from files, so migration should be generally easy. The file structure of your photos is preserved as-is.
Memories directly uses EXIF metadata from files, so migration to and from other apps should be generally easy. The file structure of your photos is preserved as-is.
If you are migrating from Nextcloud Photos, you don't need to do anything. Your albums and tags will be carried to Memories as-is.

Expand Down
2 changes: 1 addition & 1 deletion docs/faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ Yes. All photos are stored in a folder structure, and only displayed as a flat t

**Does it have a mobile app?**

Not yet. The web app is very responsive on mobile. You can use the official Nextcloud app to auto-upload photos and videos from your device.
The Android app is available in early access on [Google Play](https://play.google.com/store/apps/details?id=gallery.memories). The web app is very responsive on mobile and can be used on Android and iOS. You can use the official Nextcloud app to auto-upload photos and videos from your device.

**How is it better than the `Y` FOSS photo manager?**

Expand Down
2 changes: 1 addition & 1 deletion docs/file-types.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
description: Steps to configure support for different image and video formats
---

# File type support
# File Type Support

!!! danger "Use the admin interface"

Expand Down
6 changes: 3 additions & 3 deletions docs/hw-transcoding.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
description: Configuration for hardware acceleration for transcoding with VA-API and NVENC
---

# Hardware transcoding
# Hardware Transcoding

This document describes setting up transcoding in Memories, specifically using hardware acceleration. Hardware acceleration can significantly improve transcoding performance, especially for high resolution videos. Memories supports transcoding using **CPU**, **VA-API** and **NVENC**.

Expand All @@ -26,7 +26,7 @@ NVIDIA GPUs support hardware transcoding using NVENC.

## External Transcoder

!!! success "Recommmended configuration"
!!! success "Recommmended Configuration"

The easiest and recommended way to use hardware transcoding is to use an external transcoder.
This setup utilizes a separate docker container that contains the hardware drivers and ffmpeg.
Expand Down Expand Up @@ -79,7 +79,7 @@ Your external transcoder should now be functional. You can check the transcoding
With Nextcloud AIO, you will need to put the container into the `nextcloud-aio` network. Also the datadir of AIO needs to be mounted at the same place like in its Netxcloud container into the go-vod container. Usually this would be `nextcloud_aio_nextcloud_data:/mnt/ncdata:ro` or `$NEXTCLOUD_DATADIR:/mnt/ncdata:ro`.
See the instructions [here](https://github.com/nextcloud/all-in-one#how-to-enable-hardware-transcoding-for-nextcloud).

!!! info "Usage without docker-compose"
!!! info "Usage without Docker Compose"

You can run a similar setup without `docker-compose` by building the go-vod container manually. Make sure that the Nextcloud and go-vod containers are in the same network and that the Nextcloud data directories are mounted at the same locations in both containers.

Expand Down
10 changes: 10 additions & 0 deletions docs/install.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@ For the best experience, we recommend to use the latest stable version of Nextcl
For easy setup and maintenance, you can use the community Nextcloud Docker image, and add extra dependencies using a custom Dockerfile.
Another option is to use [Nextcloud AIO](https://github.com/nextcloud/all-in-one#how-to-use-this), in which case most dependencies are already installed.

!!! success "Recommmended Configuration"

If you plan to use hardware transcoding, using **Docker Compose** or **Nextcloud AIO** is recommended.

## Requirements

Before installing Memories, make sure that the following requirements are met:
Expand Down Expand Up @@ -42,3 +46,9 @@ To build the app from source, you need to have [node.js](https://nodejs.org/) in
1. Run `make patch-external` to apply patches to external dependencies.
1. Run `make build-js-production` to build the JavaScript files.
1. Enable the app in the Nextcloud app settings page.

## Mobile Apps

An Android client for Memories is available in early access on [Google Play](https://play.google.com/store/apps/details?id=gallery.memories).

For automatic uploads, you can use the official Nextcloud mobile apps. These are available for [Android](https://play.google.com/store/apps/details?id=com.nextcloud.client) ([F-Droid](https://f-droid.org/en/packages/com.nextcloud.client/)) and [iOS](https://apps.apple.com/us/app/nextcloud/id1125420102).
6 changes: 5 additions & 1 deletion docs/troubleshooting.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ If you are using Nextcloud AIO, see [this documentation](https://github.com/next

### Usage of tmpfs

If you are using `tmpfs` (e.g. for the Recognize app), make sure the temp directory is set to executable. With Docker compose, your `docker-compose.yml` should look like this:
If you are using `tmpfs` (e.g. for the Recognize app), make sure the temp directory is set to executable. With Docker Compose, your `docker-compose.yml` should look like this:

```yaml
app:
Expand Down Expand Up @@ -114,6 +114,10 @@ On Postgres, the syntax for dropping the index is:
DROP INDEX IF EXISTS memories_parent_mimetype;
```

!!! warning "Reinstallation"

The reset will clean up all data associated with Memories. While this is safe and will not delete your files, it can sometimes have unintended side effects, such as some files appearing as duplicates in the mobile apps when you reinstall. Try running `occ memories:index --force` before attempting a reset.

### Moving from x86 to ARM or vice versa

In this case you need to reset the paths to the architecture specific binaries.
Expand Down

0 comments on commit a235c7a

Please sign in to comment.