Hardware
- Model: TVS-671
- CPU: Intel(R) Core(TM) i3-4150 CPU, up to 3500 MHz (2 cores, 4 threads)
- Total memory 16 GB (16 GB usable)
- Firmware version: QTS 5.2.5.3145
Software
QNAP pre-configuration
- Enable SSH in QNAP
- Enable Container Station in QNAP
- Volumes
- Containers - Thick volume. RAID1. Where docker will be install. Also, it will be where immich-app folder will be placed.
- Storage - RAID5. Where immich library will be stored
- Shares
- Containers - Whrere immich-app folder will be located
- PhotosImmich - Where immich library will be located
Install Immich
Connect into machine
> ssh marky@192.168.26.60
Create immich-app folder in Containers volume
> cd /shares/Containers
> mkdir immich-app
> cd immich-app
Download docker-compose.yml and .env files
> wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
> wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env
Edit environment file
> vi example.env
> mv example.env .env
Install Immich
> docker compose up -d
Using Immich
- Open browser to http://192.168.26.60:2283
- Create the first user (This will be the admin user)
Configure Immich
1. Storage Template
2. External Libraries
> vi docker-compose.yml
Add the lines in blue to docker-compose.yml:
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
- /share/PhotosVol1:/share/PhotosVol1:ro
- /share/PhotosVol2:/share/PhotosVol2:ro
- /share/PhotosVol3:/share/PhotosVol3:ro
- /etc/localtime:/etc/localtime:ro
# 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
- /share/PhotosVol1:/share/PhotosVol1:ro
- /share/PhotosVol2:/share/PhotosVol2:ro
- /share/PhotosVol3:/share/PhotosVol3:ro
- /etc/localtime:/etc/localtime:ro
> docker compose up -d
Add to external library path via web interface
Upgrading Immich
> docker compose pull && docker compose up -d
> docker image prune
Backup immich's postgres database
> docker exec -t immich_postgres pg_dumpall --clean --if-exists --username=postgres | gzip > "/share/PhotosImmich/immich-library/backups/dump.sql.gz"
Restore immich's postgres database [WARNING!]
> docker compose down -v
> docker compose pull
> docker compose create
> docker compose pull
> docker compose create
> docker start immich_postgres
> sleep 10
> sleep 10
> gunzip -c "/share/PhotosImmich/immich-library/backups/dump.sql.gz" | sed "s/SELECT pg_catalog.set_config('search_path', '', false);/SELECT pg_catalog.set_config('search_path', 'public, pg_catalog', true);/g" | docker exec -i immich_postgres psql --dbname=postgres --username=postgres
> docker compose up -d
Materials
Immich installation files
- .env
- docker-compose.yml
Scripts
- status.sh
> docker ps
- start.sh
> docker compose up -d
- stop.sh
> docker stop immich_server immich_machine_learning immich_postgres immich_redis
- upgrade.sh
> docker compose pull && docker compose up -d
> docker image prune- backup_db.sh
> docker exec -t immich_postgres pg_dumpall --clean --if-exists --username=postgres | gzip > "/share/PhotosImmich/immich-library/backups/dump.sql.gz"
- delete.sh
> docker compose down -v
> rm -rf postgres- restore_db.sh
docker compose down -v # CAUTION! Deletes all Immich data to start from scratch
## Uncomment the next line and replace DB_DATA_LOCATION with your Postgres path to permanently reset the Postgres database
# rm -rf DB_DATA_LOCATION # CAUTION! Deletes all Immich data to start from scratch
docker compose pull # Update to latest version of Immich (if desired)
docker compose create # Create Docker containers for Immich apps without running them
docker start immich_postgres # Start Postgres server
sleep 10 # Wait for Postgres server to start up
# Check the database user if you deviated from the default
gunzip -c "/share/PhotosImmich/immich-library/backups/dump.sql.gz" | sed "s/SELECT pg_catalog.set_config('search_path', '', false);/SELECT pg_catalog.set_config('search_path', 'public, pg_catalog', true)
;/g" | docker exec -i immich_postgres psql --dbname=postgres --username=postgres # Restore Backup
docker compose up -d # Start remainder of Immich apps
## Uncomment the next line and replace DB_DATA_LOCATION with your Postgres path to permanently reset the Postgres database
# rm -rf DB_DATA_LOCATION # CAUTION! Deletes all Immich data to start from scratch
docker compose pull # Update to latest version of Immich (if desired)
docker compose create # Create Docker containers for Immich apps without running them
docker start immich_postgres # Start Postgres server
sleep 10 # Wait for Postgres server to start up
# Check the database user if you deviated from the default
gunzip -c "/share/PhotosImmich/immich-library/backups/dump.sql.gz" | sed "s/SELECT pg_catalog.set_config('search_path', '', false);/SELECT pg_catalog.set_config('search_path', 'public, pg_catalog', true)
;/g" | docker exec -i immich_postgres psql --dbname=postgres --username=postgres # Restore Backup
docker compose up -d # Start remainder of Immich apps
References
- https://immich.app/docs/overview/quick-start/
- https://immich.app/docs/administration/storage-template/
- https://immich.app/docs/guides/external-library/
- https://immich.app/docs/administration/backup-and-restore/
- https://immich.app/docs/install/upgrading/
- https://github.com/immich-app/immich/discussions/4436
No comments:
Post a Comment