mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-07-29 01:02:54 +02:00
b7688ff97a
Refactors many install scripts to use the shared `nginx_enable_site` helper instead of manual symlink/default-site/reload sequences, making webserver setup more consistent and less error-prone. It also replaces hardcoded PHP-FPM socket paths with `get_php_fpm_socket` (including templated substitutions where needed) across nginx and caddy configs to improve compatibility with varying PHP versions and socket locations.
83 lines
2.6 KiB
Bash
Executable File
83 lines
2.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# Copyright (c) 2021-2026 community-scripts ORG
|
|
# Author: gVNS (ggfevans)
|
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
# Source: https://github.com/RackulaLives/Rackula
|
|
|
|
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
|
|
msg_ok "Installed Dependencies"
|
|
|
|
msg_info "Installing Bun"
|
|
export BUN_INSTALL="/opt/bun"
|
|
curl -fsSL https://bun.sh/install | $STD bash
|
|
ln -sf /opt/bun/bin/bun /usr/local/bin/bun
|
|
msg_ok "Installed Bun"
|
|
|
|
fetch_and_deploy_gh_release "rackula" "RackulaLives/Rackula" "prebuild" "latest" "/opt/rackula" "rackula-lxc-*.tar.gz"
|
|
|
|
msg_info "Setting up Rackula"
|
|
mkdir -p /opt/rackula/data /etc/nginx/snippets
|
|
SECURITY_HEADERS_SRC="/opt/rackula/config/security-headers.conf"
|
|
cp "$SECURITY_HEADERS_SRC" /etc/nginx/snippets/security-headers.conf
|
|
chown -R root:root /opt/rackula/frontend
|
|
find /opt/rackula/frontend -type d -exec chmod 755 {} \;
|
|
find /opt/rackula/frontend -type f -exec chmod 644 {} \;
|
|
chmod 750 /opt/rackula/data
|
|
|
|
API_WRITE_TOKEN=$(openssl rand -hex 32)
|
|
cat <<EOF >/opt/rackula/data/.env
|
|
RACKULA_API_WRITE_TOKEN=${API_WRITE_TOKEN}
|
|
CORS_ORIGIN=http://localhost
|
|
ALLOW_INSECURE_CORS=false
|
|
EOF
|
|
chmod 600 /opt/rackula/data/.env
|
|
|
|
cat <<EOF >/etc/nginx/snippets/rackula-api-token.conf
|
|
map \$host \$rackula_api_write_token {
|
|
default "${API_WRITE_TOKEN}";
|
|
}
|
|
map \$host \$rackula_has_api_write_token {
|
|
default 1;
|
|
}
|
|
EOF
|
|
chmod 640 /etc/nginx/snippets/rackula-api-token.conf
|
|
msg_ok "Set up Rackula"
|
|
|
|
msg_info "Configuring nginx"
|
|
cp /opt/rackula/config/nginx.conf /etc/nginx/sites-available/rackula
|
|
nginx_enable_site rackula
|
|
msg_ok "Configured nginx"
|
|
|
|
msg_info "Creating Services"
|
|
cp /opt/rackula/config/rackula-api.service /etc/systemd/system/rackula-api.service
|
|
if grep -q '^User=' /etc/systemd/system/rackula-api.service; then
|
|
sed -i 's/^User=.*/User=root/' /etc/systemd/system/rackula-api.service
|
|
else
|
|
sed -i '/^\[Service\]/a User=root' /etc/systemd/system/rackula-api.service
|
|
fi
|
|
if grep -q '^Group=' /etc/systemd/system/rackula-api.service; then
|
|
sed -i 's/^Group=.*/Group=root/' /etc/systemd/system/rackula-api.service
|
|
else
|
|
sed -i '/^\[Service\]/a Group=root' /etc/systemd/system/rackula-api.service
|
|
fi
|
|
mkdir -p /etc/systemd/system/nginx.service.d
|
|
cp /opt/rackula/config/nginx.service.d-override.conf /etc/systemd/system/nginx.service.d/override.conf
|
|
systemctl daemon-reload
|
|
systemctl enable -q nginx rackula-api
|
|
systemctl restart nginx rackula-api
|
|
msg_ok "Created Services"
|
|
|
|
motd_ssh
|
|
customize
|
|
cleanup_lxc
|