Updating for v118.0+

This commit is contained in:
tbelway 2024-10-21 09:27:44 -04:00
parent 9f72d893c8
commit 6c890f808a
3 changed files with 47 additions and 19 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
*.swp

View File

@ -11,12 +11,12 @@ nv_init.sh
```bash ```bash
#!/bin/bash #!/bin/bash
echo "generate yaml in case of driver upgrade"
nvidia-ctk cdi generate --output=/etc/cdi/nvidia.yaml
echo "modprobe nvidia" echo "modprobe nvidia"
/sbin/modprobe nvidia /sbin/modprobe nvidia
echo "modprobe nvidia-uvm"
/sbin/modprobe nvidia-uvm
if [ "$?" -eq 0 ]; then if [ "$?" -eq 0 ]; then
# Count the number of NVIDIA controllers found. # Count the number of NVIDIA controllers found.
NVDEVS=`lspci | grep -i NVIDIA` NVDEVS=`lspci | grep -i NVIDIA`
@ -40,9 +40,6 @@ else
exit 1 exit 1
fi fi
echo "modprobe nvidia-uvm"
/sbin/modprobe nvidia-uvm
if [ "$?" -eq 0 ]; then if [ "$?" -eq 0 ]; then
# Find out the major device number used by the nvidia-uvm driver # Find out the major device number used by the nvidia-uvm driver
D=`grep nvidia-uvm /proc/devices | awk '{print $1}'` D=`grep nvidia-uvm /proc/devices | awk '{print $1}'`
@ -59,6 +56,9 @@ else
echo "exit nvidia-uvm" echo "exit nvidia-uvm"
exit 1 exit 1
fi fi
echo "generate yaml in case of driver upgrade"
nvidia-ctk cdi generate --output=/etc/cdi/nvidia.yaml
``` ```
/etc/systemd/system/init_nvidia.service /etc/systemd/system/init_nvidia.service
@ -73,9 +73,9 @@ ConditionPathExists=|!/dev/nvidia-uvm-tools
[Service] [Service]
Type=oneshot Type=oneshot
ExecStart=/bin/bash ${your_path_to_script}/nv_init.sh ExecStart=/bin/bash /opt/git/containers/rootless/containers/immich/nv_init.sh
RemainAfterExit=yes RemainAfterExit=yes
[Install] [Install]
WantedBy=multi-user.target WantedBy=default.target
``` ```

View File

@ -34,6 +34,7 @@ Label=registry
Network=slirp4netns:port_handler=slirp4netns Network=slirp4netns:port_handler=slirp4netns
PublishPort=5432:5432 PublishPort=5432:5432
Volume=${host_database_directory}:/var/lib/postgresql/data:z Volume=${host_database_directory}:/var/lib/postgresql/data:z
Volume=${host_database_backup_directory}:/mnt/db_backup:z
Volume=/etc/localtime:/etc/localtime:ro Volume=/etc/localtime:/etc/localtime:ro
[Service] [Service]
@ -63,6 +64,30 @@ Restart=always
WantedBy=multi-user.target default.target WantedBy=multi-user.target default.target
``` ```
Alternatively you can use valkey
```bash
[Unit]
Description=Immich Keydb
[Container]
AutoUpdate=registry
HealthCmd=redis-cli ping || exit 1
HealthInterval=1m
HealthOnFailure=kill
Image=docker.io/valkey/valkey:latest
Label=registry
Network=host
PublishPort=6379:6379
Timezone=America/Montreal
Volume=/mnt/data01/immich-valkey:/data:z
[Service]
Restart=always
[Install]
WantedBy=multi-user.target default.target
```
immich-server.container immich-server.container
```bash ```bash
[Unit] [Unit]
@ -76,7 +101,6 @@ Environment=IMMICH_WORKERS_INCLUDE='api'
Image=ghcr.io/immich-app/immich-server:release Image=ghcr.io/immich-app/immich-server:release
Label=registry Label=registry
Network=slirp4netns:port_handler=slirp4netns Network=slirp4netns:port_handler=slirp4netns
#Exec=start.sh immich
PublishPort=3000:3000 PublishPort=3000:3000
PublishPort=3001:3001 PublishPort=3001:3001
Volume=${host_upload_directory}:/usr/src/app/upload Volume=${host_upload_directory}:/usr/src/app/upload
@ -118,7 +142,6 @@ WantedBy=multi-user.target default.target
immich-ml.container immich-ml.container
```bash ```bash
[Unit] [Unit]
Description=Immich Machine Learning Description=Immich Machine Learning
Requires=immich-redis.service immich-database.service Requires=immich-redis.service immich-database.service
@ -146,20 +169,21 @@ immich-microservices.container
```bash ```bash
[Unit] [Unit]
Description=Immich Microservices Description=Immich Microservices
Requires=mnt-data01.mount immich-redis.service immich-database.service Requires=immich-redis.service immich-database.service
[Container] [Container]
AddDevice=/dev/dri:/dev/dri
AddDevice=nvidia.com/gpu=0 AddDevice=nvidia.com/gpu=0
AutoUpdate=registry AutoUpdate=registry
EnvironmentFile=${location_of_env_file}
Environment=IMMICH_WORKERS_EXCLUDE='api' Environment=IMMICH_WORKERS_EXCLUDE='api'
EnvironmentFile=/mnt/data01/immich-app/.env Image=ghcr.io/immich-app/immich-server:${release} # This is for v118.0 and up
Image=ghcr.io/immich-app/immich-server:release
Label=registry Label=registry
Network=slirp4netns:port_handler=slirp4netns Network=slirp4netns:port_handler=slirp4netns
PublishPort=3002:3002 PublishPort=3002:3002
Volume=/mnt/data01/uploads:/usr/src/app/upload:z Volume=/mnt/data01/uploads:/usr/src/app/upload:z
Volume=/etc/localtime:/etc/localtime:ro Volume=/etc/localtime:/etc/localtime:ro
#Exec=start.sh microservices Unmask=/dev/dri:/dev/dri
[Service] [Service]
Restart=always Restart=always
@ -172,18 +196,21 @@ immich-ml.container
```bash ```bash
[Unit] [Unit]
Description=Immich Machine Learning Description=Immich Machine Learning
Requires=mnt-data01.mount immich-redis.service immich-database.service Requires=mnt-data01.mount mnt-data01-uploads.mount
After==mnt-data01.mount mnt-data01-uploads.mount
[Container] [Container]
AddDevice=nvidia.com/gpu=0 AddDevice=/dev/dri:/dev/dri
AddDevice=nvidia.com/gpu=0 # Make sure this matched your GPU ID
AutoUpdate=registry AutoUpdate=registry
EnvironmentFile=/mnt/data01/immich-app/.env EnvironmentFile=${location_of_env_file}
Image=ghcr.io/immich-app/immich-machine-learning:release-cuda Image=ghcr.io/immich-app/immich-machine-learning:${release} # This is for v118.0 and up
Label=registry Label=registry
Network=slirp4netns:port_handler=slirp4netns Network=slirp4netns:port_handler=slirp4netns
PublishPort=3003:3003 #PublishPort=3003:3003
Volume=/mnt/data01/model-cache:/cache:z Volume=/mnt/data01/model-cache:/cache:z
Volume=/etc/localtime:/etc/localtime:ro Volume=/etc/localtime:/etc/localtime:ro
Unmask=/dev/dri:/dev/dri
[Service] [Service]
Restart=always Restart=always