mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-06-16 20:41:19 +02:00
Compare commits
13 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 2e8ff7a6c5 | |||
| 4d4e1d7654 | |||
| 6b25e35ecf | |||
| 6c23883d94 | |||
| e08719ac3f | |||
| 0683d4942c | |||
| b0896dbdeb | |||
| f1ee2a2b91 | |||
| 691ce33090 | |||
| 5f5881c757 | |||
| af7e83300f | |||
| 29c25a0ab8 | |||
| e60c1f31c2 |
+1
@@ -28,6 +28,7 @@ jobs:
|
|||||||
const allowedBots = [
|
const allowedBots = [
|
||||||
"push-app-to-main[bot]",
|
"push-app-to-main[bot]",
|
||||||
"push-app-to-main",
|
"push-app-to-main",
|
||||||
|
"community-scripts-pr-app"
|
||||||
];
|
];
|
||||||
|
|
||||||
if (allowedBots.includes(author)) {
|
if (allowedBots.includes(author)) {
|
||||||
|
|||||||
+1
-1
@@ -279,7 +279,7 @@ color
|
|||||||
|
|
||||||
msg_error "This script is no longer available in community-scripts."
|
msg_error "This script is no longer available in community-scripts."
|
||||||
msg_error "${deletedMessage.replace(/"/g, '\\"')}"
|
msg_error "${deletedMessage.replace(/"/g, '\\"')}"
|
||||||
msg_info "More info: https://community-scripts.org/scripts/${slug}"
|
msg_warn "More info: https://community-scripts.org/scripts/${slug}"
|
||||||
exit 1
|
exit 1
|
||||||
`;
|
`;
|
||||||
fs.writeFileSync(stubPath, content);
|
fs.writeFileSync(stubPath, content);
|
||||||
|
|||||||
+11
-1
@@ -487,7 +487,17 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
|||||||
|
|
||||||
### 🆕 New Scripts
|
### 🆕 New Scripts
|
||||||
|
|
||||||
- Add runtime status guard and deleted script stubs [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#15125](https://github.com/community-scripts/ProxmoxVE/pull/15125))
|
- Feishin ([#15130](https://github.com/community-scripts/ProxmoxVE/pull/15130))
|
||||||
|
- Kiwix ([#15131](https://github.com/community-scripts/ProxmoxVE/pull/15131))
|
||||||
|
- Add runtime status guard and deleted script stubs [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#15125](https://github.com/community-scripts/ProxmoxVE/pull/15125))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- fix storyteller install failure with yarn 4 corepack [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#15140](https://github.com/community-scripts/ProxmoxVE/pull/15140))
|
||||||
|
- Fix InvoiceShelf install/update Yarn package manager mismatch [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#15141](https://github.com/community-scripts/ProxmoxVE/pull/15141))
|
||||||
|
- fix: generate policy-compliant OpenObserve root password [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#15137](https://github.com/community-scripts/ProxmoxVE/pull/15137))
|
||||||
|
|
||||||
## 2026-06-15
|
## 2026-06-15
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -11,5 +11,5 @@ color
|
|||||||
|
|
||||||
msg_error "This script is no longer available in community-scripts."
|
msg_error "This script is no longer available in community-scripts."
|
||||||
msg_error "The Booklore or the Grimmory Fork will for now not return to community-scripts. Due to the unstable nature of these projects we decided to remove them and will decide at later point if they come back, which will most likley not happen. Plese do not create Issues for this."
|
msg_error "The Booklore or the Grimmory Fork will for now not return to community-scripts. Due to the unstable nature of these projects we decided to remove them and will decide at later point if they come back, which will most likley not happen. Plese do not create Issues for this."
|
||||||
msg_info "More info: https://community-scripts.org/scripts/booklore"
|
msg_warn "More info: https://community-scripts.org/scripts/booklore"
|
||||||
exit 1
|
exit 1
|
||||||
|
|||||||
@@ -0,0 +1,77 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
|
# Author: MickLesk (CanbiZ)
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://github.com/jeffvli/feishin
|
||||||
|
|
||||||
|
APP="Feishin"
|
||||||
|
var_tags="${var_tags:-music;player;streaming}"
|
||||||
|
var_cpu="${var_cpu:-2}"
|
||||||
|
var_ram="${var_ram:-4096}"
|
||||||
|
var_disk="${var_disk:-8}"
|
||||||
|
var_os="${var_os:-debian}"
|
||||||
|
var_version="${var_version:-13}"
|
||||||
|
var_arm64="${var_arm64:-no}"
|
||||||
|
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/feishin ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
if check_for_gh_release "feishin" "jeffvli/feishin"; then
|
||||||
|
create_backup /opt/feishin/.env
|
||||||
|
|
||||||
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "feishin" "jeffvli/feishin" "tarball"
|
||||||
|
|
||||||
|
msg_info "Rebuilding Feishin Web"
|
||||||
|
cd /opt/feishin
|
||||||
|
#PNPM_VERSION=$(jq -r '.packageManager | ltrimstr("pnpm@")' /opt/feishin/package.json)
|
||||||
|
$STD corepack enable
|
||||||
|
$STD corepack prepare "pnpm@10" --activate
|
||||||
|
$STD pnpm install
|
||||||
|
$STD pnpm run build:web
|
||||||
|
msg_ok "Rebuilt Feishin Web"
|
||||||
|
|
||||||
|
restore_backup
|
||||||
|
|
||||||
|
msg_info "Publishing Web Assets"
|
||||||
|
rm -rf /usr/share/nginx/html
|
||||||
|
mkdir -p /usr/share/nginx/html
|
||||||
|
cp -r /opt/feishin/out/web/. /usr/share/nginx/html/
|
||||||
|
|
||||||
|
set -a
|
||||||
|
source /opt/feishin/.env
|
||||||
|
set +a
|
||||||
|
|
||||||
|
envsubst </opt/feishin/settings.js.template >/etc/nginx/conf.d/settings.js
|
||||||
|
envsubst '${PUBLIC_PATH}' </opt/feishin/ng.conf.template >/etc/nginx/sites-available/feishin
|
||||||
|
ln -sf /etc/nginx/sites-available/feishin /etc/nginx/sites-enabled/feishin
|
||||||
|
rm -f /etc/nginx/sites-enabled/default
|
||||||
|
systemctl restart nginx
|
||||||
|
msg_ok "Published Web Assets"
|
||||||
|
|
||||||
|
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}:9180${CL}"
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
____ __ __
|
||||||
|
/ __ )____ ____ / /__/ / ____ ________
|
||||||
|
/ __ / __ \/ __ \/ //_/ / / __ \/ ___/ _ \
|
||||||
|
/ /_/ / /_/ / /_/ / ,< / /___/ /_/ / / / __/
|
||||||
|
/_____/\____/\____/_/|_/_____/\____/_/ \___/
|
||||||
|
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
______ _ __ _
|
||||||
|
/ ____/__ (_)____/ /_ (_)___
|
||||||
|
/ /_ / _ \/ / ___/ __ \/ / __ \
|
||||||
|
/ __/ / __/ (__ ) / / / / / / /
|
||||||
|
/_/ \___/_/____/_/ /_/_/_/ /_/
|
||||||
|
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
__ __ _ _
|
||||||
|
/ //_/(_) __(_) __
|
||||||
|
/ ,< / / | /| / / / |/_/
|
||||||
|
/ /| |/ /| |/ |/ / /> <
|
||||||
|
/_/ |_/_/ |__/|__/_/_/|_|
|
||||||
|
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
__ _ __ __ __ __ ___
|
||||||
|
/ / (_) /____ / / / / / |/ /
|
||||||
|
/ / / / __/ _ \/ / / / / /|_/ /
|
||||||
|
/ /___/ / /_/ __/ /___/ /___/ / / /
|
||||||
|
/_____/_/\__/\___/_____/_____/_/ /_/
|
||||||
|
|
||||||
+8
-2
@@ -52,8 +52,14 @@ function update_script() {
|
|||||||
msg_info "Updating Application"
|
msg_info "Updating Application"
|
||||||
cd /opt/invoiceshelf
|
cd /opt/invoiceshelf
|
||||||
$STD composer install --no-dev --optimize-autoloader
|
$STD composer install --no-dev --optimize-autoloader
|
||||||
$STD yarn install
|
if command -v corepack >/dev/null 2>&1; then
|
||||||
$STD yarn build
|
$STD corepack enable
|
||||||
|
$STD corepack yarn install
|
||||||
|
$STD corepack yarn build
|
||||||
|
else
|
||||||
|
$STD yarn install
|
||||||
|
$STD yarn build
|
||||||
|
fi
|
||||||
$STD php artisan migrate --force
|
$STD php artisan migrate --force
|
||||||
$STD php artisan optimize:clear
|
$STD php artisan optimize:clear
|
||||||
chown -R www-data:www-data /opt/invoiceshelf
|
chown -R www-data:www-data /opt/invoiceshelf
|
||||||
|
|||||||
+75
@@ -0,0 +1,75 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
|
# Author: MickLesk
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://github.com/kiwix/kiwix-tools
|
||||||
|
|
||||||
|
APP="Kiwix"
|
||||||
|
var_tags="${var_tags:-documentation;offline}"
|
||||||
|
var_cpu="${var_cpu:-1}"
|
||||||
|
var_ram="${var_ram:-512}"
|
||||||
|
var_disk="${var_disk:-4}"
|
||||||
|
var_os="${var_os:-ubuntu}"
|
||||||
|
var_version="${var_version:-24.04}"
|
||||||
|
var_arm64="${var_arm64:-no}"
|
||||||
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
|
header_info "$APP"
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_storage
|
||||||
|
check_container_resources
|
||||||
|
|
||||||
|
if ! dpkg -s kiwix-tools &>/dev/null; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
CURRENT=$(dpkg-query -W -f='${Version}' kiwix-tools 2>/dev/null)
|
||||||
|
|
||||||
|
msg_info "Updating Package Index"
|
||||||
|
$STD apt update
|
||||||
|
msg_ok "Updated Package Index"
|
||||||
|
|
||||||
|
CANDIDATE=$(apt-cache policy kiwix-tools | awk '/Candidate:/{print $2}')
|
||||||
|
if [[ -z "$CANDIDATE" || "$CANDIDATE" == "(none)" ]]; then
|
||||||
|
msg_error "No Candidate Version Found for kiwix-tools"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$CURRENT" == "$CANDIDATE" ]]; then
|
||||||
|
echo "${CURRENT}" >/root/.kiwix
|
||||||
|
msg_ok "Already on latest version: ${CURRENT}"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
msg_info "Stopping Service"
|
||||||
|
systemctl stop kiwix-serve
|
||||||
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
|
msg_info "Updating Kiwix-Tools"
|
||||||
|
$STD apt install -y --only-upgrade kiwix-tools
|
||||||
|
RELEASE=$(dpkg-query -W -f='${Version}' kiwix-tools 2>/dev/null)
|
||||||
|
echo "${RELEASE}" >/root/.kiwix
|
||||||
|
msg_ok "Updated Kiwix-Tools"
|
||||||
|
msg_ok "Updated successfully from ${CURRENT} to ${RELEASE}!"
|
||||||
|
|
||||||
|
msg_info "Starting Service"
|
||||||
|
systemctl start kiwix-serve
|
||||||
|
msg_ok "Started Service"
|
||||||
|
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}"
|
||||||
+1
-1
@@ -11,5 +11,5 @@ color
|
|||||||
|
|
||||||
msg_error "This script is no longer available in community-scripts."
|
msg_error "This script is no longer available in community-scripts."
|
||||||
msg_error "This script was removed and cannot be installed or updated."
|
msg_error "This script was removed and cannot be installed or updated."
|
||||||
msg_info "More info: https://community-scripts.org/scripts/litellm"
|
msg_warn "More info: https://community-scripts.org/scripts/litellm"
|
||||||
exit 1
|
exit 1
|
||||||
|
|||||||
+1
-1
@@ -11,5 +11,5 @@ color
|
|||||||
|
|
||||||
msg_error "This script is no longer available in community-scripts."
|
msg_error "This script is no longer available in community-scripts."
|
||||||
msg_error "Repository is archived. Minio is gone"
|
msg_error "Repository is archived. Minio is gone"
|
||||||
msg_info "More info: https://community-scripts.org/scripts/minio"
|
msg_warn "More info: https://community-scripts.org/scripts/minio"
|
||||||
exit 1
|
exit 1
|
||||||
|
|||||||
+3
-2
@@ -48,13 +48,14 @@ function update_script() {
|
|||||||
msg_info "Rebuilding Storyteller"
|
msg_info "Rebuilding Storyteller"
|
||||||
cd /opt/storyteller
|
cd /opt/storyteller
|
||||||
export NODE_OPTIONS="--max-old-space-size=4096"
|
export NODE_OPTIONS="--max-old-space-size=4096"
|
||||||
$STD yarn install --network-timeout 600000
|
$STD corepack enable
|
||||||
|
$STD corepack yarn install --network-timeout 600000
|
||||||
$STD gcc -g -fPIC -rdynamic -shared web/sqlite/uuid.c -o web/sqlite/uuid.c.so
|
$STD gcc -g -fPIC -rdynamic -shared web/sqlite/uuid.c -o web/sqlite/uuid.c.so
|
||||||
export CI=1
|
export CI=1
|
||||||
export NODE_ENV=production
|
export NODE_ENV=production
|
||||||
export NEXT_TELEMETRY_DISABLED=1
|
export NEXT_TELEMETRY_DISABLED=1
|
||||||
export SQLITE_NATIVE_BINDING=/opt/storyteller/node_modules/better-sqlite3/build/Release/better_sqlite3.node
|
export SQLITE_NATIVE_BINDING=/opt/storyteller/node_modules/better-sqlite3/build/Release/better_sqlite3.node
|
||||||
$STD yarn workspaces foreach -Rpt --from @storyteller-platform/web --exclude @storyteller-platform/eslint run build
|
$STD corepack yarn workspaces foreach -Rpt --from @storyteller-platform/web --exclude @storyteller-platform/eslint run build
|
||||||
mkdir -p /opt/storyteller/web/.next/standalone/web/.next/static
|
mkdir -p /opt/storyteller/web/.next/standalone/web/.next/static
|
||||||
cp -rT /opt/storyteller/web/.next/static /opt/storyteller/web/.next/standalone/web/.next/static
|
cp -rT /opt/storyteller/web/.next/static /opt/storyteller/web/.next/standalone/web/.next/static
|
||||||
if [[ -d /opt/storyteller/web/public ]]; then
|
if [[ -d /opt/storyteller/web/public ]]; then
|
||||||
|
|||||||
@@ -0,0 +1,68 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
|
# Author: MickLesk (CanbiZ)
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://github.com/jeffvli/feishin
|
||||||
|
|
||||||
|
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 \
|
||||||
|
nginx \
|
||||||
|
gettext-base
|
||||||
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
|
NODE_VERSION="24" setup_nodejs
|
||||||
|
|
||||||
|
fetch_and_deploy_gh_release "feishin" "jeffvli/feishin" "tarball"
|
||||||
|
|
||||||
|
msg_info "Building Feishin Web"
|
||||||
|
cd /opt/feishin
|
||||||
|
#PNPM_VERSION=$(jq -r '.packageManager | ltrimstr("pnpm@")' /opt/feishin/package.json)
|
||||||
|
$STD corepack enable
|
||||||
|
$STD corepack prepare "pnpm@10" --activate
|
||||||
|
$STD pnpm install
|
||||||
|
$STD pnpm run build:web
|
||||||
|
msg_ok "Built Feishin Web"
|
||||||
|
|
||||||
|
msg_info "Configuring Environment"
|
||||||
|
cat <<EOF >/opt/feishin/.env
|
||||||
|
SERVER_NAME=jellyfin
|
||||||
|
SERVER_LOCK=false
|
||||||
|
SERVER_TYPE=jellyfin
|
||||||
|
SERVER_URL=http://localhost:8096
|
||||||
|
REMOTE_URL=
|
||||||
|
LEGACY_AUTHENTICATION=false
|
||||||
|
ANALYTICS_DISABLED=false
|
||||||
|
PUBLIC_PATH=/
|
||||||
|
EOF
|
||||||
|
msg_ok "Configured Environment"
|
||||||
|
|
||||||
|
msg_info "Publishing Web Assets"
|
||||||
|
rm -rf /usr/share/nginx/html
|
||||||
|
mkdir -p /usr/share/nginx/html
|
||||||
|
cp -r /opt/feishin/out/web/. /usr/share/nginx/html/
|
||||||
|
|
||||||
|
set -a
|
||||||
|
source /opt/feishin/.env
|
||||||
|
set +a
|
||||||
|
|
||||||
|
envsubst </opt/feishin/settings.js.template >/etc/nginx/conf.d/settings.js
|
||||||
|
envsubst '${PUBLIC_PATH}' </opt/feishin/ng.conf.template >/etc/nginx/sites-available/feishin
|
||||||
|
|
||||||
|
ln -sf /etc/nginx/sites-available/feishin /etc/nginx/sites-enabled/feishin
|
||||||
|
rm -f /etc/nginx/sites-enabled/default
|
||||||
|
systemctl enable -q --now nginx
|
||||||
|
systemctl reload nginx
|
||||||
|
msg_ok "Published Web Assets"
|
||||||
|
|
||||||
|
motd_ssh
|
||||||
|
customize
|
||||||
|
cleanup_lxc
|
||||||
@@ -39,8 +39,14 @@ sed -i "s|^DB_USERNAME=.*|DB_USERNAME=${PG_DB_USER}|" .env
|
|||||||
sed -i "s|^DB_PASSWORD=.*|DB_PASSWORD=${PG_DB_PASS}|" .env
|
sed -i "s|^DB_PASSWORD=.*|DB_PASSWORD=${PG_DB_PASS}|" .env
|
||||||
COMPOSER_ALLOW_SUPERUSER=1 $STD composer install --no-dev --optimize-autoloader --no-interaction
|
COMPOSER_ALLOW_SUPERUSER=1 $STD composer install --no-dev --optimize-autoloader --no-interaction
|
||||||
$STD php artisan key:generate
|
$STD php artisan key:generate
|
||||||
$STD yarn install
|
if command -v corepack >/dev/null 2>&1; then
|
||||||
$STD yarn build
|
$STD corepack enable
|
||||||
|
$STD corepack yarn install
|
||||||
|
$STD corepack yarn build
|
||||||
|
else
|
||||||
|
$STD yarn install
|
||||||
|
$STD yarn build
|
||||||
|
fi
|
||||||
mkdir -p storage/framework/{cache,sessions,views} storage/logs bootstrap/cache
|
mkdir -p storage/framework/{cache,sessions,views} storage/logs bootstrap/cache
|
||||||
chown -R www-data:www-data /opt/invoiceshelf
|
chown -R www-data:www-data /opt/invoiceshelf
|
||||||
chmod -R 775 storage bootstrap/cache
|
chmod -R 775 storage bootstrap/cache
|
||||||
|
|||||||
@@ -0,0 +1,80 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
|
# Author: MickLesk (CanbiZ) | tewalds
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://github.com/kiwix/kiwix-tools
|
||||||
|
|
||||||
|
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 software-properties-common
|
||||||
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
|
msg_info "Adding Kiwix PPA"
|
||||||
|
add-apt-repository -y ppa:kiwixteam/release >>"$(get_active_logfile)" 2>&1
|
||||||
|
$STD apt update
|
||||||
|
msg_ok "Added Kiwix PPA"
|
||||||
|
|
||||||
|
msg_info "Installing Kiwix-Tools"
|
||||||
|
$STD apt install -y kiwix-tools
|
||||||
|
RELEASE=$(dpkg -s kiwix-tools 2>/dev/null | awk '/^Version:/{print $2}')
|
||||||
|
mkdir -p /data
|
||||||
|
echo "${RELEASE}" >/root/.kiwix
|
||||||
|
msg_ok "Installed Kiwix-Tools"
|
||||||
|
|
||||||
|
msg_info "Downloading Kiwix Test Archive"
|
||||||
|
ZIM_BASE_URL="https://download.kiwix.org/zim/wikipedia"
|
||||||
|
ZIM_FILE="$(CURL_TIMEOUT=60 CURL_CONNECT_TO=15 curl_with_retry "${ZIM_BASE_URL}/" "-" |
|
||||||
|
grep -oE 'href="speedtest_en_blob_[0-9]{4}-[0-9]{2}\.zim"' |
|
||||||
|
sed -E 's/^href="|"$//g' |
|
||||||
|
sort -V |
|
||||||
|
tail -n 1)" || true
|
||||||
|
|
||||||
|
if [[ -z "${ZIM_FILE}" ]]; then
|
||||||
|
msg_warn "No Kiwix speedtest ZIM archive found - skipping optional download"
|
||||||
|
else
|
||||||
|
ZIM_URL="${ZIM_BASE_URL}/${ZIM_FILE}"
|
||||||
|
ZIM_TEMP="/data/.${ZIM_FILE}.tmp"
|
||||||
|
ZIM_TARGET="/data/${ZIM_FILE}"
|
||||||
|
if ! CURL_TIMEOUT=120 CURL_CONNECT_TO=15 curl_with_retry "${ZIM_URL}" "${ZIM_TEMP}"; then
|
||||||
|
rm -f "${ZIM_TEMP}"
|
||||||
|
msg_warn "Failed to download Kiwix ZIM archive - skipping optional download"
|
||||||
|
ZIM_FILE=""
|
||||||
|
elif [[ ! -s "${ZIM_TEMP}" ]]; then
|
||||||
|
rm -f "${ZIM_TEMP}"
|
||||||
|
msg_warn "Downloaded Kiwix ZIM archive is empty - skipping optional download"
|
||||||
|
ZIM_FILE=""
|
||||||
|
else
|
||||||
|
mv "${ZIM_TEMP}" "${ZIM_TARGET}"
|
||||||
|
msg_ok "Downloaded Kiwix Test Archive (${ZIM_FILE})"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
msg_info "Creating Service"
|
||||||
|
cat <<'EOF' >/etc/systemd/system/kiwix-serve.service
|
||||||
|
[Unit]
|
||||||
|
Description=Kiwix ZIM Server
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
ExecStart=/bin/sh -c 'exec /usr/bin/kiwix-serve --port 8080 /data/*.zim'
|
||||||
|
Restart=on-failure
|
||||||
|
RestartSec=5
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
EOF
|
||||||
|
systemctl enable -q --now kiwix-serve
|
||||||
|
msg_ok "Created Service"
|
||||||
|
|
||||||
|
motd_ssh
|
||||||
|
customize
|
||||||
|
cleanup_lxc
|
||||||
@@ -17,7 +17,7 @@ msg_info "Installing OpenObserve"
|
|||||||
mkdir -p /opt/openobserve/data
|
mkdir -p /opt/openobserve/data
|
||||||
RELEASE=$(get_latest_github_release "openobserve/openobserve")
|
RELEASE=$(get_latest_github_release "openobserve/openobserve")
|
||||||
tar zxf <(curl -fsSL https://downloads.openobserve.ai/releases/openobserve/v$RELEASE/openobserve-v$RELEASE-linux-amd64.tar.gz) -C /opt/openobserve
|
tar zxf <(curl -fsSL https://downloads.openobserve.ai/releases/openobserve/v$RELEASE/openobserve-v$RELEASE-linux-amd64.tar.gz) -C /opt/openobserve
|
||||||
ROOT_PASS=$(openssl rand -base64 18 | cut -c1-13)
|
ROOT_PASS="$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c9)Aa1!"
|
||||||
|
|
||||||
cat <<EOF >/opt/openobserve/data/.env
|
cat <<EOF >/opt/openobserve/data/.env
|
||||||
ZO_ROOT_USER_EMAIL = "admin@example.com"
|
ZO_ROOT_USER_EMAIL = "admin@example.com"
|
||||||
|
|||||||
@@ -32,7 +32,8 @@ fetch_and_deploy_gl_release "storyteller" "storyteller-platform/storyteller" "ta
|
|||||||
|
|
||||||
msg_info "Setting up Storyteller"
|
msg_info "Setting up Storyteller"
|
||||||
cd /opt/storyteller
|
cd /opt/storyteller
|
||||||
$STD yarn install --network-timeout 600000
|
$STD corepack enable
|
||||||
|
$STD corepack yarn install --network-timeout 600000
|
||||||
$STD gcc -g -fPIC -rdynamic -shared web/sqlite/uuid.c -o web/sqlite/uuid.c.so
|
$STD gcc -g -fPIC -rdynamic -shared web/sqlite/uuid.c -o web/sqlite/uuid.c.so
|
||||||
STORYTELLER_SECRET_KEY=$(openssl rand -base64 32)
|
STORYTELLER_SECRET_KEY=$(openssl rand -base64 32)
|
||||||
cat <<EOF >/opt/storyteller/.env
|
cat <<EOF >/opt/storyteller/.env
|
||||||
@@ -58,7 +59,7 @@ export CI=1
|
|||||||
export NODE_ENV=production
|
export NODE_ENV=production
|
||||||
export NEXT_TELEMETRY_DISABLED=1
|
export NEXT_TELEMETRY_DISABLED=1
|
||||||
export SQLITE_NATIVE_BINDING=/opt/storyteller/node_modules/better-sqlite3/build/Release/better_sqlite3.node
|
export SQLITE_NATIVE_BINDING=/opt/storyteller/node_modules/better-sqlite3/build/Release/better_sqlite3.node
|
||||||
$STD yarn workspaces foreach -Rpt --from @storyteller-platform/web --exclude @storyteller-platform/eslint run build
|
$STD corepack yarn workspaces foreach -Rpt --from @storyteller-platform/web --exclude @storyteller-platform/eslint run build
|
||||||
mkdir -p /opt/storyteller/web/.next/standalone/web/.next/static
|
mkdir -p /opt/storyteller/web/.next/standalone/web/.next/static
|
||||||
cp -rT /opt/storyteller/web/.next/static /opt/storyteller/web/.next/standalone/web/.next/static
|
cp -rT /opt/storyteller/web/.next/static /opt/storyteller/web/.next/standalone/web/.next/static
|
||||||
if [[ -d /opt/storyteller/web/public ]]; then
|
if [[ -d /opt/storyteller/web/public ]]; then
|
||||||
|
|||||||
+2
-2
@@ -3677,7 +3677,7 @@ runtime_script_status_guard() {
|
|||||||
msg_error "This script is no longer available in community-scripts."
|
msg_error "This script is no longer available in community-scripts."
|
||||||
[[ -n "$deleted_message" ]] && msg_error "$deleted_message"
|
[[ -n "$deleted_message" ]] && msg_error "$deleted_message"
|
||||||
[[ -z "$deleted_message" ]] && msg_error "This script was removed and cannot be installed or updated."
|
[[ -z "$deleted_message" ]] && msg_error "This script was removed and cannot be installed or updated."
|
||||||
msg_info "More info: ${info_url}"
|
msg_warn "More info: ${info_url}"
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -3685,7 +3685,7 @@ runtime_script_status_guard() {
|
|||||||
msg_error "This script is currently disabled in community-scripts."
|
msg_error "This script is currently disabled in community-scripts."
|
||||||
[[ -n "$disable_message" ]] && msg_error "$disable_message"
|
[[ -n "$disable_message" ]] && msg_error "$disable_message"
|
||||||
[[ -z "$disable_message" ]] && msg_error "Updates and installs are temporarily disabled for this script."
|
[[ -z "$disable_message" ]] && msg_error "Updates and installs are temporarily disabled for this script."
|
||||||
msg_info "More info: ${info_url}"
|
msg_warn "More info: ${info_url}"
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user