Skip to content

Commit e83cd82

Browse files
committed
Add: Stump
1 parent c03cab3 commit e83cd82

3 files changed

Lines changed: 163 additions & 0 deletions

File tree

‎ct/stump.sh‎

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
#!/usr/bin/env bash
2+
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/DevScripts/main"
3+
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
4+
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
5+
# Copyright (c) 2021-2026 community-scripts ORG
6+
# Author: MickLesk (CanbiZ)
7+
# License: MIT | https://github.com/community-scripts/DevScripts/raw/main/LICENSE
8+
# Source: https://github.com/stumpapp/stump
9+
10+
APP="Stump"
11+
var_tags="${var_tags:-comics;manga;ebook}"
12+
var_cpu="${var_cpu:-2}"
13+
var_ram="${var_ram:-1024}"
14+
var_disk="${var_disk:-8}"
15+
var_os="${var_os:-debian}"
16+
var_version="${var_version:-13}"
17+
var_arm64="${var_arm64:-no}" # upstream releases ship a Linux x86_64 server only
18+
var_unprivileged="${var_unprivileged:-1}"
19+
20+
header_info "$APP"
21+
variables
22+
color
23+
catch_errors
24+
25+
function update_script() {
26+
header_info
27+
check_container_storage
28+
check_container_resources
29+
30+
if [[ ! -d /opt/stump ]]; then
31+
msg_error "No ${APP} Installation Found!"
32+
exit
33+
fi
34+
35+
if check_for_gh_release "stump" "stumpapp/stump"; then
36+
msg_info "Stopping Stump"
37+
systemctl stop stump
38+
msg_ok "Stopped Stump"
39+
40+
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "stump" "stumpapp/stump" "prebuild" "latest" "/opt/stump" "linux-build-results.zip"
41+
chmod +x /opt/stump/stump_server
42+
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "pdfium" "bblanchon/pdfium-binaries" "prebuild" "latest" "/opt/pdfium" "pdfium-linux-x64.tgz"
43+
44+
msg_info "Starting Stump"
45+
systemctl start stump
46+
msg_ok "Started Stump"
47+
msg_ok "Updated successfully!"
48+
fi
49+
exit
50+
}
51+
52+
start
53+
build_container
54+
description
55+
56+
msg_ok "Completed Successfully!\n"
57+
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
58+
echo -e "${INFO}${YW}Access it using the following URL:${CL}"
59+
echo -e "${GATEWAY}${BGN}http://${IP}:10801${CL}"

‎install/stump-install.sh‎

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
#!/usr/bin/env bash
2+
3+
# Copyright (c) 2021-2026 community-scripts ORG
4+
# Author: MickLesk (CanbiZ)
5+
# License: MIT | https://github.com/community-scripts/DevScripts/raw/main/LICENSE
6+
# Source: https://github.com/stumpapp/stump
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+
fetch_and_deploy_gh_release "stump" "stumpapp/stump" "prebuild" "latest" "/opt/stump" "linux-build-results.zip"
17+
# the release zip does not keep the executable bit
18+
chmod +x /opt/stump/stump_server
19+
# Stump loads PDFium at runtime for PDF support; the official image ships the same bblanchon build
20+
fetch_and_deploy_gh_release "pdfium" "bblanchon/pdfium-binaries" "prebuild" "latest" "/opt/pdfium" "pdfium-linux-x64.tgz"
21+
22+
msg_info "Creating Stump Service"
23+
mkdir -p /opt/stump_data/{config,library}
24+
cat <<EOF >/etc/systemd/system/stump.service
25+
[Unit]
26+
Description=Stump
27+
After=network.target
28+
29+
[Service]
30+
Type=simple
31+
User=root
32+
WorkingDirectory=/opt/stump
33+
Environment=STUMP_CONFIG_DIR=/opt/stump_data/config
34+
Environment=STUMP_CLIENT_DIR=/opt/stump/client
35+
Environment=PDFIUM_PATH=/opt/pdfium/lib/libpdfium.so
36+
ExecStart=/opt/stump/stump_server
37+
Restart=on-failure
38+
RestartSec=5
39+
40+
[Install]
41+
WantedBy=multi-user.target
42+
EOF
43+
systemctl enable -q --now stump
44+
msg_ok "Created Stump Service"
45+
46+
motd_ssh
47+
customize
48+
cleanup_lxc

‎json/stump.json‎

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
{
2+
"name": "Stump",
3+
"slug": "stump",
4+
"categories": [
5+
13
6+
],
7+
"date_created": "2026-10-07",
8+
"type": "ct",
9+
"updateable": true,
10+
"privileged": false,
11+
"interface_port": 10801,
12+
"documentation": "https://www.stumpapp.dev/docs",
13+
"website": "https://www.stumpapp.dev/",
14+
"repository": "https://github.com/stumpapp/stump",
15+
"architectures": [
16+
"amd64"
17+
],
18+
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/stump.webp",
19+
"description": "Stump is a free and open-source comics, manga and digital book server with OPDS support. It scans folders of CBZ, CBR, EPUB and PDF files into libraries and series, reads them in the browser with progress tracking, and serves them to OPDS readers and the Stump mobile apps. This script installs the official Linux server release together with PDFium for PDF support.",
20+
"install_methods": [
21+
{
22+
"type": "default",
23+
"script": "ct/stump.sh",
24+
"config_path": "/opt/stump_data/config/Stump.toml",
25+
"resources": {
26+
"cpu": 2,
27+
"ram": 1024,
28+
"hdd": 8,
29+
"os": "Debian",
30+
"version": "13"
31+
}
32+
}
33+
],
34+
"default_credentials": {
35+
"username": null,
36+
"password": null
37+
},
38+
"notes": [
39+
{
40+
"text": "There is no default account. Open http://<IP>:10801 and complete the onboarding: the first account becomes the server owner and closes sign-up, further users are added from the settings. Anyone who reaches the port can claim the server until then, so do it right after the install.",
41+
"type": "warning"
42+
},
43+
{
44+
"text": "Books are not added automatically. Create a library in Stump and point it at a folder inside the container. /opt/stump_data/library exists for this; to use a folder from the Proxmox host, bind-mount it there with pct set <CTID> -mp0 /path/on/host,mp=/opt/stump_data/library. In an unprivileged container the files must be readable by host UID 100000.",
45+
"type": "info"
46+
},
47+
{
48+
"text": "OPDS readers connect to http://<IP>:10801/opds/v1.2/catalog (or /opds/v2.0/catalog) with a Stump username and password.",
49+
"type": "info"
50+
},
51+
{
52+
"text": "The database, Stump.toml, thumbnails and logs live in /opt/stump_data/config. STUMP_CONFIG_DIR, STUMP_CLIENT_DIR and PDFIUM_PATH are set in stump.service and take precedence over Stump.toml; run systemctl restart stump after changing either.",
53+
"type": "info"
54+
}
55+
]
56+
}

0 commit comments

Comments
 (0)