This commit is contained in:
MacRimi 2025-03-01 22:07:17 +01:00
parent 9d39af0c33
commit 986fd7aa1f

View File

@ -32,129 +32,6 @@ export const metadata: Metadata = {
}
export default function BasicSettingsPage() {
const installUtilitiesCode = `
# Update package lists
sudo apt-get update
# Install common system utilities
sudo apt-get install -y axel curl dialog dnsutils dos2unix gnupg-agent grc htop btop iftop iotop
sudo apt-get install -y iperf3 ipset iptraf-ng mlocate msr-tools nano net-tools omping
sudo apt-get install -y software-properties-common sshpass tmux unzip vim vim-nox wget whois zip
sudo apt-get install -y libguestfs-tools
`
const skipLanguagesCode = `
# Configure APT to skip downloading additional languages
echo 'Acquire::Languages "none";' | sudo tee /etc/apt/apt.conf.d/99-disable-translations
`
const timeSyncCode = `
# Note: To set timezone automatically based on IP, you can use:
IP=$(dig +short myip.opendns.com @resolver1.opendns.com)
TIMEZONE=$(curl -s "https://ipapi.co/$IP/timezone")
sudo timedatectl set-timezone "$TIMEZONE"
`
const updateUpgradeCode = `
# Disable enterprise Proxmox repository
if [ -f /etc/apt/sources.list.d/pve-enterprise.list ]; then
sudo sed -i 's/^deb/#deb/g' /etc/apt/sources.list.d/pve-enterprise.list
fi
# Disable enterprise Proxmox Ceph repository
if [ -f /etc/apt/sources.list.d/ceph.list ]; then
sudo sed -i 's/^deb/#deb/g' /etc/apt/sources.list.d/ceph.list
fi
# Enable free public Proxmox repository
echo "deb http://download.proxmox.com/debian/pve $(lsb_release -cs) pve-no-subscription" | sudo tee /etc/apt/sources.list.d/pve-public-repo.list
# Enable Proxmox testing repository
echo "deb http://download.proxmox.com/debian/pve $(lsb_release -cs) pvetest" | sudo tee /etc/apt/sources.list.d/pve-testing-repo.list
# Configure main Debian repositories
cat <<EOF | sudo tee /etc/apt/sources.list
deb http://deb.debian.org/debian $(lsb_release -cs) main contrib non-free non-free-firmware
deb http://deb.debian.org/debian $(lsb_release -cs)-updates main contrib non-free non-free-firmware
deb http://security.debian.org/debian-security $(lsb_release -cs)-security main contrib non-free non-free-firmware
EOF
# Disable non-free firmware warnings
echo 'APT::Get::Update::SourceListWarnings::NonFreeFirmware "false";' | sudo tee /etc/apt/apt.conf.d/no-bookworm-firmware.conf
# Update and upgrade
sudo apt-get update
sudo apt-get dist-upgrade -y
# Update PVE application manager
pveam update
# Install additional packages
sudo apt-get install -y zfsutils-linux proxmox-backup-restore-image chrony
`
export default function BasicSettingsPage() {
const installUtilitiesCode = `
# Update package lists
sudo apt-get update
# Install common system utilities
sudo apt-get install -y axel curl dialog dnsutils dos2unix gnupg-agent grc htop btop iftop iotop
sudo apt-get install -y iperf3 ipset iptraf-ng mlocate msr-tools nano net-tools omping
sudo apt-get install -y software-properties-common sshpass tmux unzip vim vim-nox wget whois zip
sudo apt-get install -y libguestfs-tools
`
const skipLanguagesCode = `
# Configure APT to skip downloading additional languages
echo 'Acquire::Languages "none";' | sudo tee /etc/apt/apt.conf.d/99-disable-translations
`
const timeSyncCode = `
# Note: To set timezone automatically based on IP, you can use:
IP=$(dig +short myip.opendns.com @resolver1.opendns.com)
TIMEZONE=$(curl -s "https://ipapi.co/$IP/timezone")
sudo timedatectl set-timezone "$TIMEZONE"
`
const updateUpgradeCode = `
# Disable enterprise Proxmox repository
if [ -f /etc/apt/sources.list.d/pve-enterprise.list ]; then
sudo sed -i 's/^deb/#deb/g' /etc/apt/sources.list.d/pve-enterprise.list
fi
# Disable enterprise Proxmox Ceph repository
if [ -f /etc/apt/sources.list.d/ceph.list ]; then
sudo sed -i 's/^deb/#deb/g' /etc/apt/sources.list.d/ceph.list
fi
# Enable free public Proxmox repository
echo "deb http://download.proxmox.com/debian/pve $(lsb_release -cs) pve-no-subscription" | sudo tee /etc/apt/sources.list.d/pve-public-repo.list
# Enable Proxmox testing repository
echo "deb http://download.proxmox.com/debian/pve $(lsb_release -cs) pvetest" | sudo tee /etc/apt/sources.list.d/pve-testing-repo.list
# Configure main Debian repositories
cat <<EOF | sudo tee /etc/apt/sources.list
deb http://deb.debian.org/debian $(lsb_release -cs) main contrib non-free non-free-firmware
deb http://deb.debian.org/debian $(lsb_release -cs)-updates main contrib non-free non-free-firmware
deb http://security.debian.org/debian-security $(lsb_release -cs)-security main contrib non-free non-free-firmware
EOF
# Disable non-free firmware warnings
echo 'APT::Get::Update::SourceListWarnings::NonFreeFirmware "false";' | sudo tee /etc/apt/apt.conf.d/no-bookworm-firmware.conf
# Update and upgrade
sudo apt-get update
sudo apt-get dist-upgrade -y
# Update PVE application manager
pveam update
# Install additional packages
sudo apt-get install -y zfsutils-linux proxmox-backup-restore-image chrony
`
return (
<div className="container mx-auto px-4 py-8">
<div className="flex items-center mb-6">
@ -166,15 +43,22 @@ sudo apt-get install -y zfsutils-linux proxmox-backup-restore-image chrony
installation, including installing essential utilities, adding repositories, managing packages, and keeping the
system up to date.
</p>
<h2 className="text-2xl font-semibold mt-8 mb-4">Available Optimizations</h2>
<Steps>
<Steps.Step title="Install Common System Utilities">
<p>
This step installs a set of common system utilities useful for system administration and troubleshooting.
<Steps.Step title="Install Common System Utilities" />
</Steps>
<section className="mb-8">
<p className="mb-4">
This optimization installs a set of common system utilities that are useful for system administration and
troubleshooting.
</p>
<h4 className="text-lg font-semibold mt-4 mb-2">Utilities installed:</h4>
<p className="mb-4">
<strong>Why it's beneficial:</strong> Having these utilities pre-installed saves time when managing your
Proxmox VE system. They provide essential tools for monitoring system performance, managing files, and
troubleshooting issues, enhancing your ability to maintain and optimize your virtualization environment.
</p>
<h4 className="text-lg font-semibold mb-2">Utilities installed:</h4>
<ul className="list-disc pl-5 mb-4">
<li>
<strong>axel</strong>: A light command-line download accelerator
@ -183,108 +67,201 @@ sudo apt-get install -y zfsutils-linux proxmox-backup-restore-image chrony
<strong>curl</strong>: A tool for transferring data using various protocols
</li>
<li>
<strong>dialog</strong>: A full-screen dialog library
<strong>dialog</strong>: A tool for creating TUI interfaces
</li>
<li>
<strong>dnsutils</strong>: Various utilities for DNS lookups
<strong>dnsutils</strong>: DNS utilities including dig and nslookup
</li>
<li>
<strong>dos2unix</strong>: Converts DOS text files to Unix format
<strong>dos2unix</strong>: Text file format converter
</li>
<li>
<strong>gnupg-agent</strong>: A helper application for GnuPG
<strong>gnupg-agent</strong>: GNU privacy guard - password agent
</li>
<li>
<strong>grc</strong>: Colorizes command output
<strong>grc</strong>: Generic colouriser for everything
</li>
<li>
<strong>htop</strong>: An interactive process viewer
</li>
<li>
<strong>btop</strong>: A system monitor
<strong>btop</strong>: A resource monitor that shows usage and stats for processor, memory, disks, network
and processes
</li>
<li>
<strong>iftop</strong>: A network monitor
<strong>iftop</strong>: A tool to display bandwidth usage on an interface
</li>
<li>
<strong>iotop</strong>: A disk I/O monitor
<strong>iotop</strong>: A tool to display I/O usage by processes
</li>
<li>
<strong>iperf3</strong>: A network bandwidth measurement tool
<strong>iperf3</strong>: A tool for active measurements of the maximum achievable bandwidth on IP networks
</li>
<li>
<strong>ipset</strong>: A powerful tool for managing IP sets
<strong>ipset</strong>: A tool to manage IP sets in the Linux kernel
</li>
<li>
<strong>iptraf-ng</strong>: A network traffic monitor
<strong>iptraf-ng</strong>: An interactive colorful IP LAN monitor
</li>
<li>
<strong>mlocate</strong>: A fast file locator
<strong>mlocate</strong>: A tool to find files by name quickly
</li>
<li>
<strong>msr-tools</strong>: Tools for managing MSR registers
<strong>msr-tools</strong>: Tools for accessing CPU model-specific registers
</li>
<li>
<strong>nano</strong>: A simple text editor
<strong>nano</strong>: A small, friendly text editor
</li>
<li>
<strong>net-tools</strong>: Various network utilities
<strong>net-tools</strong>: A collection of programs that form the base set of the NET-3 networking
distribution for the Linux operating system
</li>
<li>
<strong>mping</strong>: A multi-ping tool
<strong>omping</strong>: An open multicast ping tool
</li>
<li>
<strong>software-properties-common</strong>: Common tools for managing software repositories
<strong>software-properties-common</strong>: Provides an abstraction of the used apt repositories
</li>
<li>
<strong>sshpass</strong>: A tool for automating SSH password entry
<strong>sshpass</strong>: A tool for non-interactive ssh password authentication
</li>
<li>
<strong>tmux</strong>: A terminal multiplexer
</li>
<li>
<strong>unzip</strong>: A tool for extracting zip archives
<strong>unzip</strong>: A tool for extracting and viewing files in .zip archives
</li>
<li>
<strong>vim</strong>: A powerful text editor
<strong>vim</strong> and <strong>vim-nox</strong>: A highly configurable text editor
</li>
<li>
<strong>vim-nox</strong>: Vim without X11 dependencies
<strong>wget</strong>: A utility for non-interactive download of files from the Web
</li>
<li>
<strong>wget</strong>: A command-line download utility
<strong>whois</strong>: A client for the whois directory service
</li>
<li>
<strong>whois</strong>: A tool for querying WHOIS databases
<strong>zip</strong>: A compression and file packaging utility
</li>
<li>
<strong>zip</strong>: A tool for creating zip archives
</li>
<li>
<strong>libguestfs-tools</strong>: Tools for managing guest virtual machines
<strong>libguestfs-tools</strong>: A set of tools for accessing and modifying virtual machine disk images
</li>
</ul>
<CopyableCode code={installUtilitiesCode} />
</Steps.Step>
<Steps.Step title="Skip Downloading Additional Languages">
<p>
This optimization configures APT to skip downloading additional language packages, saving disk space and
speeding up package operations.
</p>
<CopyableCode code={skipLanguagesCode} />
</Steps.Step>
<Steps.Step title="Synchronize Time Automatically">
<p>This step configures the system to automatically synchronize its time, ensuring accurate timekeeping.</p>
<CopyableCode code={timeSyncCode} />
</Steps.Step>
<Steps.Step title="Update and Upgrade System">
<p>
This optimization updates the system's package lists, upgrades installed packages, and configures Proxmox
repositories.
</p>
<CopyableCode code={updateUpgradeCode} />
</Steps.Step>
<h4 className="text-lg font-semibold mb-2">To apply this optimization manually, run:</h4>
<CopyableCode
code={`
# Update package lists
sudo apt-get update
# Install common system utilities
sudo apt-get install -y axel curl dialog dnsutils dos2unix gnupg-agent grc htop btop iftop iotop
sudo apt-get install -y iperf3 ipset iptraf-ng mlocate msr-tools nano net-tools omping
sudo apt-get install -y software-properties-common sshpass tmux unzip vim vim-nox wget whois zip
sudo apt-get install -y libguestfs-tools
`}
/>
</section>
<Steps>
<Steps.Step title="Skip Downloading Additional Languages" />
</Steps>
<section className="mb-8">
<p className="mb-4">
This optimization configures APT to skip downloading additional language packages, which can save disk space
and speed up package operations.
</p>
<p className="mb-4">
<strong>Why it's beneficial:</strong> By skipping unnecessary language packages, you can reduce disk usage and
improve the speed of package management operations. This is particularly useful in server environments where
multiple language support is often not required.
</p>
<h4 className="text-lg font-semibold mb-2">To apply this optimization manually, run:</h4>
<CopyableCode
code={`
# Configure APT to skip downloading additional languages
echo 'Acquire::Languages "none";' | sudo tee /etc/apt/apt.conf.d/99-disable-translations
`}
/>
</section>
<Steps>
<Steps.Step title="Synchronize Time Automatically" />
</Steps>
<section className="mb-8">
<p className="mb-4">
This optimization configures the system to automatically synchronize its time, ensuring accurate timekeeping.
</p>
<p className="mb-4">
<strong>Why it's beneficial:</strong> Accurate timekeeping is crucial for many system operations, log
consistency, and proper functioning of time-sensitive applications. Automatic synchronization ensures your
Proxmox VE system maintains the correct time without manual intervention.
</p>
<h4 className="text-lg font-semibold mb-2">To apply this optimization manually, run:</h4>
<CopyableCode
code={`
# Note: To set timezone automatically based on IP, you can use:
IP=$(dig +short myip.opendns.com @resolver1.opendns.com)
TIMEZONE=$(curl -s "https://ipapi.co/$IP/timezone")
sudo timedatectl set-timezone "$TIMEZONE"
`}
/>
</section>
<Steps>
<Steps.Step title="Update and Upgrade System" />
</Steps>
<section className="mb-8">
<p className="mb-4">
This optimization updates the system's package lists, upgrades installed packages, and configures Proxmox
repositories. It also includes additional steps to properly set up Debian repositories and disable certain
warnings.
</p>
<p className="mb-4">
<strong>Why it's beneficial:</strong> Keeping your system up-to-date is essential for security, stability, and
performance. This optimization ensures you have the latest patches and features, while also configuring the
correct repositories for Proxmox VE, enabling access to necessary updates and tools.
</p>
<h4 className="text-lg font-semibold mb-2">To apply this optimization manually, run:</h4>
<CopyableCode
code={`
# Disable enterprise Proxmox repository
if [ -f /etc/apt/sources.list.d/pve-enterprise.list ]; then
sudo sed -i 's/^deb/#deb/g' /etc/apt/sources.list.d/pve-enterprise.list
fi
# Disable enterprise Proxmox Ceph repository
if [ -f /etc/apt/sources.list.d/ceph.list ]; then
sudo sed -i 's/^deb/#deb/g' /etc/apt/sources.list.d/ceph.list
fi
# Enable free public Proxmox repository
echo "deb http://download.proxmox.com/debian/pve $(lsb_release -cs) pve-no-subscription" | sudo tee /etc/apt/sources.list.d/pve-public-repo.list
# Enable Proxmox testing repository
echo "deb http://download.proxmox.com/debian/pve $(lsb_release -cs) pvetest" | sudo tee /etc/apt/sources.list.d/pve-testing-repo.list
# Configure main Debian repositories
cat <<EOF | sudo tee /etc/apt/sources.list
deb http://deb.debian.org/debian $(lsb_release -cs) main contrib non-free non-free-firmware
deb http://deb.debian.org/debian $(lsb_release -cs)-updates main contrib non-free non-free-firmware
deb http://security.debian.org/debian-security $(lsb_release -cs)-security main contrib non-free non-free-firmware
EOF
# Disable non-free firmware warnings
echo 'APT::Get::Update::SourceListWarnings::NonFreeFirmware "false";' | sudo tee /etc/apt/apt.conf.d/no-bookworm-firmware.conf
# Update and upgrade
sudo apt-get update
sudo apt-get dist-upgrade -y
# Update PVE application manager
pveam update
# Install additional packages
sudo apt-get install -y zfsutils-linux proxmox-backup-restore-image chrony
`}
/>
</section>
<section className="mt-12 p-4 bg-blue-100 rounded-md">
<h2 className="text-xl font-semibold mb-2">Automatic Application</h2>
@ -297,3 +274,4 @@ sudo apt-get install -y zfsutils-linux proxmox-backup-restore-image chrony
</div>
)
}