Home NAS as Google Drive alternative

Shahin Gurbanov
3 min readFeb 1, 2024

After a long time of wandering, I finally found what I need — Immich!

Detailed screenshots published one by one.

Let’s at first install Portainer, it’s Docker management platform, for easy management docker containers, deployments etc.

Click on Local docker to go to Stack based configuration, looks like so

Create new stack configuration, for example Immich with the following configuration

version: "3.8"

#
# WARNING: Make sure to use the docker-compose.yml of the current release:
#
# https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
#
# The compose file on main may not be compatible with the latest release.
#

name: immich

services:
immich-server:
container_name: immich_server
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
command: [ "start.sh", "immich" ]
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
env_file:
- stack.env
ports:
- 2283:3001
depends_on:
- redis
- database
restart: always

immich-microservices:
container_name: immich_microservices
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
# extends:
# file: hwaccel.yml
# service: hwaccel
command: [ "start.sh", "microservices" ]
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
env_file:
- stack.env
depends_on:
- redis
- database
restart: always

immich-machine-learning:
container_name: immich_machine_learning
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
volumes:
- model-cache:/cache
env_file:
- stack.env
restart: always

redis:
container_name: immich_redis
image: redis:6.2-alpine@sha256:c5a607fb6e1bb15d32bbcf14db22787d19e428d59e31a5da67511b49bb0f1ccc
restart: always

database:
container_name: immich_postgres
image: tensorchord/pgvecto-rs:pg14-v0.1.11@sha256:0335a1a22f8c5dd1b697f14f079934f5152eaaa216c09b61e293be285491f8ee
env_file:
- stack.env
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_USER: ${DB_USERNAME}
POSTGRES_DB: ${DB_DATABASE_NAME}
volumes:
- pgdata:/var/lib/postgresql/data
restart: always

volumes:
pgdata:
model-cache:

More detailed information at vendor’s page

Let’s deploy proved configuration

Deploy this configuration with set environments.

After some time you will see that immich dockers deployed successfully,

Dashboard for summary

Immich deployed stack

Works stable.

Tested with over 20k rendered videos.

Default 720p for browser compatibility so videos with more dimension will be rendered, dimensions are configurable — see TARGET RESOLUTION

Trash as trash

Stats after all things done

And easy intergration over mobile app

Enjoy!

--

--