This is a repackaged open source software product wherein additional charges apply for hardening, security configuration, and setup support.
Immich is a self-hosted photo and video backup with mobile auto-upload, CLIP smart search, face recognition and shared albums - a Node + Python docker-compose stack with PostgreSQL (VectorChord + pgvecto.rs) and Redis. This Lynxroute build is hardened and ready out of the box: full ML stack pre-pulled, web UI bound to loopback behind Nginx TLS, Postgres on the docker bridge only, on a CIS Level 1 hardened Ubuntu 24.04 LTS base. First admin registered on first visit - no shared defaults baked in.
AGPL-3.0 license - fully auditable, no vendor lock-in.
This is a repackaged open source software product wherein additional charges apply for hardening, security configuration, and setup support.
WHAT IS IMMICH
Immich is an open-source self-hosted photo and video backup platform - a private, no-trust-required alternative to Google Photos and iCloud. The stack runs as four docker containers: a Node and Python server that exposes the REST API and web UI on TCP 2283, a Python machine-learning container running CLIP for natural-language smart search and a face-detection model for grouping people, a PostgreSQL 14 database with the VectorChord and pgvecto.rs extensions for embedding-based queries, and a Redis-compatible cache (Valkey 9) for session and queue state. The mobile apps for iOS and Android perform background auto-upload of new photos and videos, full original-quality with EXIF and GPS metadata preserved. Operators get shared albums, public links, multi-user libraries with quotas, partner sharing, external libraries pointing at existing on-disk folders, RAW support, and HEIC and HEVC transcoding. AGPL-3.0 license, no vendor lock-in. The core differentiator vs. SaaS alternatives is sovereignty: photos, embeddings, face data, and the ML inference all stay on your own AWS account - none of it transits a third-party cloud.
WHAT THIS AMI ADDS
Security hardening:
No pre-seeded admin account - on first visit the Immich web UI prompts you to register the first user, who becomes the admin. Immich locks admin sign-up automatically once the users table is non-empty, so subsequent attempts are rejected without operator action
Postgres password (32 chars, random) generated at first boot and written into /opt/immich/.env - never baked into the AMI
All four containers reachable only via the docker bridge - the host port 2283 is bound to 127.0.0.1 only, the only public-facing endpoint is Nginx on TCP 443
Nginx reverse proxy with self-signed TLS, HTTP-to-HTTPS redirect, WebSocket support for live sync, security headers, and a 50 GB client_max_body_size for RAW and 4K video uploads
All four container images pre-pulled at build time so first-launch is fast and not dependent on upstream registry availability
Docker daemon log rotation pre-configured to prevent json-file logs from filling the root volume
UFW firewall pre-configured - only TCP 22, 80, 443 are exposed
fail2ban, AppArmor
CVE scan - every image is scanned for vulnerabilities before release
OS hardening (CIS Level 1):
CIS Ubuntu 24.04 LTS Level 1 benchmark applied via ansible-lockdown
CIS Conformance Report at /etc/lynxroute/cis-report.html
CIS Tailored Profile at /usr/share/doc/lynxroute/CIS_TAILORED_PROFILE.md
Highlights
Security baked in: no shared default credentials - you create the first admin on first visit and Immich auto-locks sign-up; per-instance Postgres password, web UI on 127.0.0.1 behind Nginx TLS, Postgres on the docker bridge only.
CIS Level 1 hardened Ubuntu 24.04 LTS: auditd, fail2ban, AppArmor, SSH key-only, IMDSv2 enforced. CVE-scanned before every release. SBOM (CycloneDX) and CIS Conformance Report included.
Full ML stack on by default: CLIP smart search and face recognition work out of the box - all four container images (immich-server, immich-machine-learning, postgres with VectorChord and pgvecto.rs, valkey) are pre-pulled into the AMI so first launch is fast and self-contained. AGPL-3.0 license, no vendor lock-in.
AWS Marketplace now accepts line of credit payments through the PNC Vendor Finance program. This program is available to select AWS customers in the US, excluding NV, NC, ND, TN, & VT.
Try this product free for 5 days according to the free trial terms set by the vendor. Usage-based pricing is in effect for usage beyond the free trial terms. Your free trial gets automatically converted to a paid subscription when the trial ends, but may be canceled any time before that.
Immich - Hardened Self-Hosted Photo Backup with ML Smart Search
You pay by the hour for the EC2 instance size you run. All four options bill the same way, so you choose based on compute and memory needs. The t3.medium and t3.large are burstable instances suited to lighter or variable workloads. The m6i.large and m6i.xlarge offer steady general-purpose compute, with the m6i.xlarge providing more CPU and memory. Pricing scales with the instance size you select. You can stop the instance to stop hourly charges. Running the software needs at least 6GB of RAM and 2 CPU cores.
Top-of-mind questions for buyers
What compute resources do I get with each instance size, and will they run the software?
The t3.medium is the lightest option. The software needs at least 6GB of RAM and 2 CPU cores. The t3.large, m6i.large, and m6i.xlarge meet this with more memory and CPU. The m6i.xlarge carries the most CPU and memory of the four.
Am I charged when I stop the EC2 instance?
Software charges meter running time by the hour. When you stop the instance, hourly software charges stop. You may still pay underlying AWS storage fees for the stopped instance and your stored photos and videos, since those remain on disk.
How does the difference between burstable and general-purpose instances affect my bill?
All four bill per hour at a rate set by instance size. The t3.medium and t3.large are burstable, so they suit variable or lighter use. The m6i.large and m6i.xlarge give steady compute for continuous workloads. You pick one size; charges follow that size, not usage spikes.
docs.immich.app
Helpful?
Vendor refund policy
We do not offer refunds for this product. AWS infrastructure charges (EC2, EBS, data transfer) are billed separately by AWS and are not refundable by us.
How can we make this page better?
Tell us how we can improve this page, or report an issue with this product.
Give us feedbackReport a problem with this product or seller
Legal
Vendor terms and conditions
Upon subscribing to this product, you must acknowledge and agree to the terms and conditions outlined in the vendor's End User License Agreement (EULA).
Content disclaimer
Vendors are responsible for their product descriptions and other product content. AWS does not warrant that vendors' product descriptions or other product content are accurate, complete, reliable, current, or error-free.
An AMI is a virtual image that provides the information required to launch an instance. Amazon EC2 (Elastic Compute Cloud) instances are virtual servers on which you can run your applications and workloads, offering varying combinations of CPU, memory, storage, and networking resources. You can launch as many instances from as many different AMIs as you need.
Version release notes
Immich 3.3.5
Immich updated 3.2.4 -> 3.3.5. AGPL-3.0 unchanged; no configuration or operator migration required
New: sharing with people, birthday memories and optional faster machine-learning models
Security: Node.js security patches and the certifi CA bundle updated to distrust the compromised eMudhra CA; bundled Valkey re-pinned to the upstream 3.3.5 image
Rebuilt on the latest CIS Level 1 hardened Ubuntu 24.04 LTS base, picking up every operating-system security update published since the previous build
Additional details
Usage instructions
Launch instance (t3.large recommended for typical home use, t3.medium minimum)
Open Security Group - allow TCP 443 ONLY from YOUR IP/32 until you have registered the admin (see step 6). Allow TCP 80 if you want Let's Encrypt
Open https://<PUBLIC_IP>/ in your browser - accept the self-signed certificate warning
Click "Get Started" / "Sign up" - register with YOUR real email. The first registered user becomes the admin. Immich locks admin sign-up automatically after the first signup, so a second attempt is rejected without operator action
Widen the Security Group on TCP 443 once you have registered, if you intend to share the gallery
Install the Immich app on iOS or Android, set Server URL to https://<PUBLIC_IP>/api, accept the self-signed certificate, log in with the account you just registered, enable Background Backup
IMPORTANT: keep TCP 443 restricted to YOUR IP/32 until you have registered. Anyone reaching the URL before you can claim the admin role.
First boot takes 1-2 minutes while Postgres initialises and the ML models warm. The web UI shows a Starting Up page and refreshes automatically.
The photo library lives at /opt/immich/library and Postgres data at /opt/immich/postgres - mount an EBS volume there if you expect to store more than the root disk fits.
Replace the self-signed TLS certificate with a CA-signed certificate for production: sudo certbot --nginx -d YOUR_DOMAIN.
AWS Support is a one-on-one, fast-response support channel that is staffed 24x7x365 with experienced and technical support engineers. The service helps customers of all sizes and technical abilities to successfully utilize the products and features provided by Amazon Web Services.
Immich is a self-hosted photo and video backup platform with mobile apps, facial recognition, and semantic search -- a private alternative to Google Photos with no storage limits.
This is a repackaged open source software product wherein additional charges apply for a pre-hardened AMI with automated startup. Self-hosted smart home camera platform.
Be the first to review this product. We've partnered with PeerSpot to gather customer feedback. You can share your experience by writing or recording a review, or scheduling a call with a PeerSpot analyst.