Compare commits

..

21 Commits

Author SHA1 Message Date
MickLesk
384bb5e297 scanopy: restore generate-fixtures build, ui/src/lib/data is gitignored and incomplete 2026-08-26 16:33:42 +02:00
MickLesk
2393987758 scanopy: drop unneeded rust build, use committed UI fixtures 2026-08-26 16:07:51 +02:00
MickLesk
e9faa7e37c scanopy: use prebuilt server binary, relax release profile for generate-fixtures 2026-08-26 15:58:54 +02:00
community-scripts-pr-app[bot]
408e74da4a Update CHANGELOG.md (#16792)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-08-26 12:09:46 +00:00
community-scripts-pr-app[bot]
d2883d54ee Update CHANGELOG.md (#16791)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-08-26 12:09:36 +00:00
push-app-to-main[bot]
ef6a3f0076 CentOS (#16772)
* Add centos (ct)

* Update ct/centos.sh

* Clean up comments in centos.sh

Removed comments about the engine source and local core checkout.

* Uncomment var_arm64 assignment in centos.sh

---------

Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
Co-authored-by: Sam Heinz <sam@samheinz.com>
Co-authored-by: CanbiZ (MickLesk) <47820557+MickLesk@users.noreply.github.com>
2026-08-26 22:09:19 +10:00
push-app-to-main[bot]
e9b1fb2a9d AlmaLinux (#16771)
* Add almalinux (ct)

* Update ct/almalinux.sh

* Enable var_arm64 variable in almalinux.sh

Uncomment var_arm64 variable assignment and update comments.

---------

Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
Co-authored-by: Sam Heinz <sam@samheinz.com>
Co-authored-by: CanbiZ (MickLesk) <47820557+MickLesk@users.noreply.github.com>
2026-08-26 22:09:11 +10:00
community-scripts-pr-app[bot]
984aaf8daa Update CHANGELOG.md (#16790)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-08-26 12:08:14 +00:00
push-app-to-main[bot]
626d0ba7f2 Fedora (#16770)
* Add fedora (ct)

* Update ct/fedora.sh

* Uncomment var_arm64 variable in fedora.sh

---------

Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
Co-authored-by: Sam Heinz <sam@samheinz.com>
Co-authored-by: CanbiZ (MickLesk) <47820557+MickLesk@users.noreply.github.com>
2026-08-26 22:07:45 +10:00
community-scripts-pr-app[bot]
e48392533c Update CHANGELOG.md (#16788)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-08-26 11:43:26 +00:00
community-scripts-pr-app[bot]
7f3af58220 Update CHANGELOG.md (#16787)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-08-26 11:43:14 +00:00
community-scripts-pr-app[bot]
ddb29278e1 Update CHANGELOG.md (#16786)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-08-26 11:42:59 +00:00
push-app-to-main[bot]
c463892c3e Devuan (#16773)
* Add devuan (ct)

* Update ct/devuan.sh

---------

Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
Co-authored-by: Sam Heinz <sam@samheinz.com>
2026-08-26 13:42:52 +02:00
community-scripts-pr-app[bot]
845c1bac2d Update CHANGELOG.md (#16785)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-08-26 11:42:49 +00:00
push-app-to-main[bot]
d34c75d216 OpenEuler (#16774)
* Add openeuler (ct)

* Update ct/openeuler.sh

Co-authored-by: Sam Heinz <sam@samheinz.com>

* Update ct/openeuler.sh

* Update ct/openeuler.sh

* Update ct/openeuler.sh

---------

Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
Co-authored-by: CanbiZ (MickLesk) <47820557+MickLesk@users.noreply.github.com>
Co-authored-by: Sam Heinz <sam@samheinz.com>
2026-08-26 13:42:32 +02:00
community-scripts-pr-app[bot]
0c09b7baa2 Update CHANGELOG.md (#16784)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-08-26 11:42:23 +00:00
push-app-to-main[bot]
0214a75099 Gentoo (#16775)
* Add gentoo (ct)

* Update ct/gentoo.sh

---------

Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
Co-authored-by: Sam Heinz <sam@samheinz.com>
2026-08-26 13:42:13 +02:00
push-app-to-main[bot]
46921706c7 Add opensuse (ct) (#16776)
Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
2026-08-26 13:41:49 +02:00
community-scripts-pr-app[bot]
39ec4e5472 Update CHANGELOG.md (#16782)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-08-26 11:18:37 +00:00
CanbiZ (MickLesk)
87b9d51761 github: teach the PocketBase bot every field (#16781)
* Teach the PocketBase bot every field

The bot covered most of script_scripts but not categories, has_arm,
execute_in or app_vars, so those had to be edited by hand in the admin UI.

categories is a relation, so names are resolved against script_categories
and ids are accepted too - a copy out of the PocketBase UI works either way.
app_vars is a JSON column and rides the code-block 'set' path with its
content parsed rather than stored verbatim, so readers get an object.

cpu/ram/hdd/os/version live inside install_methods, and '/pocketbase immich
hdd=25' is how people ask for them. They now route to the default (non-Alpine)
method instead of being rejected as unknown fields, the reply names which
method was touched, and the value syncs into ct/<slug>.sh like the 'method'
path already does.

* Add screenshots and type to the bot

Two gaps were left. type is a relation to z_ref_script_types, so it needs the
same name-to-id resolution as categories - people write "ct", not a
fifteen-character id. Screenshots had no command at all.

The screenshot subcommand hands the URLs to the frontend's /api/screenshots
rather than fetching images inside a workflow. That endpoint already checks
the content type and size and attaches the file to PocketBase; doing it a
second time here would be a second set of bugs. It needs
SCREENSHOT_IMPORT_SECRET, and says so plainly when it is missing instead of
failing halfway.

slug stays deliberately out of reach. It is the URL, the JSON filename and the
ct/<slug>.sh path at once, so renaming it is a migration rather than an edit,
and the help text now says that instead of leaving people to wonder.
2026-08-26 13:18:14 +02:00
push-app-to-main[bot]
803259a1b6 Add directus (ct) (#16779)
Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
2026-08-26 13:18:02 +02:00
27 changed files with 671 additions and 9 deletions

View File

@@ -531,7 +531,19 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
### 🆕 New Scripts
- HAProxy ([#16760](https://github.com/community-scripts/ProxmoxVE/pull/16760))
- CentOS ([#16772](https://github.com/community-scripts/ProxmoxVE/pull/16772))
- AlmaLinux ([#16771](https://github.com/community-scripts/ProxmoxVE/pull/16771))
- Fedora ([#16770](https://github.com/community-scripts/ProxmoxVE/pull/16770))
- Devuan ([#16773](https://github.com/community-scripts/ProxmoxVE/pull/16773))
- OpenEuler ([#16774](https://github.com/community-scripts/ProxmoxVE/pull/16774))
- Gentoo ([#16775](https://github.com/community-scripts/ProxmoxVE/pull/16775))
- openSUSE ([#16776](https://github.com/community-scripts/ProxmoxVE/pull/16776))
- Directus ([#16779](https://github.com/community-scripts/ProxmoxVE/pull/16779))
- HAProxy ([#16760](https://github.com/community-scripts/ProxmoxVE/pull/16760))
### 📂 Github
- github: teach the PocketBase bot every field [@MickLesk](https://github.com/MickLesk) ([#16781](https://github.com/community-scripts/ProxmoxVE/pull/16781))
## 2026-08-25

44
ct/almalinux.sh Normal file
View File

@@ -0,0 +1,44 @@
#!/usr/bin/env bash
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/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://almalinux.org/
APP="AlmaLinux"
var_tags="${var_tags:-os}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}"
var_disk="${var_disk:-4}"
var_os="${var_os:-almalinux}"
var_version="${var_version:-10}"
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 /var ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating AlmaLinux"
$STD dnf -y upgrade
msg_ok "Updated AlmaLinux"
exit
}
start
build_container
description
msg_ok "Completed successfully!"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"

44
ct/centos.sh Normal file
View File

@@ -0,0 +1,44 @@
#!/usr/bin/env bash
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/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://www.centos.org/centos-stream/
APP="CentOS"
var_tags="${var_tags:-os}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}"
var_disk="${var_disk:-4}"
var_os="${var_os:-centos}"
var_version="${var_version:-10}"
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 /var ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating CentOS LXC"
$STD dnf -y upgrade
msg_ok "Updated CentOS LXC"
exit
}
start
build_container
description
msg_ok "Completed successfully!"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"

46
ct/devuan.sh Normal file
View File

@@ -0,0 +1,46 @@
#!/usr/bin/env bash
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/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://www.devuan.org/
APP="Devuan"
var_tags="${var_tags:-os}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}"
var_disk="${var_disk:-4}"
var_os="${var_os:-devuan}"
var_version="${var_version:-5.0}"
#var_arm64="${var_arm64:-no}" # unset = ask the user; set yes/no only when verified
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 /var ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating Devuan LXC"
$STD apt update
$STD apt -y upgrade
msg_ok "Updated Devuan LXC"
exit
}
start
build_container
description
msg_ok "Completed successfully!"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"

68
ct/directus.sh Normal file
View File

@@ -0,0 +1,68 @@
#!/usr/bin/env bash
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/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://directus.com/
APP="Directus"
var_tags="${var_tags:-cms;api;database;headless}"
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_arm64="${var_arm64:-yes}"
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/directus/node_modules/.bin/directus ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "directus" "directus/directus"; then
msg_info "Stopping Service"
systemctl stop directus
msg_ok "Stopped Service"
create_backup /opt/directus/.env \
/opt/directus/uploads \
/opt/directus/extensions
msg_info "Updating Directus"
cd /opt/directus
$STD npm install --omit=dev "directus@${CHECK_UPDATE_RELEASE#v}"
cat <<EOF >~/.directus
${CHECK_UPDATE_RELEASE#v}
EOF
restore_backup
msg_ok "Updated Directus"
msg_info "Starting Service"
systemctl start directus
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 "${GATEWAY}${BGN}http://${IP}:8055${CL}"

44
ct/fedora.sh Normal file
View File

@@ -0,0 +1,44 @@
#!/usr/bin/env bash
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/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://fedoraproject.org/
APP="Fedora"
var_tags="${var_tags:-os}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}"
var_disk="${var_disk:-4}"
var_os="${var_os:-fedora}"
var_version="${var_version:-43}"
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 /var ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating Fedora LXC"
$STD dnf -y upgrade
msg_ok "Updated Fedora LXC"
exit
}
start
build_container
description
msg_ok "Completed successfully!"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"

46
ct/gentoo.sh Normal file
View File

@@ -0,0 +1,46 @@
#!/usr/bin/env bash
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/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://www.gentoo.org/
APP="Gentoo"
var_tags="${var_tags:-os}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-10}"
var_os="${var_os:-gentoo}"
var_version="${var_version:-current}"
#var_arm64="${var_arm64:-no}" # unset = ask the user; set yes/no only when verified
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 /var ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating Gentoo LXC"
$STD emerge --sync
$STD emerge --quiet --update --deep @world
msg_ok "Updated Gentoo LXC"
exit
}
start
build_container
description
msg_ok "Completed successfully!"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"

6
ct/headers/almalinux Normal file
View File

@@ -0,0 +1,6 @@
___ __ __ _
/ | / /___ ___ ____ _/ / (_)___ __ ___ __
/ /| | / / __ `__ \/ __ `/ / / / __ \/ / / / |/_/
/ ___ |/ / / / / / / /_/ / /___/ / / / / /_/ /> <
/_/ |_/_/_/ /_/ /_/\__,_/_____/_/_/ /_/\__,_/_/|_|

6
ct/headers/centos Normal file
View File

@@ -0,0 +1,6 @@
______ __ ____ _____
/ ____/__ ____ / /_/ __ \/ ___/
/ / / _ \/ __ \/ __/ / / /\__ \
/ /___/ __/ / / / /_/ /_/ /___/ /
\____/\___/_/ /_/\__/\____//____/

6
ct/headers/devuan Normal file
View File

@@ -0,0 +1,6 @@
____
/ __ \___ _ ____ ______ _____
/ / / / _ \ | / / / / / __ `/ __ \
/ /_/ / __/ |/ / /_/ / /_/ / / / /
/_____/\___/|___/\__,_/\__,_/_/ /_/

6
ct/headers/directus Normal file
View File

@@ -0,0 +1,6 @@
____ _ __
/ __ \(_)_______ _____/ /___ _______
/ / / / / ___/ _ \/ ___/ __/ / / / ___/
/ /_/ / / / / __/ /__/ /_/ /_/ (__ )
/_____/_/_/ \___/\___/\__/\__,_/____/

6
ct/headers/fedora Normal file
View File

@@ -0,0 +1,6 @@
______ __
/ ____/__ ____/ /___ _________ _
/ /_ / _ \/ __ / __ \/ ___/ __ `/
/ __/ / __/ /_/ / /_/ / / / /_/ /
/_/ \___/\__,_/\____/_/ \__,_/

6
ct/headers/gentoo Normal file
View File

@@ -0,0 +1,6 @@
______ __
/ ____/__ ____ / /_____ ____
/ / __/ _ \/ __ \/ __/ __ \/ __ \
/ /_/ / __/ / / / /_/ /_/ / /_/ /
\____/\___/_/ /_/\__/\____/\____/

6
ct/headers/openeuler Normal file
View File

@@ -0,0 +1,6 @@
______ __
____ ____ ___ ____ / ____/_ __/ /__ _____
/ __ \/ __ \/ _ \/ __ \/ __/ / / / / / _ \/ ___/
/ /_/ / /_/ / __/ / / / /___/ /_/ / / __/ /
\____/ .___/\___/_/ /_/_____/\__,_/_/\___/_/
/_/

6
ct/headers/opensuse Normal file
View File

@@ -0,0 +1,6 @@
_____ __ _______ ______
____ ____ ___ ____ / ___// / / / ___// ____/
/ __ \/ __ \/ _ \/ __ \\__ \/ / / /\__ \/ __/
/ /_/ / /_/ / __/ / / /__/ / /_/ /___/ / /___
\____/ .___/\___/_/ /_/____/\____//____/_____/
/_/

46
ct/openeuler.sh Normal file
View File

@@ -0,0 +1,46 @@
#!/usr/bin/env bash
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/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://www.openeuler.org/
APP="openEuler"
var_tags="${var_tags:-os}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}"
var_disk="${var_disk:-4}"
var_os="${var_os:-openeuler}"
var_version="${var_version:-25.03}"
#var_arm64="${var_arm64:-no}" # unset = ask the user; set yes/no only when verified
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 /var ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating OpenEuler LXC"
$STD dnf -y upgrade
msg_ok "Updated OpenEuler LXC"
msg_ok "Updated successfully!"
exit
}
start
build_container
description
msg_ok "Completed successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"

46
ct/opensuse.sh Normal file
View File

@@ -0,0 +1,46 @@
#!/usr/bin/env bash
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/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://www.opensuse.org/
APP="openSUSE"
var_tags="${var_tags:-os}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}"
var_disk="${var_disk:-4}"
var_os="${var_os:-opensuse}"
var_version="${var_version:-16.0}"
#var_arm64="${var_arm64:-no}" # unset = ask the user; set yes/no only when verified
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 /var ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating OpenSUSE LXC"
$STD zypper -n update
msg_ok "Updated OpenSUSE LXC"
msg_ok "Updated successfully!"
exit
}
start
build_container
description
msg_ok "Completed successfully!\n"
msg_custom "🚀" "${GN}" "${APP} setup has been successfully initialized!"

View File

@@ -51,12 +51,13 @@ function update_script() {
fi
sed -i 's|_TARGET=.*$|_URL=http://127.0.0.1:60072|' /opt/scanopy/.env
msg_info "Building Scanopy Server (patience)"
fetch_and_deploy_gh_release "scanopy-server" "scanopy/scanopy" "singlefile" "latest" "/usr/bin" "scanopy-server-linux-$(arch_resolve)"
msg_info "Generating UI Fixtures (patience)"
cd /opt/scanopy/backend
CARGO_BUILD_JOBS="$(get_parallel_jobs)" $STD cargo build --release --bin server --bin generate-fixtures
CARGO_PROFILE_RELEASE_LTO=false CARGO_PROFILE_RELEASE_CODEGEN_UNITS=16 CARGO_BUILD_JOBS="$(get_parallel_jobs)" $STD cargo build --release --bin generate-fixtures
$STD ./target/release/generate-fixtures --output-dir /opt/scanopy/ui/src/lib/data
mv ./target/release/server /usr/bin/scanopy-server
msg_ok "Built Scanopy Server"
msg_ok "Generated UI Fixtures"
msg_info "Creating frontend UI"
export PUBLIC_SERVER_HOSTNAME=default

View File

@@ -0,0 +1,18 @@
#!/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://almalinux.org/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
motd_ssh
customize
cleanup_lxc

18
install/centos-install.sh Normal file
View File

@@ -0,0 +1,18 @@
#!/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://www.centos.org/centos-stream/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
motd_ssh
customize
cleanup_lxc

18
install/devuan-install.sh Normal file
View File

@@ -0,0 +1,18 @@
#!/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://www.devuan.org/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
motd_ssh
customize
cleanup_lxc

View File

@@ -0,0 +1,90 @@
#!/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://directus.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="17" setup_postgresql
PG_DB_NAME="directus" PG_DB_USER="directus" setup_postgresql_db
msg_info "Installing Directus"
mkdir -p /opt/directus/uploads /opt/directus/extensions
cd /opt/directus
$STD npm init -y
DIRECTUS_VERSION=$(get_latest_github_release "directus/directus")
$STD npm install --omit=dev "directus@${DIRECTUS_VERSION}"
cat <<EOF >~/.directus
${DIRECTUS_VERSION}
EOF
msg_ok "Installed Directus"
msg_info "Configuring Directus"
DIRECTUS_KEY=$(openssl rand -hex 32)
DIRECTUS_SECRET=$(openssl rand -hex 32)
DIRECTUS_ADMIN_PASSWORD=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c16)
cat <<EOF >/opt/directus/.env
HOST="0.0.0.0"
PORT=8055
PUBLIC_URL="http://${LOCAL_IP}:8055"
KEY="${DIRECTUS_KEY}"
SECRET="${DIRECTUS_SECRET}"
DB_CLIENT="pg"
DB_HOST="127.0.0.1"
DB_PORT=5432
DB_DATABASE="${PG_DB_NAME}"
DB_USER="${PG_DB_USER}"
DB_PASSWORD="${PG_DB_PASS}"
ADMIN_EMAIL="admin@community-scripts.org"
ADMIN_PASSWORD="${DIRECTUS_ADMIN_PASSWORD}"
STORAGE_LOCATIONS="local"
STORAGE_LOCAL_DRIVER="local"
STORAGE_LOCAL_ROOT="/opt/directus/uploads"
EXTENSIONS_PATH="/opt/directus/extensions"
TELEMETRY=false
EOF
chmod 640 /opt/directus/.env
msg_ok "Configured Directus"
msg_info "Initializing Directus"
cd /opt/directus
$STD /opt/directus/node_modules/.bin/directus bootstrap
msg_ok "Initialized Directus"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/directus.service
[Unit]
Description=Directus
After=network.target postgresql.service
Requires=postgresql.service
[Service]
Type=simple
User=root
WorkingDirectory=/opt/directus
EnvironmentFile=/opt/directus/.env
ExecStart=/opt/directus/node_modules/.bin/directus start
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now directus
msg_ok "Created Service"
motd_ssh
customize
cleanup_lxc

18
install/fedora-install.sh Normal file
View File

@@ -0,0 +1,18 @@
#!/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://fedoraproject.org/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
motd_ssh
customize
cleanup_lxc

18
install/gentoo-install.sh Normal file
View File

@@ -0,0 +1,18 @@
#!/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://www.gentoo.org/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
motd_ssh
customize
cleanup_lxc

View File

@@ -0,0 +1,18 @@
#!/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://www.openeuler.org/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
motd_ssh
customize
cleanup_lxc

View File

@@ -0,0 +1,18 @@
#!/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://www.opensuse.org/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
motd_ssh
customize
cleanup_lxc

View File

@@ -27,12 +27,13 @@ fetch_and_deploy_gh_release "Scanopy" "scanopy/scanopy" "tarball" "latest" "/opt
TOOLCHAIN="$(grep "channel" /opt/scanopy/backend/rust-toolchain.toml | awk -F\" '{print $2}')"
RUST_TOOLCHAIN=$TOOLCHAIN setup_rust
msg_info "Building Scanopy Server (patience)"
fetch_and_deploy_gh_release "scanopy-server" "scanopy/scanopy" "singlefile" "latest" "/usr/bin" "scanopy-server-linux-$(arch_resolve)"
msg_info "Generating UI Fixtures (patience)"
cd /opt/scanopy/backend
CARGO_BUILD_JOBS="$(get_parallel_jobs)" $STD cargo build --release --bin server --bin generate-fixtures
CARGO_PROFILE_RELEASE_LTO=false CARGO_PROFILE_RELEASE_CODEGEN_UNITS=16 CARGO_BUILD_JOBS="$(get_parallel_jobs)" $STD cargo build --release --bin generate-fixtures
$STD ./target/release/generate-fixtures --output-dir /opt/scanopy/ui/src/lib/data
mv ./target/release/server /usr/bin/scanopy-server
msg_ok "Built Scanopy Server"
msg_ok "Generated UI Fixtures"
msg_info "Creating frontend UI"
export PUBLIC_SERVER_HOSTNAME=default