I
Immichβ€’6mo ago
LouCapo

Noob here - install immich on an old mac

i have an old mac where i store all my photos. i cannot get docker compose to install as a result. is there anything else i can do to get this running for me?
76 Replies
Immich
Immichβ€’6mo ago
:wave: Hey @LouCapo, Thanks for reaching out to us. Please follow the recommended actions below; this will help us be more effective in our support effort and leave more time for building Immich :immich:. References - Container Logs: docker compose logs docs - Container Status: docker compose ps docs - Reverse Proxy: https://immich.app/docs/administration/reverse-proxy Checklist 1. :blue_square: I have verified I'm on the latest release(note that mobile app releases may take some time). 2. :blue_square: I have read applicable release notes. 3. :blue_square: I have reviewed the FAQs for known issues. 4. :blue_square: I have reviewed Github for known issues. 5. :blue_square: I have tried accessing Immich via local ip (without a custom reverse proxy). 6. :blue_square: I have uploaded the relevant logs, docker compose, and .env files, making sure to use code formatting. 7. :blue_square: I have tried an incognito window, disabled extensions, cleared mobile app cache, logged out and back in, different browsers, etc. as applicable (an item can be marked as "complete" by reacting with the appropriate number) If this ticket can be closed you can use the /close command, and re-open it later if needed.
Alex Tran
Alex Tranβ€’6mo ago
I don't believe so
LouCapo
LouCapoOPβ€’6mo ago
would it be a terrible experience to run this over a network? like run immich on a diff machine that connects to a shared drive on the older mac? i assume it would be bad
Daniel
Danielβ€’6mo ago
Having the database on a network mount is like very bad Assets should be fine most of the time
LouCapo
LouCapoOPβ€’6mo ago
it would be just the assets
Alex Tran
Alex Tranβ€’6mo ago
Server can be a separate machine, you can upload your old files to the instance/server
CrushedAsian255
CrushedAsian255β€’6mo ago
i have my assets mounted on a different device to my server just remember that Immich does generate thumbnails and transcoded videos, these should if possible be stored on the server
LouCapo
LouCapoOPβ€’3mo ago
just getting back to this old question. how do i set the storage to be a diff local machine?
Daniel
Danielβ€’3mo ago
That's a docker/linux question and unrelated to Immich. Depending on what protocol you want to use/how things are set up, I'd just google "docker mount <protocol|description>"
LouCapo
LouCapoOPβ€’3mo ago
but like immich is looking for a path when i add an external library. it wont take smb paths though. FWIW i am doing this in macos.
CrushedAsian255
CrushedAsian255β€’3mo ago
Mount the SMB share using Cmd+K, it will get an entry in /Volumes Bind mount that into Immich
LouCapo
LouCapoOPβ€’3mo ago
would i then add it as /Volumes/directory? bc it tells me thats an invalid path, tho thats what i see in terminal
Daniel
Danielβ€’3mo ago
Are you actually passing that path to the container?
LouCapo
LouCapoOPβ€’3mo ago
the docker container? no bc i needed to run the non-docker version of the immich app from https://github.com/4v3ngR/immich-native-macos
Zeus
Zeusβ€’3mo ago
I think you’re on your own with that tbh. But broad story is if you want a docker container to backup a path, it needs access to that path
Daniel
Danielβ€’3mo ago
Yeah that kind of stuff is not supported by us It's likely you'll run into weird issues tbh
LouCapo
LouCapoOPβ€’3mo ago
i think i read that running immich in docker is incredibly slow on macos. am i wrong about that?
Daniel
Danielβ€’3mo ago
Yes
Alex Tran
Alex Tranβ€’3mo ago
the file system adapter isn't the best
LouCapo
LouCapoOPβ€’3mo ago
with a house full of macs, would you then suggest i dont bother trying to use immich at all?
Zeus
Zeusβ€’3mo ago
Your house really has no bearing on it. Immich is a web app Immich runs best on a Linux server. It works on other platforms, using docker We don’t recommend the non docker installations. They are a lot harder to setup and maintain
Alex Tran
Alex Tranβ€’3mo ago
to be fair it is not incredibly slow, might be a bit slow on the initial ingestion. day-to-day usage, you don't see any noticeable differences but, how old is the Mac will be a big factor πŸ˜„
LouCapo
LouCapoOPβ€’3mo ago
i was hoping to run it on a 2018 macbookpro πŸ˜… ok i removed it all and am trying docker now. when i run
docker compose up -d
docker compose up -d
, it seems to start everything. should i be able to hit things after this at http://localhost:2283? nvm it is so now tht i have it running, how do i set my photos to be stored on a network path? i've CMD-K thing and mapped the drive. how do i tell docker/immich to use that?
CrushedAsian255
CrushedAsian255β€’3mo ago
Like it works perfectly fine on my 16 inch mbp2019 Now you need to set it as a docker bind mount https://immich.app/docs/guides/external-library/ Same instructions, just use the /Volumes path of your photo directory as the photo location
LouCapo
LouCapoOPβ€’3mo ago
after following that, i get this but then i cant connect to my server.
No description
LouCapo
LouCapoOPβ€’3mo ago
i was able to figure out why its not starting but not sure how to fix
immich_server | microservices worker error: Error: Failed to read "<UPLOAD_LOCATION>/encoded-video/.immich - Please see https://immich.app/docs/administration/system-integrity#folder-checks for more information.", stack: Error: Failed to read "<UPLOAD_LOCATION>/encoded-video/.immich - Please see https://immich.app/docs/administration/system-integrity#folder-checks for more information."
immich_server | microservices worker error: Error: Failed to read "<UPLOAD_LOCATION>/encoded-video/.immich - Please see https://immich.app/docs/administration/system-integrity#folder-checks for more information.", stack: Error: Failed to read "<UPLOAD_LOCATION>/encoded-video/.immich - Please see https://immich.app/docs/administration/system-integrity#folder-checks for more information."
any ideas? i should mention i DO see the .immich files in my new upload_location bumping this bc i'm still stuck
Alex Tran
Alex Tranβ€’3mo ago
can you go into encoded-video and run ls -la?
LouCapo
LouCapoOPβ€’3mo ago
i just blacked out my username
No description
LouCapo
LouCapoOPβ€’3mo ago
thats in /Volumes/Pictures/immich-uploads which is what i changed my docker-compose to point to πŸ¦— πŸ¦— 🀣
Metaeditor
Metaeditorβ€’3mo ago
Hi @LouCapo I got a second live for my very old 2008 Macbook with Ventura as a Immich Server. Here are my steps Install Virtual Box 6 Download and install the slim Alpine Linux image (why the default boot2docker is too old and will bring errors) Install inside the Linux terminal Docker create a folder Immich Follow the steps form the Immich Page how to isntall immich with docker Map the Virtualbox Ports to be accesibel by your localnetwork, that was the most tricky part for me PPS: iam a absolut Linux Nop πŸ™‚
Mraedis
Mraedisβ€’2mo ago
Could you post your env and compose file after the changes you've made please?
LouCapo
LouCapoOPβ€’2mo ago
i am using a mac laptop running sequoia. here is my yaml file
Mraedis
Mraedisβ€’2mo ago
- ${UPLOAD_LOCATION}:/Volumes/Pictures/immich-uploads/
- /etc/localtime:/etc/localtime:ro
- /Volumes/Pictures:/Volumes/Pictures/:ro
- ${UPLOAD_LOCATION}:/Volumes/Pictures/immich-uploads/
- /etc/localtime:/etc/localtime:ro
- /Volumes/Pictures:/Volumes/Pictures/:ro
You can't put UPLOAD_LOCATION inside of an external library like this Especially because you're mounting it read-only But worse than that, you've completely bungled the mount, you can't change the part to the right of ${UPLOAD_LOCATION}: It's ALWAYS ${UPLOAD_LOCATION}:/usr/src/app/upload You can only change the UPLOAD_LOCATION in the .env file, or if you really want, in the .yml itself (but I don't see why)
LouCapo
LouCapoOPβ€’2mo ago
oh! i assumed i needed to point it to where i wanted to store the pics.
Daniel
Danielβ€’2mo ago
You do But not the right side, that's the path inside the container
LouCapo
LouCapoOPβ€’2mo ago
doh apparently i should have read the line right before it πŸ€¦β€β™‚οΈ for the 3rd line, would i just chg it to rw and leave the rest? do i even need that?
Daniel
Danielβ€’2mo ago
Idk what you're trying to do with that
LouCapo
LouCapoOPβ€’2mo ago
point a mapped network drive to be added to immich
Daniel
Danielβ€’2mo ago
If /Volumes/Pictures is supposed to be an external library, the upload location cannot be inside there
LouCapo
LouCapoOPβ€’2mo ago
hmm maybe it doesnt support what i was trying to do. my problem is the machine i wanted to use this on is so old that i cant run the correct version of docker. someone suggested i could use a networked drive. i assumed it would allow me to show all my existing pics as well as upload direct from the phones.
Mraedis
Mraedisβ€’2mo ago
You can, that's an external library But you can't put 'upload location' inside of an external library you can put upload location on the same network drive, but not inside of the library folder Yes: -/pictures/upload_location -/pictures/other_pictures No: -/pictures/upload_location -/pictures
LouCapo
LouCapoOPβ€’2mo ago
what would the yaml look like for that?
Mraedis
Mraedisβ€’2mo ago
yaml:
...
volumes:
# Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file
- ${UPLOAD_LOCATION}:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
- /pictures/other_pictures:/external/library1
env_file:
- .env
...
...
volumes:
# Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file
- ${UPLOAD_LOCATION}:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
- /pictures/other_pictures:/external/library1
env_file:
- .env
...
.env:
UPLOAD_LOCATION=/pictures/upload_location
DB_DATA_LOCATION=/whatever/it/is
...
UPLOAD_LOCATION=/pictures/upload_location
DB_DATA_LOCATION=/whatever/it/is
...
LouCapo
LouCapoOPβ€’2mo ago
would it literally be
- /pictures/other_pictures:/external/library1
- /pictures/other_pictures:/external/library1
or do i change the right side to be like
/Volumes/Pictures/
/Volumes/Pictures/
Mraedis
Mraedisβ€’2mo ago
left side has to be /Volumes/Pictures/ right side can be whatever you want, it'll be what you enter in the GUI https://immich.app/docs/guides/external-library/
LouCapo
LouCapoOPβ€’2mo ago
oh!
Mraedis
Mraedisβ€’2mo ago
And to be clear, you CANNOT use /Volumes/Pictures/ as an external library and put UPLOAD_LOCATION=/Volumes/Pictures/upload
LouCapo
LouCapoOPβ€’2mo ago
gotcha, let me try sorry if i'm being dense here. i'm just not connecting the dots in my head. doesnt the .env need to point to a directory thats also mapped (or is it mounted) in the yaml?
Mraedis
Mraedisβ€’2mo ago
What do you think ${UPLOAD_LOCATION} does? If you were to skip the env file this would be equivalent to - /Volumes/Upload:/usr/src/app/upload (If your upload location was mapped to /Volumes/Upload)
LouCapo
LouCapoOPβ€’2mo ago
sorry i meant for the db one
Mraedis
Mraedisβ€’2mo ago
DB_DATA_LOCATION is preferrably a mapped directory, yes. DO NOT put it on a network drive, but if you really need to you can put it in a volume Check out https://immich.app/docs/install/requirements/#special-requirements-for-windows-users this explains it Just be aware that if you EVER docker compose down -v it effectively wipes your database the -v is "remove all volumes"
LouCapo
LouCapoOPβ€’2mo ago
i can see it adding all my pics now!!! thanks! though i dont see thumbnails yet. maybe it needs to finish scannign everything first?
Mraedis
Mraedisβ€’2mo ago
thumbnails will ge queued, no worries check the jobs for what work is left
LouCapo
LouCapoOPβ€’2mo ago
i am seeing many errors, i think for EVERY image
immich_server | [Nest] 7 - 03/04/2025, 2:57:33 PM ERROR [Microservices:LibraryService] Error reading file: /external/library1/2014/07 - Jul/2014.07.17 14.33.01.jpg. Error: Error: EIO: i/o error, stat '/external/library1/2014/07 - Jul/2014.07.17 14.33.01.jpg'
immich_server | [Nest] 7 - 03/04/2025, 2:57:33 PM ERROR [Microservices:LibraryService] Error reading file: /external/library1/2014/07 - Jul/2014.07.17 14.33.01.jpg. Error: Error: EIO: i/o error, stat '/external/library1/2014/07 - Jul/2014.07.17 14.33.01.jpg'
Zeus
Zeusβ€’2mo ago
sounds like your hard drive might be broken tbh
LouCapo
LouCapoOPβ€’2mo ago
nah its a 16 drive raid, that would not be likely ok so i decided to change my setup. got a new dedicated drive just for immich's photos. i'm not sure how i go about telling immich to, kind of start over. i dont want to physically delete anything from the old setup but immich keeps looking for things that are no longer there when i try to start it up. any suggestions?
Mraedis
Mraedisβ€’2mo ago
You are re-using the database so it will expect things to be in the same place. Either wipe your DB or use a new folder for the new one, i.e. change DB_DATA_LOCATION
LouCapo
LouCapoOPβ€’2mo ago
so just change it in the .env?
Mraedis
Mraedisβ€’2mo ago
Yep
LouCapo
LouCapoOPβ€’2mo ago
it will automatically make a new db for me then? πŸ€”
Mraedis
Mraedisβ€’2mo ago
That's how the DB_DATA_LOCATION works, yes unless you reference an existing postgres folder, it will create a new one
LouCapo
LouCapoOPβ€’2mo ago
ok thx, i'll try ok that part worked but now i have mount issues. i obv still have that part incorrect.
Gracefully stopping... (press Ctrl+C again to force)
Error response from daemon: Mounts denied:
The path /external/library1/immich-uploads is not shared from the host and is not known to Docker.
You can configure shared paths from Docker -> Preferences... -> Resources -> File Sharing.
Gracefully stopping... (press Ctrl+C again to force)
Error response from daemon: Mounts denied:
The path /external/library1/immich-uploads is not shared from the host and is not known to Docker.
You can configure shared paths from Docker -> Preferences... -> Resources -> File Sharing.
volumes:
# Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file
- ${UPLOAD_LOCATION}:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
- /Volumes/Pictures:/external/library1
env_file:
- .env
volumes:
# Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file
- ${UPLOAD_LOCATION}:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
- /Volumes/Pictures:/external/library1
env_file:
- .env
# The location where your uploaded files are stored
UPLOAD_LOCATION=/external/library1/immich-uploads
# The location where your uploaded files are stored
UPLOAD_LOCATION=/external/library1/immich-uploads
Mraedis
Mraedisβ€’2mo ago
Well it says right there You can configure shared paths from Docker -> Preferences... -> Resources -> File Sharing.
LouCapo
LouCapoOPβ€’2mo ago
can u tell how noob i am? sorry i added it there in docker, but its gone after a restart
LouCapo
LouCapoOPβ€’2mo ago
at least i assume this is where
No description
Mraedis
Mraedisβ€’2mo ago
Probably? I don't use MacOS Or docker desktop :p
LouCapo
LouCapoOPβ€’2mo ago
😒
Zeus
Zeusβ€’2mo ago
We don’t recommend using windows or Mac partly for this reason
LouCapo
LouCapoOPβ€’2mo ago
it was working fine when i used a network drive though
Zeus
Zeusβ€’2mo ago
Yep, that all makes sense. Docker on windows or Mac is a bad experience
LouCapo
LouCapoOPβ€’2mo ago
now i got it back to this message.
immich_server | [Nest] 7 - 03/24/2025, 5:00:27 PM ERROR [Microservices:StorageService] Failed to read upload/encoded-video/.immich: Error: ENOENT: no such file or directory, open 'upload/encoded-video/.immich'
immich_server | [Nest] 7 - 03/24/2025, 5:00:27 PM ERROR [Microservices:StorageService] Failed to read upload/encoded-video/.immich: Error: ENOENT: no such file or directory, open 'upload/encoded-video/.immich'
scratch that, got past it but now getting this:
immich_server | [Nest] 17 - 03/25/2025, 8:08:45 AM ERROR [Api:StorageService] Failed to write upload/encoded-video/.immich: Error: ENOMEM: not enough memory, open 'upload/encoded-video/.immich'
immich_server | api worker exited with code 1
immich_server | [Nest] 17 - 03/25/2025, 8:08:45 AM ERROR [Api:StorageService] Failed to write upload/encoded-video/.immich: Error: ENOMEM: not enough memory, open 'upload/encoded-video/.immich'
immich_server | api worker exited with code 1
does that mean my db is on a drive too small, potentially?
Mraedis
Mraedisβ€’2mo ago
I think this means there is no space on whatever you've mounted, or it's not allowed to write
LouCapo
LouCapoOPβ€’2mo ago
how would i confirm which? the drive itself says there are 14GB free. i think i need the db to be on the mounted usb drive. does that seem possible?
Mraedis
Mraedisβ€’2mo ago
This is not the DB, this is in your library so whatever UPLOAD_LOCATION is set at
LouCapo
LouCapoOPβ€’2mo ago
thats a 14TB drive πŸ˜… it seems to happen when i tell it to scan all of my photos after an hour or so i have > 400k photos
Mraedis
Mraedisβ€’2mo ago
Not sure what to tell you, the hardware is unsupported. If you could use a different (supported) device to run immich and then use the old mac as network storage that might work well not the hardware, the software

Did you find this page helpful?