Compare commits

..

6 Commits

Author SHA1 Message Date
CanbiZ
f338036ed2 Update copyright years to 2026 in core scripts
Updated the copyright year from 2025 to 2026 in alpine-install.func, api.func, and cloud-init.func to reflect the new year. No functional changes were made.
2026-01-07 20:43:01 +01:00
CanbiZ
b38083e8c9 Update error-handler.func 2026-01-07 20:42:10 +01:00
CanbiZ
633612cd8f Enhance hardware acceleration and MariaDB setup
Refactors and expands the hardware acceleration setup to support multiple GPU types (Intel, AMD, NVIDIA), adds user selection for GPU configuration, and improves driver installation logic for Debian and Ubuntu. Adds runtime directory persistence for MariaDB using tmpfiles.d to ensure /run/mysqld exists after reboot. Includes minor robustness improvements and error handling throughout the script.
2026-01-07 20:41:58 +01:00
CanbiZ
e6d11196bd update install.func 2026-01-07 20:41:34 +01:00
CanbiZ
cf36b1b86a Add advanced container features and IP range scanning
Introduces support for scanning and assigning the first free IP from a user-specified range, and expands advanced LXC container settings to include GPU passthrough, TUN/TAP, nesting, keyctl, mknod, timezone, protection, and APT cacher options. Refactors advanced_settings wizard to support these new features, updates variable handling and defaults, and improves summary and output formatting. Also enhances SSH key configuration, storage/template validation, and GPU passthrough logic.
2026-01-07 20:40:33 +01:00
CanbiZ
be7fadeee2 update core.func 2026-01-07 20:36:54 +01:00
5 changed files with 9 additions and 41 deletions

View File

@@ -1 +1 @@
0.5.3
0.5.2

View File

@@ -517,16 +517,11 @@ base_settings() {
fi
fi
# Format optional network variables with proper prefixes for pct create
# Also strip any spaces from nameserver values (multiple IPs must be comma-separated without spaces)
local _ns_clean="${var_ns:-}"
_ns_clean="${_ns_clean// /}" # Remove all spaces from nameserver value
[[ -n "${var_mtu:-}" ]] && MTU=",mtu=${var_mtu}" || MTU=""
[[ -n "${var_searchdomain:-}" ]] && SD="-searchdomain=${var_searchdomain}" || SD=""
[[ -n "$_ns_clean" ]] && NS="-nameserver=${_ns_clean}" || NS=""
[[ -n "${var_mac:-}" ]] && MAC=",hwaddr=${var_mac}" || MAC=""
[[ -n "${var_vlan:-}" ]] && VLAN=",tag=${var_vlan}" || VLAN=""
MTU=${var_mtu:-""}
SD=${var_storage:-""}
NS=${var_ns:-""}
MAC=${var_mac:-""}
VLAN=${var_vlan:-""}
SSH=${var_ssh:-"no"}
SSH_AUTHORIZED_KEY=${var_ssh_authorized_key:-""}
UDHCPC_FIX=${var_udhcpc_fix:-""}
@@ -2028,11 +2023,10 @@ Advanced:
var_apt_cacher="$_apt_cacher"
var_apt_cacher_ip="$_apt_cacher_ip"
# Format optional values (strip spaces from nameserver - multiple IPs must be comma-separated without spaces)
local _ns_clean="${_ns// /}"
# Format optional values
[[ -n "$_mtu" ]] && MTU=",mtu=$_mtu" || MTU=""
[[ -n "$_sd" ]] && SD="-searchdomain=$_sd" || SD=""
[[ -n "$_ns_clean" ]] && NS="-nameserver=$_ns_clean" || NS=""
[[ -n "$_ns" ]] && NS="-nameserver=$_ns" || NS=""
[[ -n "$_mac" ]] && MAC=",hwaddr=$_mac" || MAC=""
[[ -n "$_vlan" ]] && VLAN=",tag=$_vlan" || VLAN=""

View File

@@ -16,7 +16,7 @@ export function Footer({ onOpenReleaseNotes }: FooterProps) {
<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 items-center gap-2">
<span>© 2026 PVE Scripts Local</span>
<span>© 2024 PVE Scripts Local</span>
{versionData?.success && versionData.version && (
<Button
variant="ghost"

View File

@@ -1,22 +1,9 @@
import 'dotenv/config'
import { PrismaClient } from '../../prisma/generated/prisma/client.ts'
import { PrismaBetterSqlite3 } from '@prisma/adapter-better-sqlite3'
import { existsSync, mkdirSync } from 'fs'
import { dirname } from 'path'
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 });
export const prisma = globalForPrisma.prisma ?? new PrismaClient({ adapter });

View File

@@ -1,22 +1,9 @@
import 'dotenv/config'
import { PrismaClient } from '../../prisma/generated/prisma/client'
import { PrismaBetterSqlite3 } from '@prisma/adapter-better-sqlite3'
import { existsSync, mkdirSync } from 'fs'
import { dirname } from 'path'
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! });
export const prisma: PrismaClient = globalForPrisma.prisma ?? new PrismaClient({