Every Google Photos alternative is missing some essential (to me) features reddit / selfhosted ---------------------------------------------------------------------- nairou · 2023-10-07 20:41 I'd like to setup a self-hosted photo library for my family to use, as a way of automatically backing up photos from our phones and providing a central place to view and organize them. There are many decent options available, I've personally tried Immich, Piwigo, and PhotoPrism, and researched others. But every one is about 90% there, missing one essential feature. My feature wishlist: * Self-hostable server, easy to run in an Docker image * Support multiple users, each with separate camera libraries * No separate database server needed (either use something simple like SQLite or just use the filesystem) * Android app * Decent enough to be used as the primary photo app on the phone * View both local and remote photos, as a single cohesive experience * Automatically backup photos to the server * Automatically (or manually) clear photos from the phone that are on the server * Optional: Filesystem-based photo album organization (with the ability to adapt to changes made outside of the server UI) The main points I can't seem to find anywhere are the simple installation, not needing a database server, and the automatic cleaning of uploaded photos. (Particularly that last one. My wife is less tech savvy, how is she going to know when to manually delete photos, and whether they'll only be deleted locally?) Are there other options I haven't tried that cover these features? ---------------------------------------------------------------------- EndlessHiway · 2023-10-07 21:22 Probably ---------------------------------------------------------------------- Itzz-Donkey · 2023-10-07 21:25 You could use our lord and saviour immich ---------------------------------------------------------------------- rumblpak · 2023-10-07 21:26 I disagree with database. As your photo library grows, if you want any kind of advanced indexing feature-set, you’re gonna want a real boy DB. It’s why plex blows when media libraries get large. ---------------------------------------------------------------------- nairou · 2023-10-07 21:27 That one seems most promising, but fails all of the pain points. It requires a Postgres database server, there are multiple required components to get setup right in a Docker image, and the mobile app doesn't do any cleaning of local storage. ---------------------------------------------------------------------- cvzero89 · 2023-10-07 21:34 Why the need for SQLite? For a large library you'll want something bigger. Immich performs beautifully. The app might be a problem but I just use the phone native app to delete and that's it. Setting it up took me about 30 minutes... one time. ---------------------------------------------------------------------- nairou · 2023-10-07 21:35 I'd concede there, but I still don't understand why none of the available servers allow SQLite as the database choice. It's plenty fast, and requires no user setup. ---------------------------------------------------------------------- rumblpak · 2023-10-07 21:37 You can have a 0 setup with any DB if the container is built for it. That said, i prefer to have a DB on my storage server and my containers do minimal stuff so I’m solidly in the i want to be able to do stuff manually boat but I see why it’s better for most users. ---------------------------------------------------------------------- nairou · 2023-10-07 21:43 The main issue that comes to mind is backups. SQLite, or any filesystem-based approach, you backup the files with the rest of your data (i.e. photos) and you're good. Throw in a DB server and now you need to worry about clean DB shutdown, versioning, upgrade paths, etc. ---------------------------------------------------------------------- Skotticus · 2023-10-07 21:48 If you're self hosting, you can't really avoid databases. Eventually you will run into a use case where running your own database is necessary either because of the size of the database or because of the need to back up data. Swallow your pride and take control of your databases. Spin up Redis. Learn how to dump your databases. Your db-dependent apps will perform better and your data will be more secure. ---------------------------------------------------------------------- rumblpak · 2023-10-07 21:49 The DB doesn’t and shouldn’t need to back up files, files should be in file system. The DB should be for fast indexing of where to find the file and image data, like location data and person detection. It should be agnostic of files so much so that the loss of the DB means nothing other than having to re-setup the application and DB again and point it at your files. ---------------------------------------------------------------------- justinhunt1223 · 2023-10-07 21:57 Use docker compose, it sets everything up. Are you trying to setup the containers by themselves? ---------------------------------------------------------------------- thekrautboy · 2023-10-07 22:01 > No separate database server needed (either use something simple like SQLite or just use the filesystem) Why tho? *facepalm* ---------------------------------------------------------------------- Proximus88 · 2023-10-07 22:02 Backing up docker databases is easy. MySQL/Mariadb: sudo docker exec mysqldump -uroot -p --all-databases > /home/user/backup/database/dump-$(date +%F_%H-%M-%S).sql Postgres: sudo docker exec pg_dump -U user database > /home/user/backup/database/dump-$(date +%F_%H-%M-%S).sql You make the user of /backup root and only root can read and write. ---------------------------------------------------------------------- thekrautboy · 2023-10-07 22:03 > SQLite, or any filesystem-based approach, you backup the files with the rest of your data (i.e. photos) and you're good. Actually no, SQLite also should be backed up properly. For example the sqlite3 commandline tool offers specific commands for that. Sure, technically you could simply copy the db files somewhere and later restore. But that logic is true for "true" databases like Postgres too. You *could* do it and most of the time it would work when restoring. But you really shouldnt. ---------------------------------------------------------------------- nairou · 2023-10-07 22:04 Okay, this is news to me. I've only ever dealt with software that stored important data in the database. I'm assuming it contains things like user accounts, library locations, shares, etc. If all it gets used for is meta data, then I have far less issue with it. ---------------------------------------------------------------------- nairou · 2023-10-07 22:05 Last time I installed Immich was on a NixOS machine, using podman. So I had to translate the compose file by hand. I still don't understand why Immich has so many microservices. ---------------------------------------------------------------------- thekrautboy · 2023-10-07 22:08 Just run Immich and accept the need for a proper database. version: "3.8" networks: immich: external: false services: immich-proxy: container_name: immich-proxy image: ghcr.io/immich-app/immich-proxy:release restart: unless-stopped depends_on: - immich-server networks: - immich ports: - 8080:8080 environment: - IMMICH_WEB_URL=http://immich-web:3000 - IMMICH_SERVER_URL=http://immich-server:3001 immich-web: container_name: immich-web image: ghcr.io/immich-app/immich-web:release restart: unless-stopped networks: - immich environment: - IMMICH_WEB_URL=http://immich-web:3000 - IMMICH_SERVER_URL=http://immich-server:3001 - IMMICH_MACHINE_LEARNING_URL=http://immich-machine- learning:3003 - DB_HOSTNAME=immich-postgres - DB_USERNAME=immich - DB_PASSWORD=immich - DB_DATABASE_NAME=immich - REDIS_HOSTNAME=immich-redis - TYPESENSE_API_KEY=some-random-text # generate your own for example with: openssl rand -hex 32 entrypoint: ["/bin/sh", "./entrypoint.sh"] immich-server: container_name: immich-server image: ghcr.io/immich-app/immich-server:release restart: unless-stopped networks: - immich depends_on: - immich-redis - immich-postgres - immich-typesense links: - immich-typesense:typesense environment: - IMMICH_WEB_URL=http://immich-web:3000 - IMMICH_SERVER_URL=http://immich-server:3001 - IMMICH_MACHINE_LEARNING_URL=http://immich-machine- learning:3003 - DB_HOSTNAME=immich-postgres - DB_USERNAME=immich - DB_PASSWORD=immich - DB_DATABASE_NAME=immich - REDIS_HOSTNAME=immich-redis - TYPESENSE_ENABLED=true - TYPESENSE_API_KEY=some-random-text volumes: - ./upload:/usr/src/app/upload entrypoint: ["/bin/sh", "./start-server.sh"] immich-microservices: container_name: immich-microservices image: ghcr.io/immich-app/immich-server:release restart: unless-stopped networks: - immich depends_on: - immich-redis - immich-postgres - immich-typesense environment: - IMMICH_WEB_URL=http://immich-web:3000 - IMMICH_SERVER_URL=http://immich-server:3001 - IMMICH_MACHINE_LEARNING_URL=http://immich-machine- learning:3003 - DB_HOSTNAME=immich-postgres - DB_USERNAME=immich - DB_PASSWORD=immich - DB_DATABASE_NAME=immich - REDIS_HOSTNAME=immich-redis - TYPESENSE_API_KEY=some-random-text volumes: - ./upload:/usr/src/app/upload entrypoint: ["/bin/sh", "./start-microservices.sh"] immich-machine-learning: container_name: immich-machine-learning image: ghcr.io/immich-app/immich-machine-learning:release restart: unless-stopped networks: - immich environment: - IMMICH_WEB_URL=http://immich-web:3000 - IMMICH_SERVER_URL=http://immich-server:3001 - IMMICH_MACHINE_LEARNING_URL=http://immich-machine- learning:3003 - DB_HOSTNAME=immich-postgres - DB_USERNAME=immich - DB_PASSWORD=immich - DB_DATABASE_NAME=immich - REDIS_HOSTNAME=immich-redis - TYPESENSE_API_KEY=some-random-text volumes: - ./upload:/usr/src/app/upload - ./cache:/cache immich-typesense: container_name: immich-typesense image: typesense/typesense:0.24.0 restart: unless-stopped networks: - immich environment: - TYPESENSE_API_KEY=some-random-text - TYPESENSE_DATA_DIR=/data volumes: - ./typesense:/data immich-redis: container_name: immich-redis image: redis:7.0.8-alpine restart: unless-stopped networks: - immich command: redis-server --save 30 1 --loglevel warning volumes: - ./redis:/data healthcheck: test: ["CMD", "redis-cli", "ping"] immich-postgres: container_name: immich-postgres image: postgres:15.2-alpine3.17 restart: unless-stopped networks: - immich environment: - TZ=Europe/Berlin - POSTGRES_DB=immich - POSTGRES_USER=immich - POSTGRES_PASSWORD=immich volumes: - ./postgres:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}"] ---------------------------------------------------------------------- nairou · 2023-10-07 22:10 Redis is another one. Why does Immich need a Redis server? It adds another moving part to a small use-case. Is the Postgres server too slow? Use something faster. Need to cache some data? The Immich server process is running the whole time, just keep data in memory. ---------------------------------------------------------------------- Accomplished-Lack721 · 2023-10-07 22:11 Memories on NextCloud does pretty much all of what you want for the service itself. Nextcloud performs BETTER with a separate database, but can also use SQLlite. Currently, it doesn't handle uploads directly itself - you do that through the NextCloud Files app or syncing with a NextCloud client. But the developer intends to add that at some point, and it sounds like soon. He JUST released an initial beta of an Android app and seems very receptive to feedback. ---------------------------------------------------------------------- Blackrazor_NZ · 2023-10-07 22:11 Yes it’s a commercial offering not OSS, but Synology Photos ticks every box you listed. I have over 2TB of photographic images and Syn Photos works great for self hosted shared storage for them, plus I can directly access all the files via NFS and SMB on the local network for Photo Supreme and Lightroom Classic for editing and organisation. ---------------------------------------------------------------------- zunfire7 · 2023-10-07 22:14 If you want speed, you need a DB, it’s not a bad thing, and there are plenty of ways to backup databases that are set and forget that is not a problem ---------------------------------------------------------------------- thenerdygeek · 2023-10-07 22:16 My one deal breaker feature that nobody seems to do is that I want it to read and write metadata from/to the files or xmp sidecar. After experiencing moving from one system to another, I never want to have to redo all that data and sorting again. There are standard ways to store that info with the image and I want to know that the software I choose will do so. ---------------------------------------------------------------------- nairou · 2023-10-07 22:17 >Why the need for SQLite? For a large library you'll want something bigger. Larger than what? My photo library has around 50k photos in it. Even if it was much much larger, I [doubt](https://www.sqlite.org/limits.html) SQLite would have a problem. ---------------------------------------------------------------------- thenerdygeek · 2023-10-07 22:17 I'm fine with a database but I want to know that the metadata will also be written to the image files or sidecars (optionally, ofc). ---------------------------------------------------------------------- nairou · 2023-10-07 22:18 If I found an option that ticked every box but required a DB, I'd gladly concede there and jump on it. ---------------------------------------------------------------------- nairou · 2023-10-07 22:19 Do you mean the EXIF data within the photos, or something else? ---------------------------------------------------------------------- rusl1 · 2023-10-07 22:20 I agree with the OP about the need for SQLite. I want to host these solutions on a stupid raspberry with 1gb ram. It's impossible to host a real db like postgres or MySQL with those specs. I do not expect to (or want to) use cool AI features, I just need to sync some thousands of pictures! ---------------------------------------------------------------------- thekrautboy · 2023-10-07 22:20 You have some very basic misunderstandings of these things it seems. If you want to know why it needs it and how it works, learn about it. Or just accept that the developers of Immich know what they are doing and that they dont require redis and postgres just to annoy you. Youre looking for a Google Photos alternative? Do you think Google runs on a single app? You think they never heard of things like Redis and Postgres? If you want a app to compete with something like Google Photos then it needs a few things extra. In theory they could create a single Docker image, that integrates Postgres and Redis and everything else. All into one giant bloated image. I assume that would make you happy then. But its a terrible idea and having these things separate is much better, and its the nature of Docker containers. ---------------------------------------------------------------------- rumblpak · 2023-10-07 22:22 Not all image formats support the same level of exif data and now you’re potentially converting image formats upon import, and again potentially losing quality. It’s all theoretical at this point but I’d be in favor of adding as much exif data as possible without image conversion. I’d honestly be more okay with completely losing the data in the database (including optional stuff outside of exif) than converting images to different formats. ---------------------------------------------------------------------- Lanten101 · 2023-10-07 22:23 It would, if you are trying to view the first photo in your 50k Library of photos . Besides immich has a script. Run it and it will create all container you need. All you have to do is update env to the point where your photos Will be stored ---------------------------------------------------------------------- nairou · 2023-10-07 22:25 But that's exactly my point. I've used DB servers, I've used Redis, I've written server software. From that perspective, I don't understand why they need it, unless they're planning ahead for truly epic public photo websites... ... Which is not my use case. I want to self-host a photo library for a few people, without installing enough muscle to expand hosting to my entire neighborhood. It's not a true complaint of Immich, they're doing great stuff. I just have different desires. ---------------------------------------------------------------------- themeadows94 · 2023-10-07 22:28 I just pasted the docker-compose into Portainer's stacks feature then changed the variables as instructed. It was marginally more complex than some dockers, but certainly not a major effort ---------------------------------------------------------------------- thekrautboy · 2023-10-07 22:28 > I don't understand why they need it Ask them? https://github.com/immich-app/immich/discussions > Which is not my use case. I want to self-host a photo library for a few people, without installing enough muscle to expand hosting to my entire neighborhood. But if all the features you demand in your OP are only met by Immich... then either use Immich or keep searching for your holy grail? ---------------------------------------------------------------------- fernatic19 · 2023-10-07 22:31 Wouldn't sqlite fail your requirement for supporting multiple users? If one user was accessing the database then all other users would be locked, right? ---------------------------------------------------------------------- mr_claw · 2023-10-07 22:31 The reason I pay for Google Photos is not for the storage, but so that I can search "[name] in Vienna" and get all the correct ones. ---------------------------------------------------------------------- thenerdygeek · 2023-10-07 22:36 Ideally that, but also xmp sidecar files (a standardized format for storing data in a separate text file to avoid having to rewrite the image file). Both the embedded and sidecar formats have support for keywords, person tags (including coordinates in the image), and more. I want all of that to be written and read in those standard formats by whatever tool I use. ---------------------------------------------------------------------- Other-Technician-718 · 2023-10-07 22:37 I use the nextcloud app on android - does automatic uploads of custom defined media folders to custom nextcloud folders and can delete the source files when uploaded. Even notifies if there is a new folder with pictures (e.g when a new messenger is installed the nextcloud app asks if those images should be automatically be uploaded) ---------------------------------------------------------------------- nairou · 2023-10-07 22:37 SQLite's requirement is that only a single process accesses it at a time. So a single server hosting requests for multiple users would be fine, so long as the server didn't try to multithread the database calls. ---------------------------------------------------------------------- Accomplished-Lack721 · 2023-10-07 22:39 I do this as well, and it's a good way to auto-upload new photos as I take them on my phone. It works well enough for now. But it (or using the NextCloud Files UI) is a suboptimal way of importing a specific batch of photos into the system and into Memories. It would be great, for instance, to be able to export a bunch of photos from Lightroom and then upload them straight to a gallery in Memories. ---------------------------------------------------------------------- nairou · 2023-10-07 22:40 >But if all the features you demand in your OP are only met by Immich... then either use Immich or keep searching for your holy grail? Hence this post. :) But even Immich is missing the auto-cleanup of photos on a phone that exist on the server. There's an existing discussion for that, but it's a low priority. ---------------------------------------------------------------------- azukaar · 2023-10-07 22:40 \> No separate database server needed (either use something simple like SQLite or just use the filesystem) This is never going to happen, a DB is required. With SQLite you'll end up with the Jellyfin nightmare all over again But it is not a big deal to have a separate database server ---------------------------------------------------------------------- thenerdygeek · 2023-10-07 22:41 Oh for sure I don't want it to convert. For whatever isn't supported embedded in the image though, I want it to write to an xmp sidecar file, which does support all of the data. ---------------------------------------------------------------------- azukaar · 2023-10-07 22:42 You cannot backup a SQLite database by backuping the files directly it will not work and you have a high chance of having unusable backups. You have to use the dumping functionality of the database instead ---------------------------------------------------------------------- azukaar · 2023-10-07 22:43 50k is a lot for SQLite, what the benchmark does not show you is that in a real life setup, multiple rows are accessed at the same time, and even edited, and SQLite cannot deal with that ---------------------------------------------------------------------- rumblpak · 2023-10-07 22:44 Fair enough, but many “default” image viewers don’t support that. At the end of the day, it’s all a balance. I don’t really have a preference but it could be optimized to be faster in a DB than to randomly seek and open files. ---------------------------------------------------------------------- thenerdygeek · 2023-10-07 22:48 I think having a db for optimization is great, I just want it to also read/write changes when they are made so that when this software eventually dies off, all the time and effort I put in to organizing thousands of photos isn't lost. It's true that the basic image viewers don't support much of that, but I think it's reasonable to expect an image organization tool to support using the standardized organization data formats. ---------------------------------------------------------------------- thekrautboy · 2023-10-07 22:54 Its really terrible that people do not create 100% of your wet-dream software for free. A shame that they only get 95% of it right just for you... You probably dont mean to be, but youre coming off a bit entitled, sorry. If you want your perfect software, pay people to create it for you. Or dont spend money and accept a few compromises. Or better yet, consider donating to a project like Immich: https://immich.app/docs/overview/support-the-project#donation ---------------------------------------------------------------------- xisonc · 2023-10-07 23:01 Nextcloud can do basically everything you want, but I'd recommend using MySQL instead of SQLite. Has the added benefits of also backing up any kind of file if you want to ---------------------------------------------------------------------- thekrautboy · 2023-10-07 23:14 > on a NixOS machine, using podman That choice is on you, you cant blame Immich for that. ---------------------------------------------------------------------- SamSausages · 2023-10-07 23:25 There is an Immich all in one container that works well ---------------------------------------------------------------------- thekrautboy · 2023-10-07 23:29 Unofficial i suppose? Could you link me to it please? But its probably a terrible idea to use it. ---------------------------------------------------------------------- cakee_ru · 2023-10-07 23:34 I tar'ed my real boy databases for years, no issues when restoring. assuming you do everything as root so it preserves all the weird bad boy's database filesystem thingies. ---------------------------------------------------------------------- thekrautboy · 2023-10-07 23:36 I feel your pain with the Raspi and 1GB of RAM (Raspi 3B?). I used those for a long time myself. But consider that you can now get, for example, a Quad-core Celeron NUC-like for <100€ plus a stick of RAM and stuff in either a m2 or SATA SSD, often people have one left over anyway. I know "cheap" doesnt mean "cheap" for everyone. But a simple NUC is so much more powerful than ANY (including Raspi5) can ever be, for roughly the same price as a current Raspi4 or 5 model, and those are not including basic things like a case and power supply. You could also search your local classifieds (like craigslist or whatever) for ThinClients/MiniPCs, those have become very popular for selfhosting. Search for brands like Dell, HP, Lenovo. You can get models with a 6th Gen Intel CPU for like $30-50. I would aim a little higher and try to get a 8+ Gen Intel with ideally 16GB of RAM, you can catch those for <$100 very often and they very very easily beat any Raspi in performance. Plus youre running x86_x64 as platform then and youre not restricted to only software for ARM anymore. ---------------------------------------------------------------------- thekrautboy · 2023-10-07 23:38 Pffff, what do **you** know ;) ---------------------------------------------------------------------- thekrautboy · 2023-10-07 23:41 *My uncle was driving his car without wearing a seatbelt for 40 years and never died in a crash.* ---------------------------------------------------------------------- smnhdy · 2023-10-07 23:42 I’m a god damn idiot and I managed to get it up and running with my 60k photo library with much of an issue… so low of a bar should mean any mother hugger can do it! ---------------------------------------------------------------------- nairou · 2023-10-07 23:45 Got a link for the Jellyfin nightmare? I haven't used Jellyfin, but I'm curious how SQLite became the bottleneck. ---------------------------------------------------------------------- poultryinmotion1 · 2023-10-07 23:48 What's wrong with nextcloud? ---------------------------------------------------------------------- cakee_ru · 2023-10-07 23:49 better tell me what's wrong with tar. ---------------------------------------------------------------------- thekrautboy · 2023-10-07 23:57 Nothing is wrong with tar. But just because for yourself backing up databases in this way has worked, doesnt automatically mean its a good idea for everyone to do it like this. You have simply been lucky so far. Or have you ever restored from one of your backups? Even just as a regular test, which everyone should do. ---------------------------------------------------------------------- l8s9 · 2023-10-08 00:15 Nextcloud is great! ---------------------------------------------------------------------- _avee_ · 2023-10-08 00:17 I imagine Google Photos has even more services managing it’s backend. This is hardly a concern especially when you use docker-compose. Even if it was 20 containers, who really cares? ---------------------------------------------------------------------- _avee_ · 2023-10-08 00:25 They even mention it in documentation: https://documentation.immich.app/docs/install/all-in-one ---------------------------------------------------------------------- thekrautboy · 2023-10-08 00:39 As i assumed, unofficial: > This is a community contribution and not officially supported by the Immich team, but included here for convenience. But maybe this will satisfy OP, it still uses a db etc but they are not aware of it, its just a single thing to deploy and use. /u/nairou look at this ---------------------------------------------------------------------- Micex · 2023-10-08 00:45 just use Google photos man. It looks like you have a stigma against the db that is being used. What is your paint point exactly is it because it’s not using sql lite? What difference does it make if it is SQLite others it’s pretty transparent to the users. It uses other db because it’s a solution for large number of people who might have extremely large collections with multiple users. ---------------------------------------------------------------------- hdddanbrown · 2023-10-08 00:49 A lot. ---------------------------------------------------------------------- radialapps · 2023-10-08 00:52 Hi there, [Memories](https://github.com/pulsejet/memories) (disclaimer: I'm the author) can do all of these with some caveats. * Self-hostable server, easy to run in an Docker image: you only need a single Nextcloud Docker image for the minimal setup. * Support multiple users, each with separate camera libraries: yes * No separate database server needed: it can use SQLite (but it's not recommended). More context below. * Android app : is in beta * Decent enough to be used as the primary photo app on the phone : well I use it * View both local and remote photos, as a single cohesive experience : yes * Automatically backup photos to the server: here's one caveat -- you need two apps on your phone - the Memories app to view your library and the Nextcloud app for auto uploads. Somewhat like Google Photos and Drive. This is a one-time setup of course. * Automatically (or manually) clear photos from the phone that are on the server : the auto upload feature handles this * Filesystem-based photo album organization: yes, folders are first class citizens More context on SQLite: the reason it's not recommended in most cases is because it barely supports concurrency and your performance will suffer with multiple users. Keep in mind that a self-hosted app needs much more than just finding files -- in particular it needs security checks on every request which are going to call your database (unless you're okay if anyone can access your media, in which case you just need an NFS mount). A second reason is SQLite doesn't support many advanced features; for instance Memories uses the database geo features for reverse geocoding, but these don't exist in SQLite. ---------------------------------------------------------------------- radialapps · 2023-10-08 00:55 FYI, [Memories](https://memories.gallery/) can edit EXIF metadata (in bulk if required). At leat the the basic stuff like date, geolocation, title / description / camera info etc. So can [PhotoPrism](https://www.photoprism.app/), I believe. ---------------------------------------------------------------------- nucleotid3 · 2023-10-08 00:56 I tried a lot of self-hosted options when looking for photo storage. In the end I gave up though and went with Ente. For the $100 (ish) per year, it was worth it to have everything already built for me. Android app automatically syncs my photos. There is a web and desktop app available as well. I can add other people to my account (I don't need to pay more just so my wife can upload photos as well). Can share albums or individual photos with people as needed. E2EE as well so that's a big bonus. This was the best Google Photos alternative I was able to find without having to mess around with self-hosted solutions. While I'm all for self-hosting, in this case it just wasn't worth my time or effort. ---------------------------------------------------------------------- nairou · 2023-10-08 00:59 Gotta admit, Ente had been extremely tempting. I'm just having trouble letting go of control. Paying to host all of my photos on someone else's servers, when I could host it myself, is a block I haven't managed to cross. Yet. ---------------------------------------------------------------------- nairou · 2023-10-08 01:03 Greatly appreciate the database comparison! Memories, and it's mobile app, look pretty nice. Though I suspect hosting Nextcloud just for a photo server would be overkill, as I've never needed Nextcloud's other features so far. ---------------------------------------------------------------------- Skotticus · 2023-10-08 01:09 Every db I've tried to do this with failed to restore and I had to rebuild manually. Dumping and a proper backup is the way I actually *prefer* a separate db container to something integrated. You can have one db server to manage databases for multiple services and back up all the dbs with one command (or with a script or something like borgmatic). Having a bunch of different containers with integrated sqlite dbs to individually back up is terrible, especially because it's super easy to forget the app has a DB that needs to be backed up. ---------------------------------------------------------------------- thekrautboy · 2023-10-08 01:12 Uhm thanks for telling me, but i guess this should me more info directed at OP. ---------------------------------------------------------------------- radialapps · 2023-10-08 01:13 Nextcloud is quite flexible; you can disable most features and keep only the very basic parts active. For instance the Memories [demo](https://demo.memories.gallery/apps/memories/) instance only has the files and Memories functionality enabled. ---------------------------------------------------------------------- Skotticus · 2023-10-08 01:14 Just adding my support to your statement. OP will read it or they won't. ---------------------------------------------------------------------- thekrautboy · 2023-10-08 01:18 My guess is they wont. ---------------------------------------------------------------------- arwinda · 2023-10-08 01:19 You've been lucky, that's all. The database is a file, if you backup it while it's written by the application, you might end up with a corrupt database. It's even mentioned on the website: https://www.sqlite.org/howtocorrupt.html The fact that it did not happen to you means that your backup ran and runs at times when no application is active. Or you never tested your backup. Or both. ---------------------------------------------------------------------- arwinda · 2023-10-08 01:21 You can back up the file and it will work. But only if no application is accessing the database at the same time. Still not a good idea though. ---------------------------------------------------------------------- Lostillini · 2023-10-08 01:21 Especially nowadays with fkn chatGPT making everything self-hosting an absolute breeeze. ---------------------------------------------------------------------- TheMcRibReturneth · 2023-10-08 01:32 Immich has all this, save for your silly request about a db. ---------------------------------------------------------------------- nairou · 2023-10-08 01:33 It doesn't have the automatic clearing of uploaded photos from mobile devices. The DB comment was just a wishlist item, but got blown out of proportion. ---------------------------------------------------------------------- windows300 · 2023-10-08 01:36 Good thing most Web Server frameworks are not async or run multiple requests on different threads... /s ---------------------------------------------------------------------- nairou · 2023-10-08 01:37 I'm reading all of them. The DB thread really got blown out of proportion. :) I agree about a separate DB if the DB contains data I care about. If it's just an implementation detail, metadata to help the app run, then I don't need to know about it and something integrated is reasonable. ---------------------------------------------------------------------- nairou · 2023-10-08 01:40 Well, sure. I'm not blaming anyone. But my choice brought the question to light. ---------------------------------------------------------------------- nairou · 2023-10-08 01:41 Certainly interesting that it exists! ---------------------------------------------------------------------- a_40oz_of_Mickeys · 2023-10-08 01:45 I am planning to set up immich, but are there any solutions where the app has an option to delete local files once they're backed up? ---------------------------------------------------------------------- thekrautboy · 2023-10-08 01:51 Its a terrible choice, but if it makes you happy, okay. ---------------------------------------------------------------------- thekrautboy · 2023-10-08 01:52 *yawn* ---------------------------------------------------------------------- flyingvwap · 2023-10-08 02:38 Praise be ---------------------------------------------------------------------- survivallama · 2023-10-08 02:47 >plex Is there a way around this yet? ---------------------------------------------------------------------- ydna_eissua · 2023-10-08 03:28 I prefer sqlite where possible for home use. My method for consistent backups is I have a cronjob `sqlite3 database.sqlite3 ".backup backup.sqlite3"` for each app that has one creating a dump of the db in the same directory as the active one. All the state for my containers look like: apps/foo-app/{data, config} apps/bar-app/{data, config} Then I just backup the whole `apps/` directory. I like this approach because it means only one container per app, so i can pick up a directory and run it elsewhere without much thought re splitting a database. But different strokes for different folks :) ---------------------------------------------------------------------- rocket1420 · 2023-10-08 03:29 Use jellyfin? I dunno, I'm in a weird place between wanting to get rid of Plex, which lately has been giving me playback errors again (I can stop a movie that was just playing, and it will in no way let me play it again, even from the beginning. Forget the error, but yeah), and wanting to use jellyfin, which seems to be lacking in features, especially in the clients. But tone-mapping only works in jellyfin for me, so there's that too I guess. ---------------------------------------------------------------------- survivallama · 2023-10-08 03:40 I use both emby and plex. Plex is a better experience, but emby is better as a self hosted software. ---------------------------------------------------------------------- plasticbomb1986 · 2023-10-08 03:49 And jellyfin... And worst if you have users who speak different languages. Plus the data isn't separated logically in the sqlite setup. ---------------------------------------------------------------------- ChildLearningClub · 2023-10-08 04:35 I would also recommend giving Memories a try. I have also used or researched many of the other self hosted options myself. I personally think it is great that there are as many free and open source options as there are. That said, I think that you will find that most of what you are looking for you will find with Memories. I also think that it was a smart move on Varun’s part to piggy back off of Nextcloud. Nextcloud provides a solid foundation for your important photos and files and provides a lot of what would be redundant functionality to build into an app out of the box. On the database front I would agree with everyone here, and use something like MariaDB. Invest a little of what you are not paying for the non self hosted solutions and get something with a little more power. To speak to your last point. I’m able to connect on my local network and have everything synced with Digikam. I have Digikam set to upload into year/month/day exactly as you can set within the Nextcloud apps upload settings (they load to the same folders). All photos taken from my phone and Cameras are uploaded and available across any device to view and share. Is it perfect, no, but it beats the pants off even some of the paid for solutions, and I know where all my files are :) Oh and one last point, of course the most important thing is that it functions as you want, but who wants to be looking at ugly UI all day ;) not naming any names, but there are a few offenders 😂 ---------------------------------------------------------------------- ChildLearningClub · 2023-10-08 04:52 I have found this to be the best solution too, using the database for indexing and bringing the photos up quick, and storing as much data as possible to the image itself. Digikam works well for this I have found. ---------------------------------------------------------------------- ExpertPath · 2023-10-08 05:35 Synology photos will do the trick ---------------------------------------------------------------------- ReinoutWolter · 2023-10-08 05:41 Have you taken a look at Cheese? [https://cheese.wip2p.com](https://cheese.wip2p.com) Its easy to install, supports multiple users, built in DB, web app works well on mobile including PWA install. No filesystem support though, and the photos uploaded are shrunk to smaller sizes so not good as a backup. But it could be tweaked to do that. ---------------------------------------------------------------------- DeusExMaChino · 2023-10-08 06:10 How large until it starts to blow? Mine is around 30+ TB, zero issues. ---------------------------------------------------------------------- mektigh · 2023-10-08 06:48 !RemindMe 11 hours ---------------------------------------------------------------------- RemindMeBot · 2023-10-08 06:49 I will be messaging you in 11 hours on [**2023-10-08 17:48:39 UTC**](h ttp://www.wolframalpha.com/input/?i=2023-10- 08%2017:48:39%20UTC%20To%20Local%20Time) to remind you of [**this link **](https://www.reddit.com/r/selfhosted/comments/172gbv2/every_google_ photos_alternative_is_missing_some/k3yibic/?context=3) [**CLICK THIS LINK**](https://www.reddit.com/message/compose/?to=Remin dMeBot&subject=Reminder&message=%5Bhttps%3A%2F%2Fwww.reddit.com%2Fr%2F selfhosted%2Fcomments%2F172gbv2%2Fevery_google_photos_alternative_is_m issing_some%2Fk3yibic%2F%5D%0A%0ARemindMe%21%202023-10- 08%2017%3A48%3A39%20UTC) to send a PM to also be reminded and to reduce spam. ^(Parent commenter can ) [^(delete this message to hide from others.)] (https://www.reddit.com/message/compose/?to=RemindMeBot&subject=Delete %20Comment&message=Delete%21%20172gbv2) ***** |[^(Info)](https://www.reddit.com/r/RemindMeBot/comments/e1bko7/remind mebot_info_v21/)|[^(Custom)](https://www.reddit.com/message/compose/?t o=RemindMeBot&subject=Reminder&message=%5BLink%20or%20message%20inside %20square%20brackets%5D%0A%0ARemindMe%21%20Time%20period%20here)|[^(Yo ur Reminders)](https://www.reddit.com/message/compose/?to=RemindMeBot& subject=List%20Of%20Reminders&message=MyReminders%21)|[^(Feedback)](ht tps://www.reddit.com/message/compose/?to=Watchful1&subject=RemindMeBot %20Feedback)| |-|-|-|-| ---------------------------------------------------------------------- botterway · 2023-10-08 07:45 SQLite is more than capable. I use it in my app ([Damselfly](http://github.com/webreaper/damselfly)) and it's super fast, works great for multiple concurrent users, and is mega simple. I looked at moving to postgres, but in the end found it just wasn't necessary. I get OP's point though. If I ever do support postgres for Damselfly, I'll build an all-in-one docker image that includes Damselfly and postgres so that people installing it just spin up the container and don't have to worry about multiple containers to host the app and the DB server separately. ---------------------------------------------------------------------- botterway · 2023-10-08 07:47 I presume they're referring to the problems when you run SQLite on remote volumes. SQLite doesn't behave well if the actual DB is mounted on a separate machine to the app that's using it. But the simple answer to that is.... don't mount it on a separate volume. ---------------------------------------------------------------------- botterway · 2023-10-08 07:50 One suggestion to solve this would be to run multiple photo managers. Any of the apps that work directly with the photos on the disk (i.e., ones that don't require the images to be ingested into a separate storage area) can work together. So for example, you could: * Run Damselfly for fast search and tagging * Run Photoprism for viewing * Run Synology Memories for the mobile app Have them all running at once, pointing to the same image folder. ---------------------------------------------------------------------- estevez__ · 2023-10-08 08:06 +1 for Synology Tried several most popular solutions and Synology Photos is the best. ---------------------------------------------------------------------- violet-crayola · 2023-10-08 09:02 Ya all are obsessed with images. What are you doing - jerking off to them? ---------------------------------------------------------------------- jyrkesh · 2023-10-08 09:28 > Optional: Filesystem-based photo album organization (with the ability to adapt to changes made outside of the server UI) This is not optional for me. My photos are organized according to a folder structure, and I don't want to take on proprietary metadata. I've been burned too many times. (Picasa, Google Photos, Apple Photos, etc.) I use Lightroom with very minimal usage of album stuff, relying mostly on the folders. But it's not a Gallery app, and it's not easy to import photos on a regular basis without going through a big workflow. I love the Google Photos experience. I just don't love paying Google to store (and then take advantage of) my data. Immich and Photoprism both unfortunately fell short on that front (though maybe Immich does it now? saw a new release recently but didn't dig in). Now, I'm about halfway through a Memories installation, and I was heartened to see that they released a native Android app beta the other day. It's just a lot of work. Unfortunately, OP, I think you're going to either have to give up the simplicity of install, or some of the features. But that's kinda the tradeoff here. It turns out that HA, performant, multi-tenant services aren't that easy to run. (Tbh, I think we've all been spoiled by Plex et al being actually halfway decent at it. But idk if any of you are running multi-tenant *arr, it does _not_ like that.) ---------------------------------------------------------------------- ifndefx · 2023-10-08 09:28 Tried quite a few, in the end I bought a synology Nas. Although I have been disappointed because I was expecting a lot more, closer to Google photos. So far nothing is as good as Google photos. ---------------------------------------------------------------------- jyrkesh · 2023-10-08 09:32 Multi-tenancy and SQLite is a recipe for disaster. The server basically can _never_ make a mistake, and the whole point of using a real database server is so all that decades of intelligent logic about how to handle concurrent incoming requests, reads/writes, locks, all that is abstracted away from the software that just wants to dependably read from and write to a database. ---------------------------------------------------------------------- SungrayHo · 2023-10-08 09:52 You can use the imagegenius immich image. Works great. ---------------------------------------------------------------------- Ben4425 · 2023-10-08 10:00 As botterway said, SQLite has issues if the database is on a remote network share. Specifically, threads in a multi-threaded application can't safely access the SQLite database simultaneously when the database is on a remote share. The implementation of file locking over the network isn't as robust as file locking in the local filesystem so eventually a multi-threaded app will **corrupt** its own database. Real databases (postgres, mysql, etc) don't have this multi-threaded locking problem. ---------------------------------------------------------------------- AltLawyer · 2023-10-08 10:05 You shouldn't have an issue with it regardless, it's the better way of saving the data ---------------------------------------------------------------------- [deleted] · 2023-10-08 10:22 [removed] ---------------------------------------------------------------------- cakee_ru · 2023-10-08 10:40 I've restored not once. ofc I stop my services before backup! still you haven't told me what's wrong with tar and yet said my way is bad. how correct filesystem-level backup can be bad? ---------------------------------------------------------------------- cakee_ru · 2023-10-08 10:41 sure thing I stop my services before backup! ---------------------------------------------------------------------- MoosieOfDoom · 2023-10-08 10:53 It's more the number of movies/series, not the number of Gb/Tb. ---------------------------------------------------------------------- azukaar · 2023-10-08 11:05 Jellyfin has notorious performance issue because of SQLite, and they have been trying to move out of SQLite for at least a year now, but because of how huge the codebase is, it has been a NIGHTMARE. The ticket tracking the migration to EFCore (an agnostic ORM that would enable other DB than SQLite) has been opened for 4 years: https://github.com/jellyfin/jellyfin/issues/2518 ---------------------------------------------------------------------- azukaar · 2023-10-08 11:06 Lol but how are you going to ensure that your app is not accessing your DB while you copy your backup???? If it works on a roulette, it **does not work** especially for a backup... What are those downvotes for lol, you like to play games with your backups?? ---------------------------------------------------------------------- azukaar · 2023-10-08 11:08 SQLite has limited support for locks granularity + very poor concurrency (+ does not support concurrent writers at all). This will destroy the performance of most real-life applications ---------------------------------------------------------------------- thenerdygeek · 2023-10-08 11:15 Yeah, digikam has become my primary organizing tool because of this, but I would love to have something self-hosted that I can use from any device anywhere (a la immich, librephotos, etc) that also supported a lot more of it. ---------------------------------------------------------------------- baboonandsloth · 2023-10-08 11:31 Nextcloud and les pas ---------------------------------------------------------------------- Zealousideal_Rate420 · 2023-10-08 11:43 https://github.com/immich-app/immich#disclaimer Until this disclaimer changes, immich won't remove anything from your phone. Maybe you need to park this for a few months, hopefully immich or Memories will be perfect for you then. ---------------------------------------------------------------------- ayers_81 · 2023-10-08 11:43 Immich. You'll thank me ---------------------------------------------------------------------- M-fz · 2023-10-08 12:05 That option is Immich… ---------------------------------------------------------------------- botterway · 2023-10-08 12:48 Not if you configure it right. It's not going to scale to 200 users, but for a handful of users on a self-hosted app it's absolutely fine. I have it tuned to the most concurrently friendly settings in my app, Damselfly, and it's still lightning fast even with multi-million row tables. ---------------------------------------------------------------------- azukaar · 2023-10-08 13:11 Any "selfhosted" apps like media center, photo center etc... do full- set scanning on a schedule. That alone will already periodically tank your DB access altogether ---------------------------------------------------------------------- botterway · 2023-10-08 13:27 Lolno. Damselfly does a full index on startup, which takes a few minutes for my 600k photo collection. After that it just watches iNotify handles and refreshes per disk changes as they happen. No DB concurrency issues so far. ---------------------------------------------------------------------- arwinda · 2023-10-08 13:57 You don't have to stop your services. But then you can't expect a working backup. Your backup strategy is faulty, and I'm not the only one telling you this. ---------------------------------------------------------------------- arwinda · 2023-10-08 14:01 Depends on the use case. If this is a desktop application, doing a backup at night is a reasonable strategy. If this is a server application, one way would be to stop services beforehand. If it's a rarely used service, a scheduled downtime of a couple minutes might be OK. If this is a heavily used service, it begs the question why it is using a file based database in the first place. In the end, if the problems around taking backupa are known and taken into account, it works. Just doing a file based backup without knowledge and strategy is going to create problems at some point. ---------------------------------------------------------------------- nairou · 2023-10-08 14:12 Dumb question, but does Synology Photos require use of their NAS? ---------------------------------------------------------------------- nairou · 2023-10-08 14:52 Interesting idea! I'll have to look into that, thanks. ---------------------------------------------------------------------- cakee_ru · 2023-10-08 15:08 yet no one can explain the reason. someone posted sqlite link, but as I stop the db engine, no writes are made while files are read. out of curiosity I wrote a script that repeats the whole process (stop, backup, delete, extract, start, query db). I ran it a hundred times, it worked all of them. not being rude, but where are people like you come from? have you ever tried to do that with tar? I hate to use that card, but I am a CS major. next you're gonna tell me that bit-perfect filesystem copy will break postgress, too? ---------------------------------------------------------------------- xlerate · 2023-10-08 15:14 I'm using Emby. It's been great and regularly updated. ---------------------------------------------------------------------- louislamlam · 2023-10-08 15:31 For me, I am keeping Google Photos. And setup gphotos-sync to backup all photos back to my harddisk. https://github.com/gilesknap/gphotos-sync ---------------------------------------------------------------------- RydRychards · 2023-10-08 15:38 You could use the android app "foldersync" to sync the pictures. It can delete the pictures from your android once they are synced. ---------------------------------------------------------------------- arwinda · 2023-10-08 15:49 > no one can explain Huh, the SQLite website is already explaining what can happen. > as I stop the db engine There is no "db engine" in SQLite. > I wrote a script Your entire explanation tells me that all you did was repeat some process, without understanding what it is doing, and most important without considering corner cases. Database engines today are complex, and rely on operating systems and well-specified behavior. Your little script doesn't even hit any potential problems. Try this again with a SQLite file in the hundreds of MB, and in parallel update tables which are in the beginning and the end of the database file. And also not only "query the db", but verify the data. Your small database likely lives in memory cache, which means your copy operation for tar is almost instant. Scale this to a large database: * tar starts reading the beginning of the file * database changes something at the end * tar continues reading * database changes something at the beginning of the file, a part which is already in your tar archive * boom This is basic database stuff. Every database product handles this differently, and you need to know how to do backups of every database. > not being rude, but where are people like you come from From roughly 25 years working with several different database products. And not to be rude, but I've seen people like you claiming that their scripts are working fine - until they don't. Not only private stuff, but entire companies relied on people doing backups and not knowing how the product works. ---------------------------------------------------------------------- DeusExMaChino · 2023-10-08 16:05 3200 movies and 14000 episodes. Have I made my point yet? ---------------------------------------------------------------------- cakee_ru · 2023-10-08 16:20 mtime would change, tar'd report that. ---------------------------------------------------------------------- Blackrazor_NZ · 2023-10-08 16:45 Yep, it’s a package that comes free with their NAS hardware. The other thing I get a lot of use out of is Synology Drive, which is essentially self-hosted Dropbox / OneDrive and is excellent. ---------------------------------------------------------------------- fusiondust · 2023-10-08 17:51 Plex does. You can use editors to access the SQLite3 databases if you get bored with the API. ---------------------------------------------------------------------- gold_rush_doom · 2023-10-08 19:30 There is one, but you need to buy their hardware: Synology Photos. ---------------------------------------------------------------------- sarinkhan · 2023-10-08 19:43 Hello, about the separated database, did you try to use docker- compose? you then have a dedicated docker for the database of your photoprism, you don't expose ports so it consume no port on your server, and only your photoapp talks to it. Before using docker-compose, when using simple dockers, i used to shy away from external DBs, but now i feel like it is as easy to have a mariadb or whatever the docker wants, and it remains invisible to anyone else, and has almost no impact on the host... Not that i want you to use external DBs, but it opens up a world of possibilities. Also, what a pleasure to spin a complete service with just one config file, and sudo docker-compose up -d ---------------------------------------------------------------------- readit-on-reddit · 2023-10-08 19:49 It would be easier if backing up the container config directories also backed up the db so I see where OP is coming from. As it stands, you have to run an extra script that backs up all the db servers regularly. Then, if you want to restore, you have to remember to restore every db container individually. ---------------------------------------------------------------------- readit-on-reddit · 2023-10-08 20:57 Can you clear photos from your phone automatically and only host them on Immich? That is, can you tell Immich to keep selected photos/videos in the server only? ---------------------------------------------------------------------- Equanimited · 2023-10-08 22:30 A properly tuned Nextcloud with redis/ mariadb and memories has worked like a dream. Can’t wait for an iOS app. ---------------------------------------------------------------------- a_40oz_of_Mickeys · 2023-10-08 23:11 I'll give it a shot, thanks. ---------------------------------------------------------------------- Free_Librarian-T · 2023-10-09 12:56 I've tried them all, photoprism shines. All you need is two docker containers, can't be any more simpler than that... well maybe besides one docker container 😁. In my opinion if you want simplicity use a commercial solution, like Google photos. This post is a bit unusual, due to all the requirements you have. ---------------------------------------------------------------------- ItalyPaleAle · 2023-10-09 14:44 Most of these apps are open source created by volunteers. If something hasn’t been implemented, it’s because no one volunteered to do that, or because it’s in the backlog behind things with higher priority. Being open source also means that if you do care about a feature, you could submit a pull request yourself! ---------------------------------------------------------------------- jrasm91 · 2023-10-09 19:00 Immich is designed to scale horizontally and redis enables us to do that quite easily. Specifically we use BullMQ \[0\], which is a redis based queuing tool and also the redis adapter for web sockets \[1\]. The immich-server and immich-microservices can seamlessly scale now. \[0\] https://docs.bullmq.io/ \[1\] [https://socket.io/docs/v4/redis- adapter/](https://socket.io/docs/v4/redis-adapter/) If you don't care about performance and you only want a small footprint, feel free to use something else. ---------------------------------------------------------------------- jrasm91 · 2023-10-09 19:04 >After experiencing moving from one system to another, I never want to have to redo all that data and sorting again. There are standard ways to store that info with the image and I want to know that the software I choose will do so. Immich supports reading from XMP and I'm sure it'll have writing to XMP in the future. ---------------------------------------------------------------------- altran1502 · 2023-10-09 19:04 Hello, we have information of the architecture and the stack and how everything is put together in Immich here https://immich.app/docs/developer/architecture ---------------------------------------------------------------------- jrasm91 · 2023-10-09 19:05 Oh, I have not seen "including coordinates in the image" before, but this would be good to look into. Do you have any references/standards/examples of this? ---------------------------------------------------------------------- jrasm91 · 2023-10-09 19:07 The thing with SQLite is it can't handle concurrent writes very well and that has a big impact on the design and performance of the system. Immich does lots of things in parallel and I don't think it would ever work very well with SQLite. ---------------------------------------------------------------------- jrasm91 · 2023-10-09 19:12 If you have multi-user web-based access with access controls, album and asset editing, sharing, uploading, viewing, streaming, downloading, and parallel background jobs to generate thumbnails, transcode videos, etc in the background, that sounds like a concurrency disaster IMO. You can avoid running into concurrency limitations by not having all those features, but it definitely limits what and how you can build in the future. ---------------------------------------------------------------------- jrasm91 · 2023-10-09 19:16 That and, given the pure volume of solutions out there, makes me think \_why\_ someone hasn't built it yet. The fact that so many good solutions exist with either (1) a database server with the features you want, or (2) no database server, but limited features is a hint that they are competing/conflicting priorities. ---------------------------------------------------------------------- botterway · 2023-10-09 19:20 And yet my app has every single one of those features (except for uploading and streaming because I don't support video yet), and has no SQLite concurrency issues whatsoever. Honestly, you keep making these statements, and yet I've ***literally*** written an app that does all this and had it 'in production' for 3-4 years without issues. A thousand stars on github indicates it's working for other people too. So I'm really not sure why you keep trying to assert this argument. ---------------------------------------------------------------------- jrasm91 · 2023-10-09 19:33 I think this is a highly debated topic, and there are lots of hacker news threads to prove it. At the end of the day I think there are different use cases and limitations with both situations. Immich is specifically designed to scale horizontally with multiple processes reading and writing to the database, potentially on separate machines in the same network. I don't think SQLite was ever designed for this type of concurrency. Does your application scale past a single machine? ---------------------------------------------------------------------- botterway · 2023-10-09 19:41 No, my app isn't designed for horizontal scaling like that. Obviously, if/when I elected to support that I'd need to switch from SQLite, as it wouldn't work in that architectural design. It could changed to be horizontally scaled, and it would be trivial to switch it over to Postgres. But I'm not sure that's really relevant - as it's not really what self-hosted apps like this are about. What the developer of Immich is doing is clearly way broader than the type of self-hosted single-host installation that apps like mine, Photoprism, Synology Photos etc are doing. Good luck to him, but I don't think it's something any of my users care about or would be interested in. ---------------------------------------------------------------------- ItalyPaleAle · 2023-10-09 19:48 …or simply a hint that whoever created that, didn’t have a need to support more databases. One thing that I was hoping to get across is that these are all free and OSS apps that are created by volunteers, primarily to scratch their own itches. Most maintainers do not get paid. So just asking “why no one implemented this” is not really fair to the maintainers, and if someone really wants a feature they can try and implement that themselves (or pay someone to do that). I’m an OSS maintainer myself, and know this pain personally. ---------------------------------------------------------------------- jrasm91 · 2023-10-09 20:05 Yeah, I guess that was my point. SQLite has limitations and Immich was designed from the beginning to scale to large libraries and take full advantage of all available hardware. Also, wanting to be able to grow without limitations. There is also a huge collection of libraries and tools out there for Postgres already. It is an efficient database that uses minimal resources to begin with and to us, the restrictions of SQLite were not worth the tradeoff. ---------------------------------------------------------------------- botterway · 2023-10-09 20:54 But your point isn't really relevant. You've gone from "what about the Jellyfin issue?" to "Sqlite won't work for a single instance self hosted photo app because concurrency", to hearing that it works fine in the actual app I've built, and now you've changed position to "but Sqlite won't scale to a multi-instance clustered horizontally scalable app" - which was never part of the discussion. Massive strawman. ---------------------------------------------------------------------- jrasm91 · 2023-10-09 22:58 > What the developer of Immich is doing is clearly way broader than the type of self-hosted single-host installation that apps like mine, Photoprism, Synology Photos etc are doing. Good luck to him, but I don't think it's something any of my users care about or would be interested in. Literally gave you the answer and showed the limitations of SQLite and concurrency. ---------------------------------------------------------------------- fivestones · 2023-10-22 21:06 > immich does it now ---------------------------------------------------------------------- sallysensational · 2023-10-28 18:26 Except face recognition and search is terrible on Synology Photos. That is the only reason I am tied to Google. I want to badly to drop it. ---------------------------------------------------------------------- sallysensational · 2023-10-28 18:28 exactly! Is there an alternative that does this? ---------------------------------------------------------------------- Blackrazor_NZ · 2023-10-28 20:05 I mainly do travel and family photography so to be honest I’ve never had any issues with the facial recognition - but also, I think people overlook the fact that it’s just a storage space on a NAS, and can be accessed as a network drive if you like, so I do most of my administration via PhotoSupreme or Lightroom. It’s the secret sauce of SynPhotos- it’s a cloud service when you want a cloud service, and a local storage when you want a local storage. ---------------------------------------------------------------------- sallysensational · 2023-10-28 20:14 If you're looking for this photo storage on a NAS then there are hundreds of great solutions. If you're looking for an alternative to Google photos, I have not found a good competitor yet. I love the ability to go back and find certain types of objects or certain locations or certain faces that I have tagged. ---------------------------------------------------------------------- Blackrazor_NZ · 2023-10-28 21:08 PhotoSupreme does all of that well. What it doesn’t do is automatically geotag photos based on your movements, but I always found that kinda creepy anyway.