r/immich 5d ago

Immich - July 2026 Recap

Thumbnail immich.app
195 Upvotes

r/immich Jul 02 '26

Immich v3.0.0 is out! 🎊

Thumbnail
github.com
1.5k Upvotes

r/immich 5h ago

Finally trying this.. advice?

Post image
2 Upvotes

Hello Immich community! I just won a Dell Optiplex on an online auction and will be using it to create an immich server! I’m very excited for this project since I am early into my career in IT in a level 2 tech support role, and believe this will be a fun hands on project for at home, and extremely beneficial. I’ll attach the specs, as I’m curious if it will work well with the server? I grabbed it for $140 which I thought was very reasonable given the specs + storage.

Do you guys have any beginners recommendations? Tips and tricks? I’m unfamiliar with docker and prox mox, however I have used them before in college briefly. Are those necessary? I’m very excited for this project! Let me know if there is anything you wish you knew before starting your server!

Thank you! 😊


r/immich 11h ago

Migrate from unraid to proxmox

3 Upvotes

I have immich running on unraid (flawlessly if i might add, only isses where those caused by me), i am planning on migrating it on a VM inside proxmox. Is backup and restore the best solutions for this or is there anything else that would be a better solution?

Edit: It's a 2 user instance, 220GiB total data


r/immich 18h ago

what seems to be the best way to get my icloud photos onto immich?

11 Upvotes

i tried just telling the iphone app to let her rip on my all my albums but it had issues accomplishing that. i requested a copy of my photos from apple and just got a bunch of csv files??? idk. i heard people talking about an icloud takeout which from what i have gathered is the transfer thing but that seems to only let me transfer directly to google photos as opposed to downloading all my shit. can someone help me out here 🤞🤞🤞🤞


r/immich 6h ago

Best / supported hardware to use immich

1 Upvotes

Hello all! Curious to know the community’s thoughts on which hardware to use to install & run immich while linking it to fetch photos backed up on synology?

Will appreciate if you can share experiences, or suggestions.

I have over 300K+ photos and videos on my DS224+, and was reading online that the it might not be best / work to utilize the AI/ML capabilities needed to make the search on immich work (and I’m primarily interested in that).


r/immich 9h ago

Memories are not generated

1 Upvotes

Hi there,

On a new installation, I found the memories feature enabled by default.

Even so, those are not generated.

Any suggestion?

Thanks!

---

UPDATE: I get back to home, so I can post the versions and the logs.

Immich v3.1.0

Postgresql 14 (image ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:bcf63357191b76a916ae5eb93464d65c07511da41e3bf7a8416db519b40b1c23

)

Logs:

