Skip to content

Commit 0fa6e17

Browse files
committed
-
1 parent ab88156 commit 0fa6e17

3 files changed

Lines changed: 214 additions & 0 deletions

File tree

ct/immichframe.sh

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
#!/usr/bin/env bash
2+
COMMUNITY_SCRIPTS_URL="${COMMUNITY_SCRIPTS_URL:-https://git.community-scripts.org/community-scripts/ProxmoxVED/raw/branch/main}"
3+
source <(curl -fsSL "$COMMUNITY_SCRIPTS_URL/misc/build.func")
4+
# Copyright (c) 2021-2026 community-scripts ORG
5+
# Author: Thiago Canozzo Lahr (tclahr)
6+
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
7+
# Source: https://github.com/immichFrame/ImmichFrame
8+
9+
APP="ImmichFrame"
10+
var_tags="${var_tags:-photos;slideshow}"
11+
var_cpu="${var_cpu:-1}"
12+
var_ram="${var_ram:-1024}"
13+
var_disk="${var_disk:-8}"
14+
var_os="${var_os:-debian}"
15+
var_version="${var_version:-13}"
16+
var_unprivileged="${var_unprivileged:-1}"
17+
18+
header_info "$APP"
19+
variables
20+
color
21+
catch_errors
22+
23+
function update_script() {
24+
header_info
25+
check_container_storage
26+
check_container_resources
27+
28+
if [[ ! -d /opt/immichframe ]]; then
29+
msg_error "No ${APP} Installation Found!"
30+
exit
31+
fi
32+
33+
if check_for_gh_release "immichframe" "immichFrame/ImmichFrame"; then
34+
msg_info "Stopping Service"
35+
systemctl stop immichframe
36+
msg_ok "Stopped Service"
37+
38+
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "immichframe" "immichFrame/ImmichFrame" "tarball" "latest" "/tmp/immichframe"
39+
40+
msg_info "Building Application"
41+
cd /tmp/immichframe
42+
$STD dotnet publish ImmichFrame.WebApi/ImmichFrame.WebApi.csproj \
43+
--configuration Release \
44+
--runtime linux-x64 \
45+
--self-contained false \
46+
--output /opt/immichframe
47+
48+
cd /tmp/immichframe/immichFrame.Web
49+
$STD npm ci --silent
50+
$STD npm run build
51+
rm -rf /opt/immichframe/wwwroot/*
52+
cp -r build/* /opt/immichframe/wwwroot
53+
rm -rf /tmp/immichframe
54+
chown -R immichframe:immichframe /opt/immichframe
55+
msg_ok "Application Built"
56+
57+
msg_info "Starting Service"
58+
systemctl start immichframe
59+
msg_ok "Started Service"
60+
msg_ok "Updated successfully!"
61+
fi
62+
exit
63+
}
64+
65+
start
66+
build_container
67+
description
68+
69+
msg_ok "Completed successfully!\n"
70+
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
71+
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
72+
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080${CL}"
73+
echo -e "${INFO}${YW} Configuration file location:${CL}"
74+
echo -e "${TAB}${GATEWAY}${BGN}/opt/immichframe/Config/Settings.yml${CL}"
75+
echo -e "${INFO}${YW} Edit the config file and set ImmichServerUrl and ApiKey before use!${CL}"
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
{
2+
"name": "ImmichFrame",
3+
"slug": "immichframe",
4+
"categories": [
5+
13
6+
],
7+
"date_created": "2026-02-26",
8+
"type": "ct",
9+
"updateable": true,
10+
"privileged": false,
11+
"interface_port": 8080,
12+
"documentation": null,
13+
"config_path": "/opt/immichframe/Config/Settings.yml",
14+
"website": null,
15+
"logo": "https://github.com/selfhst/icons/blob/main/webp/immich-frame.webp",
16+
"description": "ImmichFrame is a digital photo frame web application that connects to your Immich server and displays your photos as a fullscreen slideshow.",
17+
"install_methods": [
18+
{
19+
"type": "default",
20+
"script": "ct/immichframe.sh",
21+
"resources": {
22+
"cpu": 1,
23+
"ram": 1024,
24+
"hdd": 8,
25+
"os": "Debian",
26+
"version": "13"
27+
}
28+
}
29+
],
30+
"default_credentials": {
31+
"username": null,
32+
"password": null
33+
},
34+
"notes": [
35+
{
36+
"text": "After installation, edit `/opt/immichframe/Config/Settings.yml` and set ImmichServerUrl and ApiKey. Then restart the service with `systemctl restart immichframe`.",
37+
"type": "info"
38+
}
39+
]
40+
}

install/immichframe-install.sh

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
#!/usr/bin/env bash
2+
3+
# Copyright (c) 2021-2026 community-scripts ORG
4+
# Author: Thiago Canozzo Lahr (tclahr)
5+
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
6+
# Source: https://github.com/immichFrame/ImmichFrame
7+
8+
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
9+
color
10+
verb_ip6
11+
catch_errors
12+
setting_up_container
13+
network_check
14+
update_os
15+
16+
msg_info "Installing Dependencies"
17+
setup_deb822_repo \
18+
"microsoft" \
19+
"https://packages.microsoft.com/keys/microsoft-2025.asc" \
20+
"https://packages.microsoft.com/debian/13/prod/" \
21+
"trixie" \
22+
"main"
23+
$STD apt-get install -y \
24+
libicu-dev \
25+
libssl-dev \
26+
gettext-base \
27+
dotnet-sdk-8.0 \
28+
aspnetcore-runtime-8.0
29+
msg_ok "Installed Dependencies"
30+
31+
NODE_VERSION="22" setup_nodejs
32+
33+
fetch_and_deploy_gh_release "immichframe" "immichFrame/ImmichFrame" "tarball" "latest" "/tmp/immichframe"
34+
35+
msg_info "Building Application"
36+
mkdir -p /opt/immichframe
37+
cd /tmp/immichframe
38+
$STD dotnet publish ImmichFrame.WebApi/ImmichFrame.WebApi.csproj \
39+
--configuration Release \
40+
--runtime linux-x64 \
41+
--self-contained false \
42+
--output /opt/immichframe
43+
cd /tmp/immichframe/immichFrame.Web
44+
$STD npm ci
45+
$STD npm run build
46+
cp -r build/* /opt/immichframe/wwwroot
47+
msg_ok "Application Built"
48+
49+
msg_info "Removing Build Dependencies"
50+
$STD apt-get remove -y dotnet-sdk-8.0
51+
$STD apt-get autoremove -y
52+
rm -rf /tmp/immichframe
53+
msg_ok "Removed Build Dependencies"
54+
55+
msg_info "Configuring ImmichFrame"
56+
mkdir -p /opt/immichframe/Config
57+
curl -fsSL "https://raw.githubusercontent.com/immichFrame/ImmichFrame/main/docker/Settings.example.yml" \
58+
-o /opt/immichframe/Config/Settings.yml
59+
msg_ok "Configured ImmichFrame"
60+
61+
msg_info "Creating immichframe User"
62+
useradd -r -s /sbin/nologin -d /opt/immichframe -M immichframe 2>/dev/null
63+
chown -R immichframe:immichframe /opt/immichframe
64+
msg_ok "User immichframe Created"
65+
66+
msg_info "Creating Service"
67+
cat <<'EOF' >/etc/systemd/system/immichframe.service
68+
[Unit]
69+
Description=ImmichFrame Digital Photo Frame
70+
After=network.target
71+
72+
[Service]
73+
Type=simple
74+
User=immichframe
75+
Group=immichframe
76+
77+
WorkingDirectory=/opt/immichframe
78+
ExecStart=/usr/bin/dotnet /opt/immichframe/ImmichFrame.WebApi.dll
79+
80+
Environment=ASPNETCORE_URLS=http://0.0.0.0:8080
81+
Environment=ASPNETCORE_ENVIRONMENT=Production
82+
Environment=DOTNET_CONTENTROOT=/opt/immichframe
83+
84+
Restart=always
85+
RestartSec=5
86+
87+
StandardOutput=journal
88+
StandardError=journal
89+
SyslogIdentifier=immichframe
90+
91+
[Install]
92+
WantedBy=multi-user.target
93+
EOF
94+
systemctl enable -q --now immichframe
95+
msg_ok "Created Service"
96+
97+
motd_ssh
98+
customize
99+
cleanup_lxc

0 commit comments

Comments
 (0)