Skip to content

Commit 202eb3f

Browse files
authored
Refactor: Photoprism (#6335)
1 parent e54ed7d commit 202eb3f

2 files changed

Lines changed: 87 additions & 32 deletions

File tree

ct/photoprism.sh

Lines changed: 27 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -27,22 +27,35 @@ function update_script() {
2727
msg_error "No ${APP} Installation Found!"
2828
exit
2929
fi
30-
msg_info "Stopping PhotoPrism"
31-
sudo systemctl stop photoprism
32-
msg_ok "Stopped PhotoPrism"
33-
34-
msg_info "Updating PhotoPrism"
35-
$STD apt-get install -y libvips42
36-
curl -fsSL https://dl.photoprism.app/pkg/linux/amd64.tar.gz | tar -xzf - -C /opt/photoprism --strip-components=1
37-
msg_ok "Updated PhotoPrism"
38-
39-
msg_info "Starting PhotoPrism"
40-
sudo systemctl start photoprism
41-
msg_ok "Started PhotoPrism"
42-
msg_ok "Update Successful"
30+
31+
RELEASE=$(curl -fsSL https://api.github.com/repos/photoprism/photoprism/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
32+
if [[ "${RELEASE}" != "$(cat ~/.photoprism 2>/dev/null)" ]] || [[ ! -f ~/.photoprism ]]; then
33+
msg_info "Stopping PhotoPrism"
34+
systemctl stop photoprism
35+
msg_ok "Stopped PhotoPrism"
36+
37+
fetch_and_deploy_gh_release "photoprism" "photoprism/photoprism" "prebuild" "latest" "/opt/photoprism" "*linux-amd64.tar.gz"
38+
39+
LIBHEIF_URL=$(curl -fsSL "https://dl.photoprism.app/dist/libheif/" | grep -oP "libheif-$(lsb_release -cs)-amd64-v[0-9\.]+\.tar\.gz" | sort -V | tail -n 1)
40+
if [[ "${LIBHEIF_URL}" != "$(cat ~/.photoprism_libheif 2>/dev/null)" ]] || [[ ! -f ~/.photoprism_libheif ]]; then
41+
msg_info "Updating PhotoPrism LibHeif"
42+
$STD apt-get install -y libvips42
43+
curl -fsSL "https://dl.photoprism.app/dist/libheif/$LIBHEIF_URL" -o /tmp/libheif.tar.gz
44+
tar -xzf /tmp/libheif.tar.gz -C /usr/local
45+
ldconfig
46+
echo "${LIBHEIF_URL}" >~/.photoprism_libheif
47+
msg_ok "Updated PhotoPrism LibHeif"
48+
fi
49+
50+
msg_info "Starting PhotoPrism"
51+
systemctl start photoprism
52+
msg_ok "Started PhotoPrism"
53+
msg_ok "Update Successful"
54+
else
55+
msg_ok "No update required. ${APP} is already at v${RELEASE}"
56+
fi
4357
exit
4458
}
45-
4659
start
4760
build_container
4861
description

install/photoprism-install.sh

Lines changed: 60 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -15,48 +15,90 @@ update_os
1515

1616
msg_info "Installing Dependencies (Patience)"
1717
$STD apt-get install -y \
18-
exiftool \
19-
ffmpeg \
20-
libheif1 \
21-
libpng-dev \
22-
libjpeg-dev \
23-
libtiff-dev \
24-
imagemagick \
25-
darktable \
26-
rawtherapee \
27-
libvips42 \
28-
lsb-release
18+
exiftool \
19+
ffmpeg \
20+
libheif1 \
21+
libpng-dev \
22+
libjpeg-dev \
23+
libtiff-dev \
24+
imagemagick \
25+
darktable \
26+
rawtherapee \
27+
libvips42 \
28+
lsb-release
2929

3030
echo 'export PATH=/usr/local:$PATH' >>~/.bashrc
3131
export PATH=/usr/local:$PATH
3232
msg_ok "Installed Dependencies"
3333

34+
fetch_and_deploy_gh_release "photoprism" "photoprism/photoprism" "prebuild" "latest" "/opt/photoprism" "*linux-amd64.tar.gz"
35+
3436
msg_info "Installing PhotoPrism (Patience)"
3537
mkdir -p /opt/photoprism/{cache,config,photos,storage,temp}
3638
mkdir -p /opt/photoprism/photos/{originals,import}
3739
mkdir -p /opt/photoprism_backups
38-
curl -fsSL https://dl.photoprism.app/pkg/linux/amd64.tar.gz | tar -xz -C /opt/photoprism --strip-components=1
3940
LIBHEIF_URL=$(curl -fsSL "https://dl.photoprism.app/dist/libheif/" | grep -oP "libheif-$(lsb_release -cs)-amd64-v[0-9\.]+\.tar\.gz" | sort -V | tail -n 1)
40-
curl -fsSL "https://dl.photoprism.app/dist/libheif/$LIBHEIF_URL" | tar -xzf - -C /usr/local --strip-components=1
41+
curl -fsSL "https://dl.photoprism.app/dist/libheif/$LIBHEIF_URL" -o /tmp/libheif.tar.gz
42+
tar -xzf /tmp/libheif.tar.gz -C /usr/local
4143
ldconfig
44+
echo "${LIBHEIF_URL}" >~/.photoprism_libheif
4245
chmod -R 755 /opt/photoprism/photos/originals
4346
cat <<EOF >/opt/photoprism/config/.env
44-
PHOTOPRISM_AUTH_MODE='password'
47+
# Authentication
48+
PHOTOPRISM_ADMIN_USER='admin'
4549
PHOTOPRISM_ADMIN_PASSWORD='changeme'
50+
PHOTOPRISM_AUTH_MODE='password'
51+
PHOTOPRISM_PUBLIC='false'
52+
53+
# Network / HTTP
4654
PHOTOPRISM_HTTP_HOST='0.0.0.0'
4755
PHOTOPRISM_HTTP_PORT='2342'
48-
PHOTOPRISM_SITE_CAPTION='https://Helper-Scripts.com'
56+
PHOTOPRISM_SITE_URL='http://localhost:2342/'
57+
PHOTOPRISM_DISABLE_TLS='true'
58+
PHOTOPRISM_DEFAULT_TLS='false'
59+
PHOTOPRISM_HTTP_COMPRESSION='gzip'
60+
61+
# Features & AI
62+
PHOTOPRISM_DISABLE_TENSORFLOW='false'
63+
PHOTOPRISM_DISABLE_FACES='false'
64+
PHOTOPRISM_DISABLE_CLASSIFICATION='false'
65+
PHOTOPRISM_DISABLE_VECTORS='false'
66+
PHOTOPRISM_DETECT_NSFW='false'
67+
PHOTOPRISM_UPLOAD_NSFW='true'
68+
69+
# Paths & Storage
4970
PHOTOPRISM_STORAGE_PATH='/opt/photoprism/storage'
5071
PHOTOPRISM_ORIGINALS_PATH='/opt/photoprism/photos/originals'
5172
PHOTOPRISM_IMPORT_PATH='/opt/photoprism/photos/import'
5273
PHOTOPRISM_BACKUP_PATH='/opt/photoprism_backups'
74+
75+
# Database
5376
PHOTOPRISM_DATABASE_DRIVER='sqlite'
54-
PHOTOPRISM_DISABLE_WEBDAV='false'
55-
PHOTOPRISM_DISABLE_FACES='false'
77+
78+
# Behavior & Options
5679
PHOTOPRISM_AUTO_INDEX='300'
5780
PHOTOPRISM_AUTO_IMPORT='-1'
58-
PHOTOPRISM_PUBLIC='false'
81+
PHOTOPRISM_DISABLE_WEBDAV='false'
82+
PHOTOPRISM_READONLY='false'
83+
PHOTOPRISM_DISABLE_SETTINGS='false'
84+
PHOTOPRISM_DISABLE_CHOWN='false'
85+
PHOTOPRISM_EXPERIMENTAL='false'
86+
PHOTOPRISM_INIT='https tensorflow'
87+
88+
# Image Processing
89+
PHOTOPRISM_ORIGINALS_LIMIT='5000'
90+
PHOTOPRISM_JPEG_QUALITY='85'
91+
PHOTOPRISM_RAW_PRESETS='false'
92+
PHOTOPRISM_DISABLE_RAW='false'
93+
94+
# Debug & Logging
5995
PHOTOPRISM_DEBUG='false'
96+
PHOTOPRISM_LOG_LEVEL='info'
97+
98+
# Site Info
99+
PHOTOPRISM_SITE_CAPTION='https://Helper-Scripts.com'
100+
PHOTOPRISM_SITE_DESCRIPTION=''
101+
PHOTOPRISM_SITE_AUTHOR=''
60102
EOF
61103
ln -sf /opt/photoprism/bin/photoprism /usr/local/bin/photoprism
62104

0 commit comments

Comments
 (0)