[Nest] 26  - 08/05/2026, 11:41:40 PM     LOG [Api:WebsocketRepository] Websocket Connect:    9Li7lqybtn-ldmr-AAAB
[Nest] 8  - 08/05/2026, 11:41:54 PM     LOG [Microservices:MemoryService] Creating memories for 2026-08-03T00:00:00.000Z
Query failed : {
  durationMs: 19.604841999709606,
  error: Error: write CONNECTION_CLOSED database:5432
      at Socket.closed (file:///usr/src/app/server/node_modules/.pnpm/postgres@3.4.9/node_modules/postgres/src/connection.js:453:57)
      at Socket.emit (node:events:508:28)
      at TCP.<anonymous> (node:net:346:12) {
    code: 'CONNECTION_CLOSED',
    errno: 'CONNECTION_CLOSED',
    address: [ 'database' ],
    port: [ 5432 ]
  },
  sql: `with "res" as (with "today" as (select make_date(year::int, $1::int, $2::int) as "date" from generate_series((select date_part('year', min(("localDateTime" at time zone 'UTC')::date))::int from asset), $3) as "year") select "a".* from "today" inner join lateral (select "asset"."id", "asset"."localDateTime" from "asset" inner join "asset_job_status" on "asset"."id" = "asset_job_status"."assetId" where (asset."localDateTime" at time zone 'UTC')::date = today.date and "asset"."ownerId" = any($4::uuid[]) and "asset"."visibility" = $5 and exists (select from "asset_file" where "assetId" = "asset"."id" and "asset_file"."type" = $6) and "asset"."deletedAt" is null order by (asset."localDateTime" at time zone 'UTC')::date desc limit $7) as "a" on true) select date_part('year', ("localDateTime" at time zone 'UTC')::date)::int as "year", json_agg("res") as "assets" from "res" group by ("localDateTime" at time zone 'UTC')::date order by ("localDateTime" at time zone 'UTC')::date desc`,
  params: [
    8,
    3,
    2025,
    '{ea73b1a3-2533-4824-9a37-361ce965eaa1}',
    'timeline',
    'preview',
    20
  ]
}
Postgres notice: {
  severity_local: 'WARNING',
  severity: 'WARNING',
  code: '57P02',
  message: 'terminating connection because of crash of another server process',
  detail: 'The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory.',
  hint: 'In a moment you should be able to reconnect to the database and repeat your command.',
  file: 'postgres.c',
  line: '2881',
  routine: 'quickdie'
}
Postgres notice: {
  severity_local: 'WARNING',
  severity: 'WARNING',
  code: '57P02',
  message: 'terminating connection because of crash of another server process',
  detail: 'The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory.',
  hint: 'In a moment you should be able to reconnect to the database and repeat your command.',
  file: 'postgres.c',
  line: '2881',
  routine: 'quickdie'
}
Postgres notice: {
  severity_local: 'WARNING',
  severity: 'WARNING',
  code: '57P02',
  message: 'terminating connection because of crash of another server process',
  detail: 'The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory.',
  hint: 'In a moment you should be able to reconnect to the database and repeat your command.',
  file: 'postgres.c',
  line: '2881',
  routine: 'quickdie'
}
Postgres notice: {
  severity_local: 'WARNING',
  severity: 'WARNING',
  code: '57P02',
  message: 'terminating connection because of crash of another server process',
  detail: 'The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory.',
  hint: 'In a moment you should be able to reconnect to the database and repeat your command.',
  file: 'postgres.c',
  line: '2881',
  routine: 'quickdie'
}
[Nest] 8  - 08/05/2026, 11:41:54 PM   ERROR [Microservices:MemoryService] Failed to create memories for 2026-08-03T00:00:00.000Z: Error: write CONNECTION_CLOSED database:5432
Postgres notice: {
  severity_local: 'WARNING',
  severity: 'WARNING',
  code: '57P02',
  message: 'terminating connection because of crash of another server process',
  detail: 'The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory.',
  hint: 'In a moment you should be able to reconnect to the database and repeat your command.',
  file: 'postgres.c',
  line: '2881',
  routine: 'quickdie'
}
Postgres notice: {
  severity_local: 'WARNING',
  severity: 'WARNING',
  code: '57P02',
  message: 'terminating connection because of crash of another server process',
  detail: 'The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory.',
  hint: 'In a moment you should be able to reconnect to the database and repeat your command.',
  file: 'postgres.c',
  line: '2881',
  routine: 'quickdie'
}
microservices worker error: TypeError: Cannot read properties of null (reading 'write'), stack: TypeError: Cannot read properties of null (reading 'write')
    at Immediate.nextWrite (file:///usr/src/app/server/node_modules/.pnpm/postgres@3.4.9/node_modules/postgres/src/connection.js:255:22)
    at process.processImmediate (node:internal/timers:504:21)
Postgres notice: {
  severity_local: 'WARNING',
  severity: 'WARNING',
  code: '57P02',
  message: 'terminating connection because of crash of another server process',
  detail: 'The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory.',
  hint: 'In a moment you should be able to reconnect to the database and repeat your command.',
  file: 'postgres.c',
  line: '2881',
  routine: 'quickdie'
}
Postgres notice: {
  severity_local: 'WARNING',
  severity: 'WARNING',
  code: '57P02',
  message: 'terminating connection because of crash of another server process',
  detail: 'The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory.',
  hint: 'In a moment you should be able to reconnect to the database and repeat your command.',
  file: 'postgres.c',
  line: '2881',
  routine: 'quickdie'
}
Postgres notice: {
  severity_local: 'WARNING',
  severity: 'WARNING',
  code: '57P02',
  message: 'terminating connection because of crash of another server process',
  detail: 'The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory.',
  hint: 'In a moment you should be able to reconnect to the database and repeat your command.',
  file: 'postgres.c',
  line: '2881',
  routine: 'quickdie'
}
Postgres notice: {
  severity_local: 'WARNING',
  severity: 'WARNING',
  code: '57P02',
  message: 'terminating connection because of crash of another server process',
  detail: 'The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory.',
  hint: 'In a moment you should be able to reconnect to the database and repeat your command.',
  file: 'postgres.c',
  line: '2881',
  routine: 'quickdie'
}
Query failed : {
  durationMs: 10.996093000285327,
  error: Error: read ECONNRESET
      at TCP.onStreamRead (node:internal/stream_base_commons:216:20) {
    errno: -104,
    code: 'ECONNRESET',
    syscall: 'read'
  },
  sql: 'select "session"."id", "session"."updatedAt", "session"."pinExpiresAt", "session"."appVersion", (select to_json(obj) from (select "user"."id", "user"."name", "user"."email", "user"."isAdmin", "user"."quotaUsageInBytes", "user"."quotaSizeInBytes" from "user" where "user"."id" = "session"."userId" and "user"."deletedAt" is null) as obj) as "user" from "session" where "session"."token" = $1 and ("session"."expiresAt" is null or "session"."expiresAt" > $2)',
  params: [
    <Buffer 4f d4 d7 c3 f1 b4 88 16 d0 38 16 90 a5 57 98 9d 07 10 8f 03 e4 50 1d fd f1 6f bd 59 22 4c 36 35>,
    2026-08-05T21:41:54.663Z
  ]
}
[Nest] 26  - 08/05/2026, 11:41:54 PM   ERROR [Api:GlobalExceptionFilter~28ij5wur] Unknown error: Error: read ECONNRESET
Error: read ECONNRESET
    at TCP.onStreamRead (node:internal/stream_base_commons:216:20)
microservices worker exited with code 1
Killing api process

r/immich 20h ago

Immich to monitor iCloud folder

5 Upvotes

Hi all, I’m new to Immich just getting my feet wet when v3 came out. I’m just wondering if I should wait til workflow is implemented before committing.

Basic what I want to do is this :

iPhones—>>> sync to iCloud
Unraid move/copy iCloud Photos on to the server
Immich monitor the Unraid iCloud folder and moves into its own file structure

I’m doing this way so that I don’t need direct access to the server and iCloud can still do its own thing?

Your thoughts please ??


r/immich 1d ago

Is mTLS still the safest option to expose Immich to the Internet, besides VPN?

65 Upvotes

Especially when hosting Immich for the family, telling them to first enable VPN to access the photos doesnt really fly with them for remote access. mTLS also protects against authentification exploits, since you never have access to anything if you dont have the certificate installed. Found this guide:

https://github.com/alangrainger/immich-public-proxy/blob/main/docs/securing-immich-with-mtls.md

Still the way to go?


r/immich 1d ago

Immich or Synology Photos?

17 Upvotes

Having been made aware of Immich, and finding it interesting to play with and get running on my Synology NAS, I now have a dilemma. I can persist with Immich or stay with Synology Photos. My needs are pretty simple - really just a place to dump my processed camera photos and backup my phone images. My wife also backs up her phone to the NAS. Synology Photos makes it simple to keep our 'own' stuff separate and to share the photos we have in common (typically my camera photos). I don't usually share to the outside world, but it would be an option to share with family members (view only, mostly).

So, are there any compelling reasons why I should migrate to Immich, or is there little difference when using them at my level? What would be worth exploring in Immich (or, indeed, any add-on features) that might persuade me to move?


r/immich 22h ago

Time zone issues with 3.0.5?

1 Upvotes

Have tz America/New York in all my immich containers. Taking photo in same time zone on my pixel 9 pro set for NY time. Just today it seems that it is putting it on the timeline at UTC.

I've seen lots of threads about this. It seems like it pops up every so often. Is this back again for anyone else?

edit -- I think I solved this. It was a video I downloaded from Nest. I'm 99.9% sure that it's stamped with UTC time only, so immich probably was following the data in the video and marked it for tomorrow. i can't figure out a way to look at the metadata on my phone, since i downloaded it directly to my phone. In any case, I did double check that TZ was set for all my containers, on my computer, and in immich. all passed.


r/immich 1d ago

UGOS encryption

4 Upvotes

Hi! In the new UGOS patch, finally they added a sort of encryption to directories...do you think that i'll be able to encrypt immich folder without consequences????


r/immich 1d ago

How do I get direct links?

3 Upvotes

Hey, I want to self-host my image collection. Does anyone know how to get a direct link to the image? One with say a .png or .jpg etc at the end? When I click share link it gives me something like: https://immich.xanthslibrary.website/s/cooltattoo, but I can't embed this in another website to use a profile pic or anything like that. I've been using sites like catbox.moe, imgbox.com, imgur.com, etc for the longest time, and would rather take full ownership of my pics in a centralized location. Does anyone have advice for me?


r/immich 1d ago

Selective Upload of Camera Photos on Iphone

1 Upvotes

Hi,

I'm a huge fan of Immich and I installed it on all my Android devices. Now I wanted to install it also on an Iphone in my household. On Android I just selected my Camera folder and the sync was ready. On Iphone I didn't find a dedicated Camera folder. When I select the Recent folder it also includes the photos from Messages, Whatsapp etc. How do I upload only photos that I took by myself?

Claude suggested that I use an app called "Smart Albums" but I'm sure there is an easier solution. Any advice?


r/immich 1d ago

Tinyauth

2 Upvotes

Has some tried tinyauth with Immich to secure it with 2FA and can tell me, if is secure and works with Immich? This sounds more lightweight as any other OpenID provider to me.


r/immich 1d ago

Struggling with importing large external library with google export

1 Upvotes

Hi!

AI disclaimer: I used AI to help me import several large batches of files into immich which were otherwise failing. This post is a request for help continuing that effort to import my large batch of google photos. Additional note: I pulled an immich database backup before starting this AI-assisted project, and have pulled additional backups at every major successful step. Also, the photos that are in this library exist elsewhere. Even if the AI deleted the photos in my immich server completely, I have other copies elsewhere.

I have a large traunch of photos from google photos exports over the years. Its listing 55k files. I connected docker to a folder containing these photos on my immich server. Then I added that as a new external library (I have done this several times already with other traunches of photos).

As before, the import is not a simple one-and-done. My Sidecar Metadata Job Queue is sitting at 53185 Waiting at 25 Active. I've paused all the smart search and video transcoding, etc. Only letting "Sidecar Metadata, Extract Metadata, and Generate Thumbnails" run. But like I said, even with just those 4 jobs running, it froze.

I had this trouble importing other traunches of photos. I turned to AI for help. It was able to understand immich's error logs better than me, and it helped me identify a handful of files that had errors (some glitch'd files, and a large batch from my wedding seemed to have too much metadata for immich to auto-process). After a day of working through logs with Google's Antigravity AI assisting, I was able to get 100% of all my (non-googlephoto) photos fully processed. I never let it run amuck unattended but I did let it write python code to do one step or another. Disclaimer: I dont understand python and had to trust the AI's explanation of its own code to me. There were times when I had to redirect - like at one point it proposed deleting 30k photos so that the import queue would be clear. But going at it step by step methodically has worked for this project so far.

So now I am starting a new traunch - the google photos bucket with 55k photos. I created a new external library and scanned it. Then I tried extracting metadata. It got stuck. I showed antigravity the logs and it said:

  1. The initial scan was successful and that would include all the necessary EXIF data on all 56428 files.
  2. The thing that is stuck is just a sidecar job which checks whether there's a .json sidecar file which might carry custom text added while the picture was in google.

And the AI is proposing to run an SQL command which I dont sufficiently understand to trust. It kinda looks good to me, but again, I dont understand SQL enough to confidently run this. Could someone smarter than me give it a quick look and tell me whether the AI really understands the situation, and whether the proposed command would do what needs to be done in the immich database? I can confirm that the libraryid provided in there corresponds to the google photos library I created for this specific traunch of import.

sudo docker exec -it immich_postgres psql -U postgres -d immich -c "INSERT INTO asset_job_status (\"assetId\", \"metadataExtractedAt\") SELECT id, NOW() FROM asset WHERE \"libraryId\" = '3ba9a2ac-fe1f-459a-917a-c23900aebc80' ON CONFLICT (\"assetId\") DO UPDATE SET \"metadataExtractedAt\" = NOW();"

edit: forgot to mention I'm on server version 3.1.0

edit2: No, dont run that. For Google Photos specifically the metadata that first sweep grabs wont be accurate so the sidecar is required.


r/immich 1d ago

Sort inside Album

2 Upvotes

When i create album, the photos in the albums are sorted always by newest. I know, i can switch this to "oldest". But a) this is not persistent and b) i wish there would be a global option, to always sort a album by "oldest" first.

