- Make sure you are running the latest stable version of Nextcloud and Memories.
- Follow the steps in the [server tuning](https://docs.nextcloud.com/server/latest/admin_manual/installation/server_tuning.html) documentation.
- Follow all configuration steps in the [configuration](../config) documentation.
- Disable video transcoding if your server is not powerful enough.
- Reduce the maximum size of previews to be generated.
- Make sure you are running HTTPS (very important).
- Enable HTTP/2 or HTTP/3 on your server.
- Enable and configure PHP Opcache and JIT.
- Enable and configure the APCu cache.
- Enable and configure Redis for transactional file locking.
- Enable gzip compression on your HTTP server for static assets (CSS/JS).
## No photos are shown
This means that Memories is unable to find any indexed photos in your Nextcloud instance. Make sure you have followed the [configuration steps](../config). Note that Memories indexes photos in the background, so it may take a while for the photos to show up. Ensure that Nextcloud's cron system is properly configured and running.
Note: Using the community [Nextcloud Docker](https://hub.docker.com/_/nextcloud/) image or [AIO](https://github.com/nextcloud/all-in-one) are the recommended ways of running Memories. If you are using a different image, you may run into issues. Please file any bugs you find on GitHub.
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:
Alternatively, you may change the temp directory used for binary files to a different directory that is not mounted as `tmpfs`, and allows the executable bit to be set. Use this option with caution.
When using the NixOS modules system for installation the indexer may fail on execution. In case the error is either `perl not found` or `failed to run exiftool: ...` it might be that the created `nextcloud-cron` services does not have access to a perl interpreter.
In that case adding perl to the path of the `nextcloud-cron` service might solve the issue.
It can be archived by adding the following snippet to the `configuration.nix`
You need to have a MySQL / MariaDB / Postgres database for reverse geocoding to work. SQLite is not supported.
### Planet DB download fails
If the planet DB download does not complete via the admin interface, you need to use the OCC command line, or increase the connection timeout values for your PHP/HTTP servers.
```bash
occ memories:places-setup
```
### Error: Incorrect string value
If you get this error, it is likely that your database is not using the `utf8mb4` character set. Since the reverse geocoding database contains characters in various languages, it is necessary to use `utf8mb4` to store them. To fix this, you need to convert your database to use `utf8mb4`.
Memories transcodes videos on the fly per-user. This saves space, but requires reasonably good hardware, preferably with hardware acceleration. Check the troubleshooting section [here](/hw-transcoding/#troubleshooting).
If you want to completely reset Memories (e.g. for database trouble), uninstall it from the app store, then run the following SQL on your database to clean up any data.
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.