diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
index 84366c9f..77ec2d8a 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -6,22 +6,23 @@ labels: needs triage
assignees: ''
---
+
**Describe the bug**
A clear and concise description of what the bug is.
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
new file mode 100644
index 00000000..44537f5a
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -0,0 +1,6 @@
+blank_issues_enabled: false
+
+contact_links:
+ - name: Discord Community
+ url: https://discord.gg/7Dr9f9vNjJ
+ about: Please ask and answer questions here.
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 940865d5..3c4ae09b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,9 +2,49 @@
All notable changes to this project will be documented in this file.
-## [v5.1.1] - Unreleased
+## [Unreleased]
+- **Feature**: Support showing full file path in sidebar ([#173](https://github.com/pulsejet/memories/issues/173))
+- **Feature**: View file in folder on clicking name in sidebar
+- **Feature**: User can leave albums that are shared with them
+- **Fix**: Support for transcoding MKV files.
+
+## [v5.4.1] - 2023-08-20
+
+- Corrects a versioning error. This version is the same as v5.3.0
+
+## [v5.3.0] - 2023-08-20
+
+- **Feature**: Allow adding photos to multiple albums together ([#752](https://github.com/pulsejet/memories/pull/752))
+- **Feature**: Improved layout for albums list view
+- **Feature**: Search bar for album picker when adding to album.
+- **Feature**: Show albums of photo in metadata ([#752](https://github.com/pulsejet/memories/pull/752))
+- **Feature**: Show faces in photo in sidebar metadata
+- **Feature**: Allow creation of new tags when editing metadata ([#487](https://github.com/pulsejet/memories/issues/487))
+- **Feature**: Allow disabling autoplay of live photo ([#591](https://github.com/pulsejet/memories/issues/591))
+- **Feature**: Improvements in admin interface
+- **Feature**: A `.nomemories` file will now hide a folder from Memories without affecting other apps ([#777](https://github.com/pulsejet/memories/issues/777))
+- **Feature**: More crop options for image editor ([#546](https://github.com/pulsejet/memories/issues/546))
+- **Bugfix**: You can now configure the transpose strategy of the transcoder (required for QSV)
+
+## [v5.2.1] - 2023-07-03
+
+- **Feature**: Allow moving unclustered faces to a cluster with Recognize (v4.2.0+)
+
+## [v5.2.0] - 2023-06-30
+
+**Note:** You will need to run `occ memories:places-setup --recalculate` to re-index places (or reindex everything)
+
+- New project home page: https://memories.gallery
+- New Discord community: https://discord.gg/7Dr9f9vNjJ
+- Nextcloud 27 compatibility
+- **Feature**: Hierarchical places view
- **Feature**: Layout improvements especially for mobile.
+- **Feature**: Allow downloading entire publicly shared albums.
+- **Feature**: Basic preview generation configuration in admin interface.
+- **Bugfix**: Prevent keeping original file on metadata edit.
+- **Bugfix**: Use correct locale for time in metadata view.
+- **Bugfix**: Allow editing metadata on large video files.
## [v5.1.0] - 2023-04-29
diff --git a/Makefile b/Makefile
index 439e89ca..aebed03f 100644
--- a/Makefile
+++ b/Makefile
@@ -31,7 +31,6 @@ build-js-production:
patch-external:
patch -p1 -N < patches/scroller-perf.patch || true
patch -p1 -N < patches/scroller-sticky.patch || true
- bash ./patches/filerobot-patch.sh
watch-js:
npm run watch
diff --git a/README.md b/README.md
index f860dce8..80a45501 100644
--- a/README.md
+++ b/README.md
@@ -5,6 +5,7 @@
[![Discord](https://dcbadge.vercel.app/api/server/7Dr9f9vNjJ)](https://discord.gg/7Dr9f9vNjJ)
[![Website](https://img.shields.io/website?down_color=red&down_message=offline&label=website&style=for-the-badge&up_color=brightgreen&up_message=online&url=https%3A%2F%2Fmemories.gallery)](https://memories.gallery)
[![Demo](https://img.shields.io/website?down_color=red&down_message=offline&label=demo&style=for-the-badge&up_color=brightgreen&up_message=online&url=https%3A%2F%2Fdemo.memories.gallery)](https://demo.memories.gallery/apps/memories/)
+[![Nextcloud Store](https://img.shields.io/badge/nextcloud_store-blue?style=for-the-badge)](https://apps.nextcloud.com/apps/memories)
![GitHub](https://img.shields.io/github/license/pulsejet/memories)
[![e2e](https://github.com/pulsejet/memories/actions/workflows/e2e.yaml/badge.svg)](https://github.com/pulsejet/memories/actions/workflows/e2e.yaml)
@@ -30,7 +31,7 @@ Memories is a _batteries-included_ photo management solution for Nextcloud with
## 🚀 Installation
-1. Install the app from the Nextcloud app store.
+1. Install the app from the Nextcloud [app store](https://apps.nextcloud.com/apps/memories).
1. Perform the recommended [configuration steps](https://memories.gallery/config/).
1. Run `php occ memories:index` to generate metadata indices for existing photos.
1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos.
@@ -56,6 +57,7 @@ A shout out to the current and past financial backers of Memories! See the spons
[](https://github.com/k1l1)
[](https://github.com/ChickenTarm)
[](https://github.com/ChildLearningClub)
+[](https://github.com/mpanhans)
## 📝 Changelog
diff --git a/appinfo/info.xml b/appinfo/info.xml
index c779bf53..b9450f94 100644
--- a/appinfo/info.xml
+++ b/appinfo/info.xml
@@ -29,7 +29,7 @@ Memories is a *batteries-included* photo management solution for Nextcloud with
1. Run `php occ memories:index` to generate metadata indices for existing photos.
1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos.
]]>
- 5.1.0
+ 5.4.1agplVarun PatilMemories
@@ -39,7 +39,7 @@ Memories is a *batteries-included* photo management solution for Nextcloud with
https://github.com/pulsejet/memorieshttps://raw.githubusercontent.com/pulsejet/memories/master/appinfo/screenshot.jpg
-
+ OCA\Memories\Command\Index
diff --git a/appinfo/routes.php b/appinfo/routes.php
index 2fb4f551..0fbcb3c3 100644
--- a/appinfo/routes.php
+++ b/appinfo/routes.php
@@ -47,6 +47,7 @@ return [
// Public album share
['name' => 'PublicAlbum#showShare', 'url' => '/a/{token}', 'verb' => 'GET'],
+ ['name' => 'PublicAlbum#download', 'url' => '/a/{token}/download', 'verb' => 'GET'],
// API Routes
['name' => 'Days#days', 'url' => '/api/days', 'verb' => 'GET'],
diff --git a/docs/assets/app.svg b/docs/assets/app.svg
new file mode 100644
index 00000000..fdc271dc
--- /dev/null
+++ b/docs/assets/app.svg
@@ -0,0 +1,19 @@
+
+
+
diff --git a/docs/assets/favicon.ico b/docs/assets/favicon.ico
new file mode 100644
index 00000000..728dd60a
Binary files /dev/null and b/docs/assets/favicon.ico differ
diff --git a/docs/config.md b/docs/config.md
index 34701dfb..fde1f7c4 100644
--- a/docs/config.md
+++ b/docs/config.md
@@ -4,7 +4,12 @@ description: Steps to configure Memories for the best experience and performance
# Configuration
-Starting with v5.0.0, you can fully configure memories using the admin panel. With an admin account in Nextcloud, go to `Settings -> Memories`. Memories runs a background indexing job to extract EXIF metadata from photos and videos, as well as immediately on every upload.
+!!! danger "Use the admin interface"
+
+ Starting with v5.0.0, you can fully configure memories using the admin panel. With an admin account in Nextcloud, go to `Settings -> Memories`.
+ Using the admin interface for configuration is **strongly recommended** in most cases.
+
+Memories runs a background indexing job to extract EXIF metadata from photos and videos, as well as immediately on every upload.
If you just installed memories and want to speed up indexing, run the following commands. For usage of the `occ` command line, refer [here](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/occ_command.html) for more information.
@@ -32,6 +37,8 @@ occ memories:index # index existing photo files (can run in parallel,
# ^^^ <-- this is required
```
+ If you are using Nextcloud AIO, see [this documentation](https://github.com/nextcloud/all-in-one#how-to-run-occ-commands).
+
## Storage support
The app can work with external storage for photos. Just set the mountpoint as the timeline directory.
@@ -86,6 +93,8 @@ By default, previews upto `4096px` size are generated by Nextcloud. Each of the
Note that Memories will, by default, load the full image upon zooming in. If you are okay with this, you may use a even smaller size like `1024px` to save more space as well as faster preview generation time. Non-JPEG files will be converted on the server when loading in full-res, which may lead to some server load.
+On Nextcloud AIO, these options are set to the recommended values by default.
+
```php
'preview_max_x' => 2048,
'preview_max_y' => 2048,
diff --git a/docs/faq.md b/docs/faq.md
index 49f3e3a4..98523910 100644
--- a/docs/faq.md
+++ b/docs/faq.md
@@ -54,7 +54,7 @@ UX and performance. The devil is in the details.
**It's slow or doesn't work**
-Make sure you follow the [configuration steps](../config). Unless you have hundreds of thousands of photos on a Raspberry Pi, Memories should be very fast. File an issue otherwise.
+Make sure you follow the [troubleshooting steps](../troubleshooting/#performance). Unless you have hundreds of thousands of photos on a Raspberry Pi, Memories should be very fast. File an issue otherwise.
**It says "nothing to show here" on startup?**
@@ -64,24 +64,3 @@ the [configuration steps](../config) and be patient.
**Will it run on my system?**
In general, if you can run Nextcloud, you should be able to run Memories. File an issue if you run into problems.
-
-**How to completely remove Memories? Maybe to reinstall after errors?**
-
-Uninstall Memories from the app store, then run the following SQL on your database.
-
-```sql
-DROP TABLE IF EXISTS oc_memories;
-DROP TABLE IF EXISTS oc_memories_livephoto;
-DROP TABLE IF EXISTS oc_memories_mapclusters;
-DROP TABLE IF EXISTS oc_memories_places;
-DROP TABLE IF EXISTS oc_memories_planet;
-DROP TABLE IF EXISTS memories_planet_geometry;
-DROP INDEX IF EXISTS memories_parent_mimetype ON oc_filecache;
-DELETE FROM oc_migrations WHERE app='memories';
-```
-
-On Postgres, the syntax for dropping the index is:
-
-```sql
-DROP INDEX IF EXISTS memories_parent_mimetype;
-```
diff --git a/docs/file-types.md b/docs/file-types.md
index 889b1c98..e32efcfb 100644
--- a/docs/file-types.md
+++ b/docs/file-types.md
@@ -4,55 +4,52 @@ description: Steps to configure support for different image and video formats
# File type support
-Memories supports the file types supported by the Nextcloud previews app. If you add support for any one of the file types below, you must run `occ memories:index` to index these files.
+!!! danger "Use the admin interface"
+
+ It is **strongly recommended** that you use the Memories admin interface to configure file type support. This will ensure that your configuration is valid and that you do not accidentally disable support for any file types.
+
+Please note that if Imaginary is configured on your instance like on Nextcloud AIO, you do not need to follow this documentation any further; most file types should work out-of-the-box.
+
+Memories supports the file types supported by Nextcloud. File type support is determined in part by the values listed in the `enabledPreviewProviders` configuration parameter in your configuration file. If your `config.php` does not contain an `enabledPreviewProviders` array, this means you are using Nextcloud's defaults. Copy the array over from `config.sample.php` before adding any of the values below, or else you will effectively disable all of the defaults.
+
+If you add support for any one of the file types below, you must run `occ memories:index` to index these files.
## Common Formats
```
PNG (image/png)
JPEG (image/jpeg)
-PNG (image/png)
GIF (image/gif)
BMP (image/bmp)
```
-These are enabled by having the following in your `config.php`,
+These are enabled by inclusion of the following values in `config.php`'s `enabledPreviewProviders` array:
```php
-'enabledPreviewProviders' =>
-array (
- 'OC\\Preview\\Image',
-),
+ 'OC\Preview\Image',
```
## HEIC and TIFF
-You must enable `HEIC` and `TIFF` in Nextcloud `config.php`, and install Imagemagick (included in the official Nextcloud docker image)
-
-In `config.php`, add,
+These are enabled by inclusion of the following values in `config.php`'s `enabledPreviewProviders` array:
```php
-'enabledPreviewProviders' =>
-array (
- 'OC\\Preview\\HEIC',
- 'OC\\Preview\\TIFF',
-),
+ 'OC\Preview\HEIC',
+ 'OC\Preview\TIFF',
```
+You must also install Imagemagick (included in the official Nextcloud docker image).
+
## Videos
-You need to install `ffmpeg` and add the video config to `config.php`
+These are enabled by inclusion of the following value in `config.php`'s `enabledPreviewProviders` array:
```php
-'enabledPreviewProviders' =>
-array (
- 'OC\\Preview\\Movie',
- 'OC\\Preview\\MKV',
- 'OC\\Preview\\MP4',
- 'OC\\Preview\\AVI',
-),
+ 'OC\Preview\Movie',
```
+You must also install `ffmpeg` and add the video config to `config.php`.
+
## RAW images
Install the [camera raw previews](https://github.com/ariselseng/camerarawpreviews) app from the Nextcloud app store.
diff --git a/docs/hw-transcoding.md b/docs/hw-transcoding.md
index bdff21d1..e9799d96 100644
--- a/docs/hw-transcoding.md
+++ b/docs/hw-transcoding.md
@@ -16,7 +16,7 @@ In the directory with the `docker-compose.yml` file, run,
git clone https://github.com/pulsejet/go-vod
```
-If you are using docker compose, configure a service to start go-vod with the correct devices and filesystem structure. Otherwise, manually start the container with these parameters.
+If you are using docker, configure a service to start go-vod with the correct devices and filesystem structure. Otherwise, manually start the container with these parameters.
```yaml
# docker-compose.yml
@@ -40,6 +40,10 @@ services:
- ncdata:/var/www/html:ro
```
+Make sure to put the container and the container into the same network so that they can talk to each other!
+
+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`.
+
Finally, point Memories to the external go-vod instance. In the admin interface, set go-vod to external and configure the connect URL to `go-vod:47788`. Alternatively, add the following configuration to `config.php`:
```php
@@ -71,6 +75,25 @@ apk update
apk add --no-cache bash ffmpeg libva-utils libva-vdpau-driver libva-intel-driver intel-media-driver mesa-va-gallium
```
+In some cases, along with adding `www-data` to the appropriate groups, you may also need to set the permissions of the device manually:
+
+```bash
+sudo chmod 666 /dev/dri/renderD128
+```
+
+You can run a test using a sample video file to check if VA-API is working correctly for the `www-data` user:
+
+```bash
+# download sample or or use any other video file
+wget https://github.com/pulsejet/memories-assets/raw/main/sample.mp4
+
+# check if VA-API is working
+sudo -u www-data \
+ ffmpeg -hwaccel vaapi -hwaccel_device /dev/dri/renderD128 -hwaccel_output_format vaapi \
+ -i 'sample.mp4' -vcodec h264_vaapi \
+ output-www-data.mp4
+```
+
### Docker installations
If you use Docker, you need to:
@@ -86,11 +109,12 @@ If you use Docker, you need to:
1. Make sure the right drivers are installed. This can be done using a custom Dockerfile, for example
```Dockerfile
- FROM nextcloud:25
+ FROM nextcloud:latest
RUN apt-get update && \
- apt-get install -y software-properties-common && \
- apt-add-repository -y non-free && \
+ apt-get install -y lsb-release && \
+ echo "deb http://ftp.debian.org/debian $(lsb_release -cs) non-free" >> \
+ /etc/apt/sources.list.d/intel-graphics.list && \
apt-get update && \
apt-get install -y intel-media-va-driver-non-free ffmpeg && \
rm -rf /var/lib/apt/lists/*
@@ -113,6 +137,9 @@ If you use Docker, you need to:
1. Check the output of `/tmp/go-vod/.log` if playback has issues
+### Nextcloud AIO
+See https://github.com/nextcloud/all-in-one#how-to-enable-hardware-transcoding-for-nextcloud
+
### linuxserver/nextcloud image
You can add the following to the `docker-compose.yml` file to install the drivers:
diff --git a/docs/install.md b/docs/install.md
index d80095b1..680e6e47 100644
--- a/docs/install.md
+++ b/docs/install.md
@@ -11,8 +11,8 @@ This page describes how to install the latest version of Memories.
Memories is an app for [Nextcloud](https://nextcloud.com/), so you need to install Nextcloud first. You can find the installation instructions [here](https://docs.nextcloud.com/server/latest/admin_manual/installation/).
For the best experience, we recommend to use the latest stable version of Nextcloud and PHP.
-For easy setup and maintenance, you can use the official Nextcloud Docker image, and add extra dependencies
-using a custom Dockerfile.
+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.
## Requirements
@@ -26,7 +26,7 @@ Before installing Memories, make sure that the following requirements are met:
## Installing Memories
-Memories can be installed from the Nextcloud app store page. Alternatively, you can install it manually by following these steps:
+Memories can be installed from the Nextcloud [app store](https://apps.nextcloud.com/apps/memories) page. Alternatively, you can install it manually by following these steps:
1. Download the latest release from the [releases page](https://github.com/pulsejet/memories/releases)
1. Extract the archive to the `apps` or `custom_apps` directory of your Nextcloud installation.
diff --git a/docs/memories-vs-photos.md b/docs/memories-vs-photos.md
index 76eaf0be..7a261507 100644
--- a/docs/memories-vs-photos.md
+++ b/docs/memories-vs-photos.md
@@ -23,4 +23,6 @@ Nextcloud comes bundled with an official "Photos" app. This page provides a brie
## Features in Photos missing in Memories
-1. Photos supports uploading photos directly, Memories does not support this function.
+1. Photos supports uploading photos directly, Memories does not ([issue](https://github.com/pulsejet/memories/issues/69)).
+1. Photos supports drawing on photos, Memories does not ([issue](https://github.com/pulsejet/memories/issues/785)).
+1. Photos shows which photos have been `Shared with you`. Memories does not ([issue](https://github.com/pulsejet/memories/issues/787)).
diff --git a/docs/system-config.md b/docs/system-config.md
index a2722a36..ec9e45d0 100644
--- a/docs/system-config.md
+++ b/docs/system-config.md
@@ -6,69 +6,6 @@ description: Documentation for config.php options that Memories uses
This is a list of all options in `config.php` that memories uses
-## General
-
```php
- '/var/www/html/apps/memories/exiftool-bin/exiftool-amd64-glibc',
-
-// Do not use packaged binaries of exiftool
-// This requires perl to be available
-'memories.exiftool_no_local' => false,
-
-// Makes the memories instance readonly
-'memories.readonly' => false,
-
-// Type of reverse geocoding planet database
-// -1 => Unconfigured
-// 0 => Disable
-// 1 => MySQL / MariaDB
-// 2 => PostgreSQL
-'memories.gis_type' => -1,
-```
-
-## Transcoding
-
-```php
- false,
-
-// Hardware support for transcoding
-'memories.vod.vaapi' => false, // Transcode with VA-API
-'memories.vod.vaapi.low_power' => false, // Use low_power mode for VA-API
-
-'memories.vod.nvenc' => false, // Transcode with NVIDIA NVENC
-'memories.vod.nvenc.temporal_aq' => false,
-'memories.vod.nvenc.scale' => 'npp', // npp or cuda
-
-// Paths to ffmpeg and ffprobe binaries
-'memories.vod.ffmpeg' => '/usr/bin/ffmpeg',
-'memories.vod.ffprobe' => '/usr/bin/ffprobe',
-
-// Path to go-vod binary
-'memories.vod.path' => '/var/www/html/apps/memories/exiftool-bin/go-vod-amd64',
-
-// Path to use for transcoded files (/tmp/go-vod/instanceid)
-// Make sure this has plenty of space
-'memories.vod.tempdir' => '/tmp/my-dir',
-
-// Bind address to use when starting the transcoding server
-'memories.vod.bind' => '127.0.0.1:47788',
-
-// Address used to connect to the transcoding server
-// If not specified, the bind address above will be used
-'memories.vod.connect' => '127.0.0.1:47788',
-
-// Mark go-vod as external. If true, Memories will not attempt to
-// start go-vod if it is not running already.
-'memories.vod.external' => false,
-
-// Set the default video quality for a first time user
-// 0 => Auto (default)
-// -1 => Original (max quality with transcoding)
-// -2 => Direct (disable transcoding)
-// 1080 => 1080p (and so on)
-'memories.video_default_quality' => '0',
+--8<-- "lib/SystemConfigDefault.php"
```
diff --git a/docs/troubleshooting.md b/docs/troubleshooting.md
new file mode 100644
index 00000000..b01fc011
--- /dev/null
+++ b/docs/troubleshooting.md
@@ -0,0 +1,102 @@
+---
+description: Solutions to common problems
+---
+
+# Troubleshooting
+
+This page contains solutions to common problems. If you are facing any issues, please refer to this page before opening an issue.
+
+## Performance
+
+!!! tip "Nextcloud AIO"
+
+ If you are using [AIO](https://github.com/nextcloud/all-in-one), these options should be configured by default.
+
+Memories is very fast, but its performance largely depends on how well the Nextcloud instance is tuned.
+
+- 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.
+
+## Issues with Docker
+
+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.
+
+### OCC commands fail
+
+The most common reason for this is a missing interactive TTY. Make sure you run the commands with `-it`:
+
+```bash
+docker exec -it my_nc_container php occ memories:index
+# ^^^ <-- this is required
+```
+
+If you are using Nextcloud AIO, see [this documentation](https://github.com/nextcloud/all-in-one#how-to-run-occ-commands).
+
+!!! warning "OCCWeb"
+
+ The OCCWeb app is deprecated, and will not work with Memories. You must use the `occ` command line.
+
+### 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:
+
+```yaml
+app:
+ ...
+ tmpfs:
+ - /tmp:exec
+```
+
+`tpmfs` is automatically configured when using Nextcloud AIO v7.0.0.
+
+## Reverse Geocoding (Places)
+
+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`.
+
+## Reset
+
+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.
+
+```sql
+DROP TABLE IF EXISTS oc_memories;
+DROP TABLE IF EXISTS oc_memories_livephoto;
+DROP TABLE IF EXISTS oc_memories_mapclusters;
+DROP TABLE IF EXISTS oc_memories_places;
+DROP TABLE IF EXISTS oc_memories_planet;
+DROP TABLE IF EXISTS memories_planet_geometry;
+DROP INDEX IF EXISTS memories_parent_mimetype ON oc_filecache; /* MySQL */
+DELETE FROM oc_migrations WHERE app='memories';
+```
+
+On Postgres, the syntax for dropping the index is:
+
+```sql
+DROP INDEX IF EXISTS memories_parent_mimetype;
+```
diff --git a/img/app-dark.svg b/img/app-dark.svg
index 4a4a7256..39a0baad 100644
--- a/img/app-dark.svg
+++ b/img/app-dark.svg
@@ -1,85 +1,19 @@
-
+
-
-