Add container templates and installers for apps

Add new ProxmoxVED container templates (ct/*.sh), install scripts (install/*.sh) and metadata (json/*.json) for multiple applications: Akaunting, Blinko, Certimate, Dagu, Gogs, InvoiceShelf, Matomo, Papermark, RSS-Bridge, SolidTime and WhoDB. Each ct script includes update logic and deployment helpers; install scripts handle dependency installation, service creation (systemd), DB setup, and Caddy/PHP/Node/Postgres configuration where applicable. JSON entries provide UI metadata, resource defaults and access ports for each app.
This commit is contained in:
CanbiZ (MickLesk)
2026-04-13 16:30:41 +02:00
parent c5bbc956a1
commit e3d2cbb566
33 changed files with 1783 additions and 0 deletions

76
ct/akaunting.sh Normal file
View File

@@ -0,0 +1,76 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
# Source: https://akaunting.com/
APP="Akaunting"
var_tags="${var_tags:-accounting;finance;erp}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-8}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/akaunting ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "akaunting" "akaunting/akaunting"; then
msg_info "Stopping Services"
systemctl stop caddy
msg_ok "Stopped Services"
msg_info "Backing up Data"
cp /opt/akaunting/.env /opt/akaunting.env.bak
cp -r /opt/akaunting/storage /opt/akaunting_storage_backup
msg_ok "Backed up Data"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "akaunting" "akaunting/akaunting" "tarball"
msg_info "Restoring Data"
cp /opt/akaunting.env.bak /opt/akaunting/.env
rm -f /opt/akaunting.env.bak
cp -r /opt/akaunting_storage_backup/. /opt/akaunting/storage
rm -rf /opt/akaunting_storage_backup
msg_ok "Restored Data"
msg_info "Updating Application"
cd /opt/akaunting
$STD composer install --no-dev --optimize-autoloader
$STD npm install
$STD npm run dev
$STD php artisan migrate --force
$STD php artisan optimize:clear
chown -R www-data:www-data /opt/akaunting
msg_ok "Updated Application"
msg_info "Starting Services"
systemctl start caddy
msg_ok "Started Services"
msg_ok "Updated successfully!"
fi
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"

70
ct/blinko.sh Normal file
View File

@@ -0,0 +1,70 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
# Source: https://blinko.space/
APP="Blinko"
var_tags="${var_tags:-notes;ai;knowledge}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-8}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/blinko ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "blinko" "blinkospace/blinko"; then
msg_info "Stopping Service"
systemctl stop blinko
msg_ok "Stopped Service"
msg_info "Backing up Data"
cp /opt/blinko/.env /opt/blinko.env.bak
msg_ok "Backed up Data"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "blinko" "blinkospace/blinko" "tarball"
msg_info "Restoring Data"
cp /opt/blinko.env.bak /opt/blinko/.env
rm -f /opt/blinko.env.bak
msg_ok "Restored Data"
msg_info "Updating Application"
cd /opt/blinko
$STD npm install
$STD npx prisma migrate deploy
$STD npm run build
msg_ok "Updated Application"
msg_info "Starting Service"
systemctl start blinko
msg_ok "Started Service"
msg_ok "Updated successfully!"
fi
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:1111${CL}"

63
ct/certimate.sh Normal file
View File

@@ -0,0 +1,63 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
# Source: https://certimate.me/
APP="Certimate"
var_tags="${var_tags:-ssl;certificates;acme;automation}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-256}"
var_disk="${var_disk:-2}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /opt/certimate/certimate ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "certimate" "certimate-go/certimate"; then
msg_info "Stopping Service"
systemctl stop certimate
msg_ok "Stopped Service"
msg_info "Backing up Data"
cp -r /opt/certimate/pb_data /opt/certimate_pb_data_backup
msg_ok "Backed up Data"
fetch_and_deploy_gh_release "certimate" "certimate-go/certimate" "prebuild" "latest" "/opt/certimate" "certimate_*_linux_amd64.zip"
msg_info "Restoring Data"
cp -r /opt/certimate_pb_data_backup/. /opt/certimate/pb_data
rm -rf /opt/certimate_pb_data_backup
msg_ok "Restored Data"
msg_info "Starting Service"
systemctl start certimate
msg_ok "Started Service"
msg_ok "Updated successfully!"
fi
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8090${CL}"

64
ct/dagu.sh Normal file
View File

@@ -0,0 +1,64 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
# Source: https://dagu.sh/
APP="Dagu"
var_tags="${var_tags:-automation;workflow;scheduler}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}"
var_disk="${var_disk:-4}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /opt/dagu/dagu ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "dagu" "dagucloud/dagu"; then
msg_info "Stopping Service"
systemctl stop dagu
msg_ok "Stopped Service"
msg_info "Backing up Data"
cp -r /opt/dagu/data /opt/dagu_data_backup
msg_ok "Backed up Data"
fetch_and_deploy_gh_release "dagu" "dagucloud/dagu" "prebuild" "latest" "/opt/dagu" "dagu_*_linux_amd64.tar.gz"
msg_info "Restoring Data"
mkdir -p /opt/dagu/data
cp -r /opt/dagu_data_backup/. /opt/dagu/data
rm -rf /opt/dagu_data_backup
msg_ok "Restored Data"
msg_info "Starting Service"
systemctl start dagu
msg_ok "Started Service"
msg_ok "Updated successfully!"
fi
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080${CL}"

65
ct/gogs.sh Normal file
View File

@@ -0,0 +1,65 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
# Source: https://gogs.io/
APP="Gogs"
var_tags="${var_tags:-git;code;devops}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-1024}"
var_disk="${var_disk:-8}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /opt/gogs/gogs ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "gogs" "gogs/gogs"; then
msg_info "Stopping Service"
systemctl stop gogs
msg_ok "Stopped Service"
msg_info "Backing up Data"
cp -r /opt/gogs/custom /opt/gogs_custom_backup
cp -r /opt/gogs/data /opt/gogs_data_backup
msg_ok "Backed up Data"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "gogs" "gogs/gogs" "prebuild" "latest" "/opt/gogs" "gogs_*_linux_amd64.tar.gz"
msg_info "Restoring Data"
cp -r /opt/gogs_custom_backup/. /opt/gogs/custom
cp -r /opt/gogs_data_backup/. /opt/gogs/data
rm -rf /opt/gogs_custom_backup /opt/gogs_data_backup
msg_ok "Restored Data"
msg_info "Starting Service"
systemctl start gogs
msg_ok "Started Service"
msg_ok "Updated successfully!"
fi
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"

76
ct/invoiceshelf.sh Normal file
View File

@@ -0,0 +1,76 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
# Source: https://invoiceshelf.com/
APP="InvoiceShelf"
var_tags="${var_tags:-invoicing;finance;business}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-1024}"
var_disk="${var_disk:-4}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/invoiceshelf ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "invoiceshelf" "InvoiceShelf/InvoiceShelf"; then
msg_info "Stopping Services"
systemctl stop caddy
msg_ok "Stopped Services"
msg_info "Backing up Data"
cp /opt/invoiceshelf/.env /opt/invoiceshelf.env.bak
cp -r /opt/invoiceshelf/storage /opt/invoiceshelf_storage_backup
msg_ok "Backed up Data"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "invoiceshelf" "InvoiceShelf/InvoiceShelf" "tarball"
msg_info "Restoring Data"
cp /opt/invoiceshelf.env.bak /opt/invoiceshelf/.env
rm -f /opt/invoiceshelf.env.bak
cp -r /opt/invoiceshelf_storage_backup/. /opt/invoiceshelf/storage
rm -rf /opt/invoiceshelf_storage_backup
msg_ok "Restored Data"
msg_info "Updating Application"
cd /opt/invoiceshelf
$STD composer install --no-dev --optimize-autoloader
$STD yarn install
$STD yarn build
$STD php artisan migrate --force
$STD php artisan optimize:clear
chown -R www-data:www-data /opt/invoiceshelf
msg_ok "Updated Application"
msg_info "Starting Services"
systemctl start caddy
msg_ok "Started Services"
msg_ok "Updated successfully!"
fi
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"

67
ct/matomo.sh Normal file
View File

@@ -0,0 +1,67 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
# Source: https://matomo.org/
APP="Matomo"
var_tags="${var_tags:-analytics;tracking;privacy}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-16}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/matomo ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "matomo" "matomo-org/matomo"; then
msg_info "Stopping Services"
systemctl stop caddy
msg_ok "Stopped Services"
msg_info "Backing up Data"
cp /opt/matomo/config/config.ini.php /opt/matomo_config.bak
cp -r /opt/matomo/misc/user /opt/matomo_user_backup 2>/dev/null
msg_ok "Backed up Data"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "matomo" "matomo-org/matomo" "prebuild" "latest" "/opt/matomo" "matomo-*.zip"
msg_info "Restoring Data"
cp /opt/matomo_config.bak /opt/matomo/config/config.ini.php
cp -r /opt/matomo_user_backup/. /opt/matomo/misc/user 2>/dev/null
rm -f /opt/matomo_config.bak
rm -rf /opt/matomo_user_backup
chown -R www-data:www-data /opt/matomo
msg_ok "Restored Data"
msg_info "Starting Services"
systemctl start caddy
msg_ok "Started Services"
msg_ok "Updated successfully!"
fi
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"

70
ct/papermark.sh Normal file
View File

@@ -0,0 +1,70 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
# Source: https://www.papermark.com/
APP="Papermark"
var_tags="${var_tags:-documents;sharing;analytics}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-8}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/papermark ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "papermark" "mfts/papermark"; then
msg_info "Stopping Service"
systemctl stop papermark
msg_ok "Stopped Service"
msg_info "Backing up Data"
cp /opt/papermark/.env /opt/papermark.env.bak
msg_ok "Backed up Data"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "papermark" "mfts/papermark" "tarball"
msg_info "Restoring Data"
cp /opt/papermark.env.bak /opt/papermark/.env
rm -f /opt/papermark.env.bak
msg_ok "Restored Data"
msg_info "Updating Application"
cd /opt/papermark
$STD npm install
$STD npx prisma migrate deploy
$STD npm run build
msg_ok "Updated Application"
msg_info "Starting Service"
systemctl start papermark
msg_ok "Started Service"
msg_ok "Updated successfully!"
fi
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"

63
ct/rss-bridge.sh Normal file
View File

@@ -0,0 +1,63 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
# Source: https://rss-bridge.org/
APP="RSS-Bridge"
var_tags="${var_tags:-rss;feed;bridge}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}"
var_disk="${var_disk:-2}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/rss-bridge ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "rss-bridge" "RSS-Bridge/rss-bridge"; then
msg_info "Backing up Data"
cp /opt/rss-bridge/config.ini.php /opt/rss-bridge_config.bak 2>/dev/null
msg_ok "Backed up Data"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "rss-bridge" "RSS-Bridge/rss-bridge" "tarball"
msg_info "Restoring Data"
cp /opt/rss-bridge_config.bak /opt/rss-bridge/config.ini.php 2>/dev/null
rm -f /opt/rss-bridge_config.bak
msg_ok "Restored Data"
msg_info "Updating Application"
cd /opt/rss-bridge
$STD composer install --no-dev --optimize-autoloader
chown -R www-data:www-data /opt/rss-bridge
msg_ok "Updated Application"
systemctl restart caddy
msg_ok "Updated successfully!"
fi
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"

76
ct/solidtime.sh Normal file
View File

@@ -0,0 +1,76 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
# Source: https://www.solidtime.io/
APP="SolidTime"
var_tags="${var_tags:-time-tracking;productivity;business}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-8}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/solidtime ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "solidtime" "solidtime-io/solidtime"; then
msg_info "Stopping Services"
systemctl stop caddy
msg_ok "Stopped Services"
msg_info "Backing up Data"
cp /opt/solidtime/.env /opt/solidtime.env.bak
cp -r /opt/solidtime/storage /opt/solidtime_storage_backup
msg_ok "Backed up Data"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "solidtime" "solidtime-io/solidtime" "tarball"
msg_info "Restoring Data"
cp /opt/solidtime.env.bak /opt/solidtime/.env
rm -f /opt/solidtime.env.bak
cp -r /opt/solidtime_storage_backup/. /opt/solidtime/storage
rm -rf /opt/solidtime_storage_backup
msg_ok "Restored Data"
msg_info "Updating Application"
cd /opt/solidtime
$STD composer install --no-dev --optimize-autoloader
$STD npm install
$STD npm run build
$STD php artisan migrate --force
$STD php artisan optimize:clear
chown -R www-data:www-data /opt/solidtime
msg_ok "Updated Application"
msg_info "Starting Services"
systemctl start caddy
msg_ok "Started Services"
msg_ok "Updated successfully!"
fi
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"

54
ct/whodb.sh Normal file
View File

@@ -0,0 +1,54 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
# Source: https://whodb.com/
APP="WhoDB"
var_tags="${var_tags:-database;management;gui}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}"
var_disk="${var_disk:-2}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /opt/whodb/whodb ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "whodb" "clidey/whodb"; then
msg_info "Stopping Service"
systemctl stop whodb
msg_ok "Stopped Service"
fetch_and_deploy_gh_release "whodb" "clidey/whodb" "singlefile" "latest" "/opt/whodb" "whodb-*-linux-amd64"
msg_info "Starting Service"
systemctl start whodb
msg_ok "Started Service"
msg_ok "Updated ${APP}"
fi
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080${CL}"

View File

@@ -0,0 +1,74 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
# Source: https://akaunting.com/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt install -y caddy
msg_ok "Installed Dependencies"
PHP_VERSION="8.3" PHP_FPM="YES" PHP_MODULES="bcmath,gd,intl,xml,zip,pdo_mysql,mbstring,curl" setup_php
setup_composer
NODE_VERSION="22" setup_nodejs
MARIADB_DB_NAME="akaunting" MARIADB_DB_USER="akaunting" setup_mariadb_db
fetch_and_deploy_gh_release "akaunting" "akaunting/akaunting" "tarball"
msg_info "Setting up ${APP}"
cd /opt/akaunting
$STD composer install --no-dev --optimize-autoloader
$STD npm install
$STD npm run dev
cat <<EOF >/opt/akaunting/.env
APP_NAME=Akaunting
APP_ENV=production
APP_DEBUG=false
APP_URL=http://${LOCAL_IP}
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=${MARIADB_DB_NAME}
DB_USERNAME=${MARIADB_DB_USER}
DB_PASSWORD=${MARIADB_DB_PASS}
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_CONNECTION=sync
EOF
$STD php artisan key:generate
mkdir -p storage/framework/{cache,sessions,views} storage/logs bootstrap/cache
chown -R www-data:www-data /opt/akaunting
chmod -R 775 storage bootstrap/cache
$STD php artisan migrate --force --seed
msg_ok "Set up ${APP}"
msg_info "Configuring Caddy"
PHP_VER=$(php -r 'echo PHP_MAJOR_VERSION . "." . PHP_MINOR_VERSION;')
cat <<EOF >/etc/caddy/Caddyfile
:80 {
root * /opt/akaunting/public
php_fastcgi unix//run/php/php${PHP_VER}-fpm.sock
file_server
encode gzip
}
EOF
usermod -aG www-data caddy
msg_ok "Configured Caddy"
systemctl enable -q --now php${PHP_VER}-fpm
systemctl restart caddy
motd_ssh
customize
cleanup_lxc

60
install/blinko-install.sh Normal file
View File

@@ -0,0 +1,60 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
# Source: https://blinko.space/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
NODE_VERSION="22" setup_nodejs
PG_VERSION="16" setup_postgresql
PG_DB_NAME="blinko" PG_DB_USER="blinko" setup_postgresql_db
fetch_and_deploy_gh_release "blinko" "blinkospace/blinko" "tarball"
msg_info "Setting up ${APP}"
cd /opt/blinko
cat <<EOF >/opt/blinko/.env
NODE_ENV=production
DATABASE_URL=postgresql://${PG_DB_USER}:${PG_DB_PASS}@127.0.0.1:5432/${PG_DB_NAME}
NEXT_PUBLIC_BASE_URL=http://${LOCAL_IP}:1111
NEXTAUTH_URL=http://${LOCAL_IP}:1111
NEXTAUTH_SECRET=$(openssl rand -base64 32)
EOF
$STD npm install
$STD npx prisma generate
$STD npx prisma migrate deploy
$STD npm run build
msg_ok "Set up ${APP}"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/blinko.service
[Unit]
Description=Blinko Note-Taking App
After=network.target postgresql.service
[Service]
Type=simple
User=root
WorkingDirectory=/opt/blinko
EnvironmentFile=/opt/blinko/.env
ExecStart=/usr/bin/node /opt/blinko/.next/standalone/server.js
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now blinko
msg_ok "Created Service"
motd_ssh
customize
cleanup_lxc

View File

@@ -0,0 +1,40 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
# Source: https://certimate.me/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
fetch_and_deploy_gh_release "certimate" "certimate-go/certimate" "prebuild" "latest" "/opt/certimate" "certimate_*_linux_amd64.zip"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/certimate.service
[Unit]
Description=Certimate SSL Certificate Manager
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/opt/certimate
ExecStart=/opt/certimate/certimate serve
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now certimate
msg_ok "Created Service"
motd_ssh
customize
cleanup_lxc

47
install/dagu-install.sh Normal file
View File

@@ -0,0 +1,47 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
# Source: https://dagu.sh/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
fetch_and_deploy_gh_release "dagu" "dagucloud/dagu" "prebuild" "latest" "/opt/dagu" "dagu_*_linux_amd64.tar.gz"
msg_info "Setting up ${APP}"
mkdir -p /opt/dagu/data
msg_ok "Set up ${APP}"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/dagu.service
[Unit]
Description=Dagu Workflow Engine
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/opt/dagu
Environment=DAGU_HOME=/opt/dagu/data
Environment=DAGU_HOST=0.0.0.0
Environment=DAGU_PORT=8080
ExecStart=/opt/dagu/dagu start-all
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now dagu
msg_ok "Created Service"
motd_ssh
customize
cleanup_lxc

50
install/gogs-install.sh Normal file
View File

@@ -0,0 +1,50 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
# Source: https://gogs.io/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt install -y git
msg_ok "Installed Dependencies"
fetch_and_deploy_gh_release "gogs" "gogs/gogs" "prebuild" "latest" "/opt/gogs" "gogs_*_linux_amd64.tar.gz"
msg_info "Setting up ${APP}"
mkdir -p /opt/gogs/{custom/conf,data,log}
msg_ok "Set up ${APP}"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/gogs.service
[Unit]
Description=Gogs Git Service
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/opt/gogs
ExecStart=/opt/gogs/gogs web
Restart=on-failure
RestartSec=5
Environment=USER=root
Environment=HOME=/root
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now gogs
msg_ok "Created Service"
motd_ssh
customize
cleanup_lxc

View File

@@ -0,0 +1,70 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
# Source: https://invoiceshelf.com/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt install -y caddy
msg_ok "Installed Dependencies"
PHP_VERSION="8.4" PHP_FPM="YES" PHP_MODULES="bcmath,gd,intl,xml,zip,pdo_pgsql,mbstring,curl,exif" setup_php
setup_composer
NODE_VERSION="24" NODE_MODULE="yarn" setup_nodejs
PG_VERSION="16" setup_postgresql
PG_DB_NAME="invoiceshelf" PG_DB_USER="invoiceshelf" setup_postgresql_db
fetch_and_deploy_gh_release "invoiceshelf" "InvoiceShelf/InvoiceShelf" "tarball"
msg_info "Setting up ${APP}"
cd /opt/invoiceshelf
cp .env.example .env
APP_KEY=$($STD php artisan key:generate --show)
sed -i "s|^APP_KEY=.*|APP_KEY=${APP_KEY}|" .env
sed -i "s|^APP_ENV=.*|APP_ENV=production|" .env
sed -i "s|^APP_DEBUG=.*|APP_DEBUG=false|" .env
sed -i "s|^APP_URL=.*|APP_URL=http://${LOCAL_IP}|" .env
sed -i "s|^DB_CONNECTION=.*|DB_CONNECTION=pgsql|" .env
sed -i "s|^DB_HOST=.*|DB_HOST=127.0.0.1|" .env
sed -i "s|^DB_PORT=.*|DB_PORT=5432|" .env
sed -i "s|^DB_DATABASE=.*|DB_DATABASE=${PG_DB_NAME}|" .env
sed -i "s|^DB_USERNAME=.*|DB_USERNAME=${PG_DB_USER}|" .env
sed -i "s|^DB_PASSWORD=.*|DB_PASSWORD=${PG_DB_PASS}|" .env
$STD composer install --no-dev --optimize-autoloader
$STD yarn install
$STD yarn build
mkdir -p storage/framework/{cache,sessions,views} storage/logs bootstrap/cache
chown -R www-data:www-data /opt/invoiceshelf
chmod -R 775 storage bootstrap/cache
$STD php artisan migrate --force
$STD php artisan storage:link
msg_ok "Set up ${APP}"
msg_info "Configuring Caddy"
PHP_VER=$(php -r 'echo PHP_MAJOR_VERSION . "." . PHP_MINOR_VERSION;')
cat <<EOF >/etc/caddy/Caddyfile
:80 {
root * /opt/invoiceshelf/public
php_fastcgi unix//run/php/php${PHP_VER}-fpm.sock
file_server
encode gzip
}
EOF
usermod -aG www-data caddy
msg_ok "Configured Caddy"
systemctl enable -q --now php${PHP_VER}-fpm
systemctl restart caddy
motd_ssh
customize
cleanup_lxc

49
install/matomo-install.sh Normal file
View File

@@ -0,0 +1,49 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
# Source: https://matomo.org/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt install -y caddy
msg_ok "Installed Dependencies"
PHP_VERSION="8.3" PHP_FPM="YES" PHP_MODULES="pdo_mysql,gd,mbstring,xml,curl,intl,zip,ldap" setup_php
MARIADB_DB_NAME="matomo" MARIADB_DB_USER="matomo" setup_mariadb_db
fetch_and_deploy_gh_release "matomo" "matomo-org/matomo" "prebuild" "latest" "/opt/matomo" "matomo-*.zip"
msg_info "Setting up ${APP}"
mkdir -p /opt/matomo/tmp
chown -R www-data:www-data /opt/matomo
chmod -R 755 /opt/matomo/tmp
msg_ok "Set up ${APP}"
msg_info "Configuring Caddy"
PHP_VER=$(php -r 'echo PHP_MAJOR_VERSION . "." . PHP_MINOR_VERSION;')
cat <<EOF >/etc/caddy/Caddyfile
:80 {
root * /opt/matomo
php_fastcgi unix//run/php/php${PHP_VER}-fpm.sock
file_server
encode gzip
}
EOF
usermod -aG www-data caddy
msg_ok "Configured Caddy"
systemctl enable -q --now php${PHP_VER}-fpm
systemctl restart caddy
motd_ssh
customize
cleanup_lxc

View File

@@ -0,0 +1,60 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
# Source: https://www.papermark.com/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
NODE_VERSION="22" setup_nodejs
PG_VERSION="16" setup_postgresql
PG_DB_NAME="papermark" PG_DB_USER="papermark" setup_postgresql_db
fetch_and_deploy_gh_release "papermark" "mfts/papermark" "tarball"
msg_info "Setting up ${APP}"
cd /opt/papermark
cat <<EOF >/opt/papermark/.env
DATABASE_URL=postgresql://${PG_DB_USER}:${PG_DB_PASS}@127.0.0.1:5432/${PG_DB_NAME}
NEXTAUTH_SECRET=$(openssl rand -base64 32)
NEXTAUTH_URL=http://${LOCAL_IP}:3000
NEXT_PUBLIC_BASE_URL=http://${LOCAL_IP}:3000
NODE_ENV=production
EOF
$STD npm install
$STD npx prisma generate
$STD npx prisma migrate deploy
$STD npm run build
msg_ok "Set up ${APP}"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/papermark.service
[Unit]
Description=Papermark Document Sharing
After=network.target postgresql.service
[Service]
Type=simple
User=root
WorkingDirectory=/opt/papermark
EnvironmentFile=/opt/papermark/.env
ExecStart=/usr/bin/npm start
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now papermark
msg_ok "Created Service"
motd_ssh
customize
cleanup_lxc

View File

@@ -0,0 +1,50 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
# Source: https://rss-bridge.org/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt install -y caddy
msg_ok "Installed Dependencies"
PHP_VERSION="8.3" PHP_FPM="YES" PHP_MODULES="mbstring,simplexml,curl,intl,xml" setup_php
setup_composer
fetch_and_deploy_gh_release "rss-bridge" "RSS-Bridge/rss-bridge" "tarball"
msg_info "Setting up ${APP}"
cd /opt/rss-bridge
$STD composer install --no-dev --optimize-autoloader
cp config.default.ini.php config.ini.php
chown -R www-data:www-data /opt/rss-bridge
msg_ok "Set up ${APP}"
msg_info "Configuring Caddy"
PHP_VER=$(php -r 'echo PHP_MAJOR_VERSION . "." . PHP_MINOR_VERSION;')
cat <<EOF >/etc/caddy/Caddyfile
:80 {
root * /opt/rss-bridge
php_fastcgi unix//run/php/php${PHP_VER}-fpm.sock
file_server
encode gzip
}
EOF
usermod -aG www-data caddy
msg_ok "Configured Caddy"
systemctl enable -q --now php${PHP_VER}-fpm
systemctl restart caddy
motd_ssh
customize
cleanup_lxc

View File

@@ -0,0 +1,69 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
# Source: https://www.solidtime.io/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt install -y caddy
msg_ok "Installed Dependencies"
PHP_VERSION="8.3" PHP_FPM="YES" PHP_MODULES="bcmath,gd,intl,xml,zip,pdo_pgsql,redis,mbstring,curl" setup_php
setup_composer
NODE_VERSION="22" setup_nodejs
PG_VERSION="16" setup_postgresql
PG_DB_NAME="solidtime" PG_DB_USER="solidtime" setup_postgresql_db
fetch_and_deploy_gh_release "solidtime" "solidtime-io/solidtime" "tarball"
msg_info "Setting up ${APP}"
cd /opt/solidtime
cp .env.example .env
APP_KEY=$($STD php artisan key:generate --show)
sed -i "s|^APP_KEY=.*|APP_KEY=${APP_KEY}|" .env
sed -i "s|^APP_ENV=.*|APP_ENV=production|" .env
sed -i "s|^APP_DEBUG=.*|APP_DEBUG=false|" .env
sed -i "s|^APP_URL=.*|APP_URL=http://${LOCAL_IP}|" .env
sed -i "s|^DB_CONNECTION=.*|DB_CONNECTION=pgsql|" .env
sed -i "s|^DB_HOST=.*|DB_HOST=127.0.0.1|" .env
sed -i "s|^DB_PORT=.*|DB_PORT=5432|" .env
sed -i "s|^DB_DATABASE=.*|DB_DATABASE=${PG_DB_NAME}|" .env
sed -i "s|^DB_USERNAME=.*|DB_USERNAME=${PG_DB_USER}|" .env
sed -i "s|^DB_PASSWORD=.*|DB_PASSWORD=${PG_DB_PASS}|" .env
$STD composer install --no-dev --optimize-autoloader
$STD npm install
$STD npm run build
mkdir -p storage/framework/{cache,sessions,views} storage/logs bootstrap/cache
chown -R www-data:www-data /opt/solidtime
chmod -R 775 storage bootstrap/cache
$STD php artisan migrate --force
msg_ok "Set up ${APP}"
msg_info "Configuring Caddy"
PHP_VER=$(php -r 'echo PHP_MAJOR_VERSION . "." . PHP_MINOR_VERSION;')
cat <<EOF >/etc/caddy/Caddyfile
:80 {
root * /opt/solidtime/public
php_fastcgi unix//run/php/php${PHP_VER}-fpm.sock
file_server
encode gzip
}
EOF
usermod -aG www-data caddy
msg_ok "Configured Caddy"
systemctl enable -q --now php${PHP_VER}-fpm
systemctl restart caddy
motd_ssh
customize
cleanup_lxc

40
install/whodb-install.sh Normal file
View File

@@ -0,0 +1,40 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
# Source: https://whodb.com/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
fetch_and_deploy_gh_release "whodb" "clidey/whodb" "singlefile" "latest" "/opt/whodb" "whodb-*-linux-amd64"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/whodb.service
[Unit]
Description=WhoDB Database Management
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/opt/whodb
ExecStart=/opt/whodb/whodb
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now whodb
msg_ok "Created Service"
motd_ssh
customize
cleanup_lxc

40
json/akaunting.json Normal file
View File

@@ -0,0 +1,40 @@
{
"name": "Akaunting",
"slug": "akaunting",
"categories": [
23
],
"date_created": "2026-07-13",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 80,
"documentation": "https://akaunting.com/hc/docs",
"website": "https://akaunting.com/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/akaunting.webp",
"config_path": "/opt/akaunting/.env",
"description": "Akaunting is a free, open-source online accounting software designed for small businesses and freelancers, featuring invoicing, expense tracking, and financial reporting.",
"install_methods": [
{
"type": "default",
"script": "ct/akaunting.sh",
"resources": {
"cpu": 2,
"ram": 2048,
"hdd": 8,
"os": "Debian",
"version": "13"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "Complete the setup wizard via the web interface on first access.",
"type": "info"
}
]
}

40
json/blinko.json Normal file
View File

@@ -0,0 +1,40 @@
{
"name": "Blinko",
"slug": "blinko",
"categories": [
12
],
"date_created": "2026-07-13",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 1111,
"documentation": "https://docs.blinko.space/",
"website": "https://blinko.space/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/blinko.webp",
"config_path": "/opt/blinko/.env",
"description": "Blinko is an AI-powered card note-taking tool designed for capturing and organizing fleeting thoughts with natural language search powered by RAG technology.",
"install_methods": [
{
"type": "default",
"script": "ct/blinko.sh",
"resources": {
"cpu": 2,
"ram": 2048,
"hdd": 8,
"os": "Debian",
"version": "13"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "Create your account on first access via the web interface.",
"type": "info"
}
]
}

40
json/certimate.json Normal file
View File

@@ -0,0 +1,40 @@
{
"name": "Certimate",
"slug": "certimate",
"categories": [
6
],
"date_created": "2026-07-13",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 8090,
"documentation": "https://docs.certimate.me/",
"website": "https://certimate.me/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/certimate.webp",
"config_path": "",
"description": "Certimate is an open-source SSL certificate management tool that automates the application, deployment, and renewal of SSL certificates, supporting integration with various cloud providers and deployment targets.",
"install_methods": [
{
"type": "default",
"script": "ct/certimate.sh",
"resources": {
"cpu": 1,
"ram": 256,
"hdd": 2,
"os": "Debian",
"version": "13"
}
}
],
"default_credentials": {
"username": "admin@certimate.fun",
"password": "1234567890"
},
"notes": [
{
"text": "Change the default password after first login!",
"type": "warning"
}
]
}

35
json/dagu.json Normal file
View File

@@ -0,0 +1,35 @@
{
"name": "Dagu",
"slug": "dagu",
"categories": [
19
],
"date_created": "2026-07-13",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 8080,
"documentation": "https://docs.dagu.sh/",
"website": "https://dagu.sh/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/dagu.webp",
"config_path": "",
"description": "Dagu is a powerful, developer-friendly workflow engine that allows you to define DAGs (Directed Acyclic Graphs) in a simple YAML format for scheduling and running complex job dependencies.",
"install_methods": [
{
"type": "default",
"script": "ct/dagu.sh",
"resources": {
"cpu": 1,
"ram": 512,
"hdd": 4,
"os": "Debian",
"version": "13"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": []
}

40
json/gogs.json Normal file
View File

@@ -0,0 +1,40 @@
{
"name": "Gogs",
"slug": "gogs",
"categories": [
20
],
"date_created": "2026-07-13",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 3000,
"documentation": "https://gogs.io/docs",
"website": "https://gogs.io/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/gogs.webp",
"config_path": "/opt/gogs/custom/conf/app.ini",
"description": "Gogs is a painless self-hosted Git service written in Go, designed to be the easiest, fastest, and most lightweight way to set up a self-hosted Git service.",
"install_methods": [
{
"type": "default",
"script": "ct/gogs.sh",
"resources": {
"cpu": 2,
"ram": 1024,
"hdd": 8,
"os": "Debian",
"version": "13"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "Complete the initial setup via the web installer on first access.",
"type": "info"
}
]
}

40
json/invoiceshelf.json Normal file
View File

@@ -0,0 +1,40 @@
{
"name": "InvoiceShelf",
"slug": "invoiceshelf",
"categories": [
23
],
"date_created": "2026-07-13",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 80,
"documentation": "https://docs.invoiceshelf.com/",
"website": "https://invoiceshelf.com/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/invoiceshelf.webp",
"config_path": "/opt/invoiceshelf/.env",
"description": "InvoiceShelf is an open-source web and mobile app that helps you track expenses, payments and create professional invoices and estimates.",
"install_methods": [
{
"type": "default",
"script": "ct/invoiceshelf.sh",
"resources": {
"cpu": 2,
"ram": 1024,
"hdd": 4,
"os": "Debian",
"version": "13"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "Complete the initial setup wizard via the web interface on first access.",
"type": "info"
}
]
}

40
json/matomo.json Normal file
View File

@@ -0,0 +1,40 @@
{
"name": "Matomo",
"slug": "matomo",
"categories": [
9
],
"date_created": "2026-07-13",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 80,
"documentation": "https://matomo.org/docs/",
"website": "https://matomo.org/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/matomo.webp",
"config_path": "/opt/matomo/config/config.ini.php",
"description": "Matomo is the leading free and open-source web analytics platform, providing a privacy-respecting alternative to Google Analytics with full data ownership.",
"install_methods": [
{
"type": "default",
"script": "ct/matomo.sh",
"resources": {
"cpu": 2,
"ram": 2048,
"hdd": 16,
"os": "Debian",
"version": "13"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "Complete the setup wizard via the web interface on first access. Database credentials are stored in /opt/matomo/.mariadb-creds.",
"type": "info"
}
]
}

40
json/papermark.json Normal file
View File

@@ -0,0 +1,40 @@
{
"name": "Papermark",
"slug": "papermark",
"categories": [
12
],
"date_created": "2026-07-13",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 3000,
"documentation": "https://www.papermark.com/docs",
"website": "https://www.papermark.com/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/papermark.webp",
"config_path": "/opt/papermark/.env",
"description": "Papermark is an open-source document sharing alternative to DocSend with built-in analytics, custom domains, and secure shareable links.",
"install_methods": [
{
"type": "default",
"script": "ct/papermark.sh",
"resources": {
"cpu": 2,
"ram": 2048,
"hdd": 8,
"os": "Debian",
"version": "13"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "Requires external blob storage (S3 or compatible) and email service (Resend) configured in .env for full functionality.",
"type": "warning"
}
]
}

35
json/rss-bridge.json Normal file
View File

@@ -0,0 +1,35 @@
{
"name": "RSS-Bridge",
"slug": "rss-bridge",
"categories": [
0
],
"date_created": "2026-07-13",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 80,
"documentation": "https://rss-bridge.github.io/rss-bridge/",
"website": "https://rss-bridge.org/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/rss-bridge.webp",
"config_path": "/opt/rss-bridge/config.ini.php",
"description": "RSS-Bridge is a PHP web application that generates web feeds for websites that don't have one, supporting over 400 bridges for various platforms and services.",
"install_methods": [
{
"type": "default",
"script": "ct/rss-bridge.sh",
"resources": {
"cpu": 1,
"ram": 512,
"hdd": 2,
"os": "Debian",
"version": "13"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": []
}

40
json/solidtime.json Normal file
View File

@@ -0,0 +1,40 @@
{
"name": "SolidTime",
"slug": "solidtime",
"categories": [
25
],
"date_created": "2026-07-13",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 80,
"documentation": "https://docs.solidtime.io/",
"website": "https://www.solidtime.io/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/solidtime.webp",
"config_path": "/opt/solidtime/.env",
"description": "SolidTime is a modern open-source time tracking application for freelancers and agencies, featuring project management, task tracking, billable rates, and multiple organizations.",
"install_methods": [
{
"type": "default",
"script": "ct/solidtime.sh",
"resources": {
"cpu": 2,
"ram": 2048,
"hdd": 8,
"os": "Debian",
"version": "13"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "Create your first account by registering via the web interface.",
"type": "info"
}
]
}

40
json/whodb.json Normal file
View File

@@ -0,0 +1,40 @@
{
"name": "WhoDB",
"slug": "whodb",
"categories": [
8
],
"date_created": "2026-04-13",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 8080,
"documentation": "https://docs.whodb.com/",
"website": "https://whodb.com/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/whodb.webp",
"config_path": "",
"description": "WhoDB is a lightweight next-gen database management tool built with Go and React, supporting PostgreSQL, MySQL, SQLite, MongoDB, Redis, MariaDB, ElasticSearch, and ClickHouse with AI-powered natural language queries.",
"install_methods": [
{
"type": "default",
"script": "ct/whodb.sh",
"resources": {
"cpu": 1,
"ram": 512,
"hdd": 2,
"os": "Debian",
"version": "13"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "WhoDB connects to external databases — enter your database credentials on the login page.",
"type": "info"
}
]
}