Memories

Photo management app for Nextcloud with timeline and AI

Photo Management ★ 3.8k stars Medium setup AGPL-3.0

Memories is a photo and video management application that runs as a Nextcloud app, offering a fast timeline view of your media. It supports face recognition, maps, albums, and metadata-aware search.

Key features

  • Fast timeline view
  • Face recognition and maps
  • Albums and tagging
  • Nextcloud integration

Pros & cons

Strengths

  • Leverages existing Nextcloud
  • Polished mobile experience

Trade-offs

  • Requires Nextcloud
  • AI features need extra setup

Memories replaces

Last reviewed Sep 13, 2026 · 853 words

If you already run Nextcloud, install Memories today; it replaces the built-in Photos app with a timeline that scrolls through 50,000 images without stuttering, and you get it for zero new services. If you do not run Nextcloud, do not install a 1 GB PHP platform to get a photo app. Immich is standalone, faster at machine-learning features, and the default pick for that situation. That split is the whole decision, and everything below is about doing the first case well.

Why the built-in Photos app feels slow and Memories does not

Nextcloud's own Photos app scans on demand and leans on the file cache. Memories builds its own index of EXIF dates, locations and dimensions, so the timeline is a database query rather than a filesystem walk. That index is the thing you need to build and keep current:

docker exec -u www-data nextcloud php occ memories:index

Run it once after install (expect roughly an hour per 100,000 photos on a modest server) and then let the cron job keep it fresh; Memories hooks into Nextcloud's file events, so new uploads appear within a few minutes as long as the Nextcloud cron is running properly. If photos land on disk without going through Nextcloud (an rsync from a camera, say), you also need occ files:scan before Memories can see them.

The preview generator is not optional

Memories shows thumbnails through Nextcloud's preview system. Without pre-generated previews, every first view of an album triggers image resizing in PHP, and the timeline feels like 2012. Install the Preview Generator app, run occ preview:generate-all once (this takes longer than the index, hours to a day for a large library), and schedule occ preview:pre-generate every 15 minutes or so. Set the preview sizes in Memories' admin page to the ones it actually needs; generating every size Nextcloud knows about wastes disk and time.

Video playback is handled by a bundled transcoder, go-vod, which streams HLS at a size the client can handle. It runs on the CPU by default and gets nasty on a small box. VA-API on an Intel iGPU or NVENC on an NVIDIA card is configured in the admin page and needs the render device passed into the container; the difference between software and hardware here is 4K clips that stall versus 4K clips that just play.

Face recognition and maps need extra pieces

Memories does not ship its own face model. It reads faces from the Recognize app, which runs its own machine-learning pass over the library on the CPU, or from the Face Recognition app if you prefer that one. Recognize is slow on anything without AVX and can take days for a large library, but the result integrates cleanly with people albums in Memories. Budget the 1 GB minimum RAM as the floor for Nextcloud alone; Recognize on top wants at least another gigabyte during its run.

Maps and place names need a reverse geocoding database that Memories imports with occ memories:places-setup. That downloads planet boundary data and stores it in your Nextcloud database, and it requires MySQL, MariaDB or PostgreSQL. SQLite installs cannot do places, which is one more reason not to run a photo library on SQLite.

Mobile is where Nextcloud users get an upgrade

The Memories Android app is a proper timeline client, and the standard Nextcloud app's auto-upload feeds it. Photos taken on the phone land in the Nextcloud folder, the cron indexes them, and they appear in the timeline on every device. The Google Photos alternatives page covers the full migration, but for someone whose files already sit in Nextcloud, this is the only step that was missing, and it is a small one.

Where Immich still wins

Immich has its own machine-learning service that does faces, CLIP text search ("dog on a beach") and duplicate detection out of the box, on a GPU if you have one. Its mobile app handles backup itself with no dependency on a sync client. It is also simply faster, because it is a purpose-built stack rather than an app inside a general platform. The walkthrough on leaving Google Photos for Immich shows how little friction that route has. If your Nextcloud exists only because of photos, that is the sign to switch; if Nextcloud carries your files, calendars and shares anyway, Memories is the right call and the photos category has nothing that integrates better with it.

What I'd do

On an existing Nextcloud with MariaDB or Postgres: install Memories and Preview Generator, run the index and the full preview generation overnight, add the pre-generate cron, and pass the iGPU through for transcoding. Add Recognize only if people albums matter to you and the server has a spare core for a week. Set the phone's auto-upload to a dated folder tree and forget about it. Anyone without Nextcloud today: install Immich instead and never look back.

Compare Memories

21 head-to-head comparisons.

Similar photo management apps