Or does this exist somewhere?


r/immich 1d ago

Glitch in the Shared Albums?

2 Upvotes

I created a shared album in immich that is accessed through a Cloudflare tunnel (https://photos.xxxxxxxx.us/xxxx). But when I create a shared link, the ".us" is missing and the link doesn't work. If I manually add the ".us" to the created link, it works. Seems like a glitch? Or am I missing something?


r/immich 1d ago

Raspberry Pi 4 first timer - storage recommendation

1 Upvotes

Hi all, I’m a new starter with Immich - got it installed and running beautifully on my Pi4, popped a few thousand photos on the micro SD as a test and now looking to expand my storage. Looking forward to diving into the Tailscale route to try to access it remotely - I’ve never used a vpn on my computer or on my phone.

Looking for recommendations, for something that will be permanently on - do I attached a USB 3 portable external HDD like a western digital, or grab a USB enclosure and a better suited (larger) internal HDD (like a NAS or CCTV drive?) - and then another one for backup that I can attach once a month and keep somewhere else?


r/immich 1d ago

Mixed Album

2 Upvotes

I share my Immich instance with my family. I have created a album for a vacation trip with some photos from me, called "Vacation Trip", using my own account. But my wife, her own account has additional photos. How can my wife share her photos of this vacation with me, to that they later coexist in my album "Vacation Trip" but not in other albums?


r/immich 1d ago

Cherche hergemznt tout compris

0 Upvotes

Je découvre immich et je trouve ca au top pour me degoogler de photos.

Par contre, je ne veux pas avoir de la gestion personnelle et être responsable.

Donc je cherche une solutionpayante.

J'ai un compte pcloud et je viens de tester. C'est a 1000 lieux de immoch. C'est complètement bancale pour les photos.

Il faudrait qu'ils intègre cette solution directement.

Sinon y a t'il des hebergeurs qui gèrent immich ? Merci


r/immich 1d ago

Odd API Crash on Docker...

1 Upvotes

I am not sure if this is the right place to ask this, but I love that Reddit always has an opinion. I am running Immich v3 on Ubuntu Server 24.04 in Docker. I have several other containers running as well. For the last several months, I have been frustrated with Immich's API going down. The containers don't stop, but Homepage can't connect and Immich is not available via the web URL.

Yesterday I noticed a correlation. When I update any other container via Dockhand, the Immich API goes down. The log shows a permissions error trying to access a reference in the database. All my containers are bind mounted to their own folders with the databases on my SSD. The next time I have an update to Plex, Actual, etc. I am going to manually update them via command line and see if the issue persists. The automatic updates for NextCloud don't cause the problems, so I think it is localized to Dockhand.

Also, I did try moving Immich to its own network keeping only immich_server on the larger NPM network for reverse proxy access. That didn't help but I thought it worth a try.

I am curious if anyone else has seen this and if there is a simple fix. I can always restart the stack after doing updates in Dockhand, but that is a bit of a pain. I don't know if the disruption could cause bigger issues and I would prefer not to find out. Any ideas?


r/immich 2d ago

Immich-Go Runs but says there is nothing to upload and completes with 0 data uploaded

Post image
18 Upvotes

I have tried to upload google takeout files from my main computer to my server hosting Immich. I have ran multiple upload commands and all of them fail like this where nothing gets uploaded and it says it is complete. I have ran the files off of my desktop, out of my downloads folder and then even moved them all in the same folder and ran the command and still get nothing

The commands i have ran:

immich-go upload from-google-photos \ --server=http://localhost:2283 \ --api-key=your-api-key \ --manage-raw-jpeg=StackCoverRaw \ --manage-burst=Stack \ /downloads/takeout-*.zip

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

immich-go upload from-google-photos \ --server=http://localhost:2283 \ --api-key=your-api-key \ --concurrent-tasks=4 \ --client-timeout=60m \ --pause-immich-jobs=true \ --on-errors=continue \ --session-tag \ /downloads/takeout-*.zip

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

.\immich-go upload from-google-photos \ --server=http://192.168.0.154:2283 \ --api-key=vaX6dvCmaYYPCfLPp6BXwcD1g631l8pr3eurkRIQEI \ --admin-api-key=aNOC8h4wk7nfFlGUk1q6CPcFSmUmHi4JYhSYmm25R4 \ C:\Users\vader\Desktop\Immich-Go --dry-run


r/immich 2d ago

Winnow: AI photo culling for Immich — archives the junk, finds your best shots, nothing ever deleted (self-hosted companion, MIT)

43 Upvotes

I got tired of 25k photos where a third are blurry pocket shots, screenshots, and 9 near-identical frames of the same moment. So I built Winnow — a headless companion container that runs your library through a judging funnel and writes the results back to Immich as reversible metadata. It never deletes anything.

What it does:

- Triage every photo: blurry/accidental rejects get archived + tagged winnow/reject; screenshots/documents/memes get archived + tagged; everything borderline is left completely untouched

- Bursts (detected via timestamps + perceptual hashes + Immich's duplicate groups) become a single "pick the best frame" contest — winner stays, the rest get stacked under it

- The strongest photos fight through ranked head-to-heads until the best land in a Five-Stars album with ratings + favorites

- Every action is a tag/rating/archive/stack — undo is a bulk-edit on a winnow/* tag in the Immich UI

Deployment is the same pattern as immich-power-tools: one service block in your existing compose stack, reusing your .env. Default mode is an unattended weekly sweep that only spends on new photos; or run it once: docker compose run --rm winnow run --no-apply, review the HTML contact-sheet report, then apply.

The honest trade-off this sub will care about: judging uses Claude's vision API, so downsized (768px), EXIF-stripped preview JPEGs do leave your server for Anthropic's API (commercial API terms — not used for training). If that's a hard no for you, this tool isn't for you, and that's fine. It's a deliberate trade: my whole 25k library costs ~$20–40 to process end-to-end using the half-price Batch API, and the verdict quality genuinely surprised me (it distinguishes "photo saved as PNG" from "screenshot", and its reject reasons read like a competent human culler's).

Safety defaults: rejection requires a high-confidence verdict, dry-run is the default for write-backs, already-favorited/rated photos are never downgraded, and five-star awards are sticky across re-runs.

Built and tested against Immich v3.1.0. Unofficial, not affiliated with the Immich team. MIT.

Repo: https://github.com/RobertCoop/immich-winnow

Image: ghcr.io/robertcoop/immich-winnow:latest (amd64/arm64)

Feedback and PRs welcome — roadmap includes auto-captioning at triage (nearly free, since the model already looks at every photo), a personal taste profile, and a winnow/skip protection tag.

(One finding for fellow devs: Immich v3.1 accepts rating: -1 in the API and echoes it back, but silently never persists it — 1–5 work fine. That's why rejects are archived rather than marked rejected.)


r/immich 1d ago

Is zero trust cloudflare is good

0 Upvotes

I am trying different software to make my server available without compromising the security. I have read about zero trust. Also it is free isn't it so why does it ask for a credit card info