mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-09-17 10:14:00 +00:00
immichFrame/ImmichFrame#698 added an admin UI that refuses to open /admin unless IMMICHFRAME_ADMIN_PASSWORD is set, leaving users to edit the unit by hand after an install or an upgrade from an older version. Generate one, put it in the unit next to the other Environment lines, and record it in ~/immichframe.creds the way the other scripts record credentials. The update adds the line only when it is missing, so a password already set by hand survives.
98 lines
2.9 KiB
Bash
98 lines
2.9 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
# Copyright (c) 2021-2026 community-scripts ORG
|
|
# Author: Thiago Canozzo Lahr (tclahr)
|
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
# Source: https://github.com/immichFrame/ImmichFrame
|
|
|
|
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
|
color
|
|
verb_ip6
|
|
catch_errors
|
|
setting_up_container
|
|
network_check
|
|
update_os
|
|
|
|
msg_info "Installing Dependencies"
|
|
if [[ "$(arch_resolve)" == "arm64" ]]; then
|
|
$STD apt install -y libicu-dev libssl-dev gettext-base
|
|
curl -fsSL https://dot.net/v1/dotnet-install.sh -o /tmp/dotnet-install.sh
|
|
$STD bash /tmp/dotnet-install.sh --channel 8.0 --install-dir /usr/lib/dotnet8
|
|
ln -sf /usr/lib/dotnet8/dotnet /usr/bin/dotnet
|
|
rm -f /tmp/dotnet-install.sh
|
|
else
|
|
setup_deb822_repo \
|
|
"microsoft" \
|
|
"https://packages.microsoft.com/keys/microsoft-2025.asc" \
|
|
"https://packages.microsoft.com/debian/13/prod/" \
|
|
"trixie" \
|
|
"main"
|
|
$STD apt install -y \
|
|
libicu-dev \
|
|
libssl-dev \
|
|
gettext-base \
|
|
dotnet-sdk-8.0 \
|
|
aspnetcore-runtime-8.0
|
|
fi
|
|
msg_ok "Installed Dependencies"
|
|
|
|
NODE_VERSION="22" setup_nodejs
|
|
fetch_and_deploy_gh_release "immichframe" "immichFrame/ImmichFrame" "tarball" "latest" "/tmp/immichframe"
|
|
|
|
msg_info "Setting up ImmichFrame"
|
|
mkdir -p /opt/immichframe
|
|
cd /tmp/immichframe
|
|
$STD dotnet publish ImmichFrame.WebApi/ImmichFrame.WebApi.csproj \
|
|
--configuration Release \
|
|
--runtime "$(arch_resolve "linux-x64" "linux-arm64")" \
|
|
--self-contained false \
|
|
--output /opt/immichframe
|
|
cd /tmp/immichframe/immichFrame.Web
|
|
$STD npm ci
|
|
$STD npm run build
|
|
cp -r build/* /opt/immichframe/wwwroot
|
|
rm -rf /tmp/immichframe
|
|
mkdir -p /opt/immichframe/Config
|
|
curl -fsSL "https://raw.githubusercontent.com/immichFrame/ImmichFrame/main/docker/Settings.example.yml" -o /opt/immichframe/Config/Settings.yml
|
|
sed -i '/^[[:space:]]*- UUID[[:space:]]*$/d' /opt/immichframe/Config/Settings.yml
|
|
useradd -r -s /sbin/nologin -d /opt/immichframe -M immichframe
|
|
chown -R immichframe:immichframe /opt/immichframe
|
|
msg_ok "Setup ImmichFrame"
|
|
|
|
msg_info "Creating Service"
|
|
ADMIN_PASSWORD=$(openssl rand -hex 16)
|
|
{
|
|
echo "ImmichFrame Admin User: admin"
|
|
echo "ImmichFrame Admin Password: $ADMIN_PASSWORD"
|
|
} >>~/immichframe.creds
|
|
cat <<EOF >/etc/systemd/system/immichframe.service
|
|
[Unit]
|
|
Description=ImmichFrame Digital Photo Frame
|
|
After=network.target
|
|
|
|
[Service]
|
|
Type=simple
|
|
User=immichframe
|
|
Group=immichframe
|
|
WorkingDirectory=/opt/immichframe
|
|
ExecStart=/usr/bin/dotnet /opt/immichframe/ImmichFrame.WebApi.dll
|
|
Environment=ASPNETCORE_URLS=http://0.0.0.0:8080
|
|
Environment=ASPNETCORE_ENVIRONMENT=Production
|
|
Environment=DOTNET_CONTENTROOT=/opt/immichframe
|
|
Environment=IMMICHFRAME_ADMIN_PASSWORD=$ADMIN_PASSWORD
|
|
Restart=always
|
|
RestartSec=5
|
|
StandardOutput=journal
|
|
StandardError=journal
|
|
SyslogIdentifier=immichframe
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
EOF
|
|
systemctl enable -q --now immichframe
|
|
msg_ok "Created Service"
|
|
|
|
motd_ssh
|
|
customize
|
|
cleanup_lxc
|