Skip to content

Commit 903be25

Browse files
committed
Python changes
- Installing machine-learning as root will cause too many issues - Instead, create immich user sooner, create venv and install machine-learning as immich user
1 parent 2635c69 commit 903be25

File tree

2 files changed

+16
-28
lines changed

2 files changed

+16
-28
lines changed

ct/immich.sh

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -158,17 +158,17 @@ EOF
158158
msg_ok "Updated ${APP} web and microservices"
159159

160160
cd "$SRC_DIR"/machine-learning
161-
mkdir -p "$ML_DIR"
161+
mkdir -p "$ML_DIR" && chown -R immich:immich "$ML_DIR"
162162
export VIRTUAL_ENV="${ML_DIR}"/ml-venv
163-
$STD /usr/local/bin/uv venv "$VIRTUAL_ENV"
163+
$STD sudo --preserve-env=VIRTUAL_ENV -nu immich uv venv "$VIRTUAL_ENV" -p python3.11
164164
if [[ -f ~/.openvino ]]; then
165165
msg_info "Updating HW-accelerated machine-learning"
166-
/usr/local/bin/uv -q sync --extra openvino --no-cache --active
166+
$STD sudo --preserve-env=VIRTUAL_ENV -nu immich uv sync --extra openvino --no-cache --active --managed-python
167167
patchelf --clear-execstack "${VIRTUAL_ENV}/lib/python3.11/site-packages/onnxruntime/capi/onnxruntime_pybind11_state.cpython-311-x86_64-linux-gnu.so"
168168
msg_ok "Updated HW-accelerated machine-learning"
169169
else
170170
msg_info "Updating machine-learning"
171-
/usr/local/bin/uv -q sync --extra cpu --no-cache --active
171+
$STD sudo --preserve-env=VIRTUAL_ENV -nu immich uv sync --extra cpu --no-cache --active --managed-python
172172
msg_ok "Updated machine-learning"
173173
fi
174174
cd "$SRC_DIR"
@@ -187,10 +187,6 @@ EOF
187187
ln -s "$GEO_DIR" "$APP_DIR"
188188

189189
chown -R immich:immich "$INSTALL_DIR"
190-
if [[ ! -f ~/.debian_version.bak ]]; then
191-
cp /etc/debian_version ~/.debian_version.bak
192-
sed -i 's/.*/13.0/' /etc/debian_version
193-
fi
194190
msg_ok "Updated ${APP} to v${RELEASE}"
195191

196192
msg_info "Cleaning up"
@@ -206,8 +202,7 @@ function compile_libjxl() {
206202
SOURCE=${SOURCE_DIR}/libjxl
207203
JPEGLI_LIBJPEG_LIBRARY_SOVERSION="62"
208204
JPEGLI_LIBJPEG_LIBRARY_VERSION="62.3.0"
209-
# : "${LIBJXL_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libjxl.json)}"
210-
: "${LIBJXL_REVISION:=794a5dcf0d54f9f0b20d288a12e87afb91d20dfc}"
205+
: "${LIBJXL_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libjxl.json)}"
211206
if [[ "${update:-}" ]] || [[ "$LIBJXL_REVISION" != "$(grep 'libjxl' ~/.immich_library_revisions | awk '{print $2}')" ]]; then
212207
msg_info "Recompiling libjxl"
213208
if [[ -d "$SOURCE" ]]; then rm -rf "$SOURCE"; fi
@@ -254,8 +249,7 @@ function compile_libheif() {
254249
$STD apt-get install -y libaom-dev
255250
local update="required"
256251
fi
257-
# : "${LIBHEIF_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libheif.json)}"
258-
: "${LIBHEIF_REVISION:=35dad50a9145332a7bfdf1ff6aef6801fb613d68}"
252+
: "${LIBHEIF_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libheif.json)}"
259253
if [[ "${update:-}" ]] || [[ "$LIBHEIF_REVISION" != "$(grep 'libheif' ~/.immich_library_revisions | awk '{print $2}')" ]]; then
260254
msg_info "Recompiling libheif"
261255
if [[ -d "$SOURCE" ]]; then rm -rf "$SOURCE"; fi
@@ -287,8 +281,7 @@ function compile_libheif() {
287281
function compile_libraw() {
288282
SOURCE=${SOURCE_DIR}/libraw
289283
local update
290-
# : "${LIBRAW_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libraw.json)}"
291-
: "${LIBRAW_REVISION:=09bea31181b43e97959ee5452d91e5bc66365f1f}"
284+
: "${LIBRAW_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libraw.json)}"
292285
if [[ "${update:-}" ]] || [[ "$LIBRAW_REVISION" != "$(grep 'libraw' ~/.immich_library_revisions | awk '{print $2}')" ]]; then
293286
msg_info "Recompiling libraw"
294287
if [[ -d "$SOURCE" ]]; then rm -rf "$SOURCE"; fi
@@ -309,8 +302,7 @@ function compile_libraw() {
309302

310303
function compile_imagemagick() {
311304
SOURCE=$SOURCE_DIR/imagemagick
312-
# : "${IMAGEMAGICK_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/imagemagick.json)}"
313-
: "${IMAGEMAGICK_REVISION:=8289a3388a085ad5ae81aa6812f21554bdfd54f2}"
305+
: "${IMAGEMAGICK_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/imagemagick.json)}"
314306
if [[ "${update:-}" ]] || [[ "$IMAGEMAGICK_REVISION" != "$(grep 'imagemagick' ~/.immich_library_revisions | awk '{print $2}')" ]]; then
315307
msg_info "Recompiling ImageMagick"
316308
if [[ -d "$SOURCE" ]]; then rm -rf "$SOURCE"; fi
@@ -330,8 +322,7 @@ function compile_imagemagick() {
330322

331323
function compile_libvips() {
332324
SOURCE=$SOURCE_DIR/libvips
333-
# : "${LIBVIPS_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libvips.json)}"
334-
: "${LIBVIPS_REVISION:=8fa37a64547e392d3808eed8d72adab7e02b3d00}"
325+
: "${LIBVIPS_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libvips.json)}"
335326
if [[ "${update:-}" ]] || [[ "$LIBVIPS_REVISION" != "$(grep 'libvips' ~/.immich_library_revisions | awk '{print $2}')" ]]; then
336327
msg_info "Recompiling libvips"
337328
if [[ -d "$SOURCE" ]]; then rm -rf "$SOURCE"; fi

install/immich-install.sh

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -297,17 +297,18 @@ $STD pnpm --filter @immich/cli --prod --no-optional deploy "$APP_DIR"/cli
297297
msg_ok "Installed Immich Server and Web Components"
298298

299299
cd "$SRC_DIR"/machine-learning
300-
mkdir -p "$ML_DIR"
300+
$STD useradd -U -s /usr/sbin/nologin -r -M -d "$INSTALL_DIR" immich
301+
mkdir -p "$ML_DIR" && chown -R immich:immich "$INSTALL_DIR"
301302
export VIRTUAL_ENV="${ML_DIR}/ml-venv"
302-
$STD uv venv "$VIRTUAL_ENV"
303+
$STD sudo --preserve-env=VIRTUAL_ENV -nu immich uv venv "$VIRTUAL_ENV" -p python3.11
303304
if [[ -f ~/.openvino ]]; then
304305
msg_info "Installing HW-accelerated machine-learning"
305-
uv -q sync --extra openvino --no-cache --active
306+
$STD sudo --preserve-env=VIRTUAL_ENV -nu immich uv sync --extra openvino --no-cache --active --managed-python
306307
patchelf --clear-execstack "${VIRTUAL_ENV}/lib/python3.11/site-packages/onnxruntime/capi/onnxruntime_pybind11_state.cpython-311-x86_64-linux-gnu.so"
307308
msg_ok "Installed HW-accelerated machine-learning"
308309
else
309310
msg_info "Installing machine-learning"
310-
uv -q sync --extra cpu --no-cache --active
311+
$STD sudo --preserve-env=VIRTUAL_ENV -nu immich uv sync --extra cpu --no-cache --active --managed-python
311312
msg_ok "Installed machine-learning"
312313
fi
313314
cd "$SRC_DIR"
@@ -346,8 +347,7 @@ mkdir -p /var/log/immich
346347
touch /var/log/immich/{web.log,ml.log}
347348
msg_ok "Installed ${APPLICATION}"
348349

349-
msg_info "Creating user, env file, scripts & services"
350-
$STD useradd -U -s /usr/sbin/nologin -r -M -d "$INSTALL_DIR" immich
350+
msg_info "Modifying user, creating env file, scripts & services"
351351
usermod -aG video,render immich
352352

353353
cat <<EOF >"${INSTALL_DIR}"/.env
@@ -436,11 +436,8 @@ WantedBy=multi-user.target
436436
EOF
437437
chown -R immich:immich "$INSTALL_DIR" /var/log/immich
438438
systemctl enable -q --now "$APPLICATION"-ml.service "$APPLICATION"-web.service
439-
msg_ok "Created user, env file, scripts and services"
439+
msg_ok "Modified user, created env file, scripts and services"
440440

441-
# sed -i "$ a VERSION_ID=12" /etc/os-release # otherwise the motd_ssh function will fail
442-
# cp /etc/debian_version ~/.debian_version.bak
443-
# sed -i 's/.*/13.0/' /etc/debian_version
444441
motd_ssh
445442
customize
446443

0 commit comments

Comments
 (0)