Compare commits
4 Commits
update_cor
...
update-ver
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ee2ae608de | ||
|
|
2ba213de49 | ||
|
|
849aabb575 | ||
|
|
dd33df2033 |
@@ -1,4 +1,4 @@
|
|||||||
# Copyright (c) 2021-2025 community-scripts ORG
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
# Co-Author: MickLesk
|
# Co-Author: MickLesk
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# Copyright (c) 2021-2025 community-scripts ORG
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
# Author: michelroegl-brunner
|
# Author: michelroegl-brunner
|
||||||
# License: MIT | https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/LICENSE
|
# License: MIT | https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/LICENSE
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
# Copyright (c) 2021-2025 community-scripts ORG
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
# Author: community-scripts ORG
|
# Author: community-scripts ORG
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/branch/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/branch/main/LICENSE
|
||||||
# Revision: 1
|
# Revision: 1
|
||||||
@@ -502,4 +502,4 @@ if validate_ip_cidr "192.168.1.100/24"; then
|
|||||||
echo "Valid IP/CIDR"
|
echo "Valid IP/CIDR"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
EXAMPLES
|
EXAMPLES
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
# Copyright (c) 2021-2025 community-scripts ORG
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
# License: MIT | https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/LICENSE
|
# License: MIT | https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/LICENSE
|
||||||
|
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
@@ -123,6 +123,7 @@ icons() {
|
|||||||
CREATING="${TAB}🚀${TAB}${CL}"
|
CREATING="${TAB}🚀${TAB}${CL}"
|
||||||
ADVANCED="${TAB}🧩${TAB}${CL}"
|
ADVANCED="${TAB}🧩${TAB}${CL}"
|
||||||
FUSE="${TAB}🗂️${TAB}${CL}"
|
FUSE="${TAB}🗂️${TAB}${CL}"
|
||||||
|
GPU="${TAB}🎮${TAB}${CL}"
|
||||||
HOURGLASS="${TAB}⏳${TAB}"
|
HOURGLASS="${TAB}⏳${TAB}"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -808,18 +809,15 @@ cleanup_lxc() {
|
|||||||
find /tmp /var/tmp -type f -name 'tmp*' -delete 2>/dev/null || true
|
find /tmp /var/tmp -type f -name 'tmp*' -delete 2>/dev/null || true
|
||||||
find /tmp /var/tmp -type f -name 'tempfile*' -delete 2>/dev/null || true
|
find /tmp /var/tmp -type f -name 'tempfile*' -delete 2>/dev/null || true
|
||||||
|
|
||||||
# Truncate writable log files silently (permission errors ignored)
|
# Node.js npm - directly remove cache directory
|
||||||
if command -v truncate >/dev/null 2>&1; then
|
# npm cache clean/verify can fail with ENOTEMPTY errors, so we skip them
|
||||||
find /var/log -type f -writable -print0 2>/dev/null |
|
if command -v npm &>/dev/null; then
|
||||||
xargs -0 -n1 truncate -s 0 2>/dev/null || true
|
rm -rf /root/.npm/_cacache /root/.npm/_logs 2>/dev/null || true
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Node.js npm
|
|
||||||
if command -v npm &>/dev/null; then $STD npm cache clean --force || true; fi
|
|
||||||
# Node.js yarn
|
# Node.js yarn
|
||||||
if command -v yarn &>/dev/null; then $STD yarn cache clean || true; fi
|
if command -v yarn &>/dev/null; then yarn cache clean &>/dev/null || true; fi
|
||||||
# Node.js pnpm
|
# Node.js pnpm
|
||||||
if command -v pnpm &>/dev/null; then $STD pnpm store prune || true; fi
|
if command -v pnpm &>/dev/null; then pnpm store prune &>/dev/null || true; fi
|
||||||
# Go
|
# Go
|
||||||
if command -v go &>/dev/null; then $STD go clean -cache -modcache || true; fi
|
if command -v go &>/dev/null; then $STD go clean -cache -modcache || true; fi
|
||||||
# Rust cargo
|
# Rust cargo
|
||||||
@@ -827,11 +825,8 @@ cleanup_lxc() {
|
|||||||
# Ruby gem
|
# Ruby gem
|
||||||
if command -v gem &>/dev/null; then $STD gem cleanup || true; fi
|
if command -v gem &>/dev/null; then $STD gem cleanup || true; fi
|
||||||
# Composer (PHP)
|
# Composer (PHP)
|
||||||
if command -v composer &>/dev/null; then $STD composer clear-cache || true; fi
|
if command -v composer &>/dev/null; then COMPOSER_ALLOW_SUPERUSER=1 $STD composer clear-cache || true; fi
|
||||||
|
|
||||||
if command -v journalctl &>/dev/null; then
|
|
||||||
$STD journalctl --vacuum-time=10m || true
|
|
||||||
fi
|
|
||||||
msg_ok "Cleaned"
|
msg_ok "Cleaned"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -887,4 +882,4 @@ check_or_create_swap() {
|
|||||||
# SIGNAL TRAPS
|
# SIGNAL TRAPS
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
|
|
||||||
trap 'stop_spinner' EXIT INT TERM
|
trap 'stop_spinner' EXIT INT TERM
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
# ERROR HANDLER - ERROR & SIGNAL MANAGEMENT
|
# ERROR HANDLER - ERROR & SIGNAL MANAGEMENT
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
# Copyright (c) 2021-2025 community-scripts ORG
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
# Author: MickLesk (CanbiZ)
|
# Author: MickLesk (CanbiZ)
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
@@ -34,9 +34,9 @@
|
|||||||
# * Node.js/npm errors (243-249, 254)
|
# * Node.js/npm errors (243-249, 254)
|
||||||
# * Python/pip/uv errors (210-212)
|
# * Python/pip/uv errors (210-212)
|
||||||
# * PostgreSQL errors (231-234)
|
# * PostgreSQL errors (231-234)
|
||||||
# * MySQL/MariaDB errors (260-263)
|
# * MySQL/MariaDB errors (241-244)
|
||||||
# * MongoDB errors (251-253)
|
# * MongoDB errors (251-254)
|
||||||
# * Proxmox custom codes (200-209, 213-223, 225)
|
# * Proxmox custom codes (200-231)
|
||||||
# - Returns description string for given exit code
|
# - Returns description string for given exit code
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
explain_exit_code() {
|
explain_exit_code() {
|
||||||
@@ -319,4 +319,4 @@ catch_errors() {
|
|||||||
trap on_exit EXIT
|
trap on_exit EXIT
|
||||||
trap on_interrupt INT
|
trap on_interrupt INT
|
||||||
trap on_terminate TERM
|
trap on_terminate TERM
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# Copyright (c) 2021-2025 community-scripts ORG
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
# Co-Author: MickLesk
|
# Co-Author: MickLesk
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
@@ -222,21 +222,12 @@ motd_ssh() {
|
|||||||
# Set terminal to 256-color mode
|
# Set terminal to 256-color mode
|
||||||
grep -qxF "export TERM='xterm-256color'" /root/.bashrc || echo "export TERM='xterm-256color'" >>/root/.bashrc
|
grep -qxF "export TERM='xterm-256color'" /root/.bashrc || echo "export TERM='xterm-256color'" >>/root/.bashrc
|
||||||
|
|
||||||
# Get OS information (Debian / Ubuntu)
|
|
||||||
if [ -f "/etc/os-release" ]; then
|
|
||||||
OS_NAME=$(grep ^NAME /etc/os-release | cut -d= -f2 | tr -d '"')
|
|
||||||
OS_VERSION=$(grep ^VERSION_ID /etc/os-release | cut -d= -f2 | tr -d '"')
|
|
||||||
elif [ -f "/etc/debian_version" ]; then
|
|
||||||
OS_NAME="Debian"
|
|
||||||
OS_VERSION=$(cat /etc/debian_version)
|
|
||||||
fi
|
|
||||||
|
|
||||||
PROFILE_FILE="/etc/profile.d/00_lxc-details.sh"
|
PROFILE_FILE="/etc/profile.d/00_lxc-details.sh"
|
||||||
echo "echo -e \"\"" >"$PROFILE_FILE"
|
echo "echo -e \"\"" >"$PROFILE_FILE"
|
||||||
echo -e "echo -e \"${BOLD}${APPLICATION} LXC Container${CL}"\" >>"$PROFILE_FILE"
|
echo -e "echo -e \"${BOLD}${APPLICATION} LXC Container${CL}"\" >>"$PROFILE_FILE"
|
||||||
echo -e "echo -e \"${TAB}${GATEWAY}${YW} Provided by: ${GN}community-scripts ORG ${YW}| GitHub: ${GN}https://github.com/community-scripts/ProxmoxVE${CL}\"" >>"$PROFILE_FILE"
|
echo -e "echo -e \"${TAB}${GATEWAY}${YW} Provided by: ${GN}community-scripts ORG ${YW}| GitHub: ${GN}https://github.com/community-scripts/ProxmoxVE${CL}\"" >>"$PROFILE_FILE"
|
||||||
echo "echo \"\"" >>"$PROFILE_FILE"
|
echo "echo \"\"" >>"$PROFILE_FILE"
|
||||||
echo -e "echo -e \"${TAB}${OS}${YW} OS: ${GN}${OS_NAME} - Version: ${OS_VERSION}${CL}\"" >>"$PROFILE_FILE"
|
echo -e "echo -e \"${TAB}${OS}${YW} OS: ${GN}\$(grep ^NAME /etc/os-release | cut -d= -f2 | tr -d '\"') - Version: \$(grep ^VERSION_ID /etc/os-release | cut -d= -f2 | tr -d '\"')${CL}\"" >>"$PROFILE_FILE"
|
||||||
echo -e "echo -e \"${TAB}${HOSTNAME}${YW} Hostname: ${GN}\$(hostname)${CL}\"" >>"$PROFILE_FILE"
|
echo -e "echo -e \"${TAB}${HOSTNAME}${YW} Hostname: ${GN}\$(hostname)${CL}\"" >>"$PROFILE_FILE"
|
||||||
echo -e "echo -e \"${TAB}${INFO}${YW} IP Address: ${GN}\$(hostname -I | awk '{print \$1}')${CL}\"" >>"$PROFILE_FILE"
|
echo -e "echo -e \"${TAB}${INFO}${YW} IP Address: ${GN}\$(hostname -I | awk '{print \$1}')${CL}\"" >>"$PROFILE_FILE"
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -16,7 +16,7 @@ export function Footer({ onOpenReleaseNotes }: FooterProps) {
|
|||||||
<div className="container mx-auto px-4">
|
<div className="container mx-auto px-4">
|
||||||
<div className="flex flex-col sm:flex-row items-center justify-between gap-2 text-sm text-muted-foreground">
|
<div className="flex flex-col sm:flex-row items-center justify-between gap-2 text-sm text-muted-foreground">
|
||||||
<div className="flex items-center gap-2">
|
<div className="flex items-center gap-2">
|
||||||
<span>© 2024 PVE Scripts Local</span>
|
<span>© 2026 PVE Scripts Local</span>
|
||||||
{versionData?.success && versionData.version && (
|
{versionData?.success && versionData.version && (
|
||||||
<Button
|
<Button
|
||||||
variant="ghost"
|
variant="ghost"
|
||||||
|
|||||||
@@ -1,9 +1,22 @@
|
|||||||
import 'dotenv/config'
|
import 'dotenv/config'
|
||||||
import { PrismaClient } from '../../prisma/generated/prisma/client.ts'
|
import { PrismaClient } from '../../prisma/generated/prisma/client.ts'
|
||||||
import { PrismaBetterSqlite3 } from '@prisma/adapter-better-sqlite3'
|
import { PrismaBetterSqlite3 } from '@prisma/adapter-better-sqlite3'
|
||||||
|
import { existsSync, mkdirSync } from 'fs'
|
||||||
|
import { dirname } from 'path'
|
||||||
|
|
||||||
const globalForPrisma = globalThis;
|
const globalForPrisma = globalThis;
|
||||||
|
|
||||||
|
// Ensure database directory exists before initializing Prisma
|
||||||
|
// DATABASE_URL format: file:/path/to/database.db
|
||||||
|
const dbUrl = process.env.DATABASE_URL || 'file:./data/settings.db';
|
||||||
|
const dbPath = dbUrl.replace(/^file:/, '');
|
||||||
|
const dbDir = dirname(dbPath);
|
||||||
|
|
||||||
|
if (!existsSync(dbDir)) {
|
||||||
|
console.log(`Creating database directory: ${dbDir}`);
|
||||||
|
mkdirSync(dbDir, { recursive: true });
|
||||||
|
}
|
||||||
|
|
||||||
const adapter = new PrismaBetterSqlite3({ url: process.env.DATABASE_URL });
|
const adapter = new PrismaBetterSqlite3({ url: process.env.DATABASE_URL });
|
||||||
|
|
||||||
export const prisma = globalForPrisma.prisma ?? new PrismaClient({ adapter });
|
export const prisma = globalForPrisma.prisma ?? new PrismaClient({ adapter });
|
||||||
|
|||||||
@@ -1,9 +1,22 @@
|
|||||||
import 'dotenv/config'
|
import 'dotenv/config'
|
||||||
import { PrismaClient } from '../../prisma/generated/prisma/client'
|
import { PrismaClient } from '../../prisma/generated/prisma/client'
|
||||||
import { PrismaBetterSqlite3 } from '@prisma/adapter-better-sqlite3'
|
import { PrismaBetterSqlite3 } from '@prisma/adapter-better-sqlite3'
|
||||||
|
import { existsSync, mkdirSync } from 'fs'
|
||||||
|
import { dirname } from 'path'
|
||||||
|
|
||||||
const globalForPrisma = globalThis as { prisma?: PrismaClient };
|
const globalForPrisma = globalThis as { prisma?: PrismaClient };
|
||||||
|
|
||||||
|
// Ensure database directory exists before initializing Prisma
|
||||||
|
// DATABASE_URL format: file:/path/to/database.db
|
||||||
|
const dbUrl = process.env.DATABASE_URL || 'file:./data/settings.db';
|
||||||
|
const dbPath = dbUrl.replace(/^file:/, '');
|
||||||
|
const dbDir = dirname(dbPath);
|
||||||
|
|
||||||
|
if (!existsSync(dbDir)) {
|
||||||
|
console.log(`Creating database directory: ${dbDir}`);
|
||||||
|
mkdirSync(dbDir, { recursive: true });
|
||||||
|
}
|
||||||
|
|
||||||
const adapter = new PrismaBetterSqlite3({ url: process.env.DATABASE_URL! });
|
const adapter = new PrismaBetterSqlite3({ url: process.env.DATABASE_URL! });
|
||||||
|
|
||||||
export const prisma: PrismaClient = globalForPrisma.prisma ?? new PrismaClient({
|
export const prisma: PrismaClient = globalForPrisma.prisma ?? new PrismaClient({
|
||||||
|
|||||||
Reference in New Issue
Block a user