mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2026-07-26 18:38:30 +00:00
166 lines
12 KiB
JSON
166 lines
12 KiB
JSON
{
|
||
"meta": {
|
||
"title": "ProxMenux Post-Install: Optional Settings",
|
||
"description": "Guide to Optional Settings in the ProxMenux post-install script for additional Proxmox VE features and optimizations.",
|
||
"ogTitle": "ProxMenux Post-Install: Optional Settings",
|
||
"ogDescription": "Guide to Optional Settings in the ProxMenux post-install script for additional Proxmox VE features and optimizations.",
|
||
"ogImageAlt": "ProxMenux Post-Install Optional Settings"
|
||
},
|
||
"title": "Optional Settings",
|
||
"intro": "The <strong>Optional Settings</strong> category provides additional features and optimizations that you can choose to apply to your Proxmox VE installation. These settings are not essential but can enhance your system's capabilities in specific scenarios.",
|
||
"available": "Available Optional Features",
|
||
"ceph": {
|
||
"title": "Add Latest Ceph Support",
|
||
"intro": "This option installs the latest Ceph storage system support for Proxmox VE. Ceph is a distributed storage system that provides high performance, reliability, and scalability.",
|
||
"doesIntro": "What it does:",
|
||
"doesItems": [
|
||
"Adds the Ceph repository to your system",
|
||
"Updates package lists",
|
||
"Installs Ceph packages using the 'pveceph install' command",
|
||
"Verifies the installation"
|
||
],
|
||
"howUse": "How to use: After installation, you can configure and manage Ceph storage using the Proxmox VE web interface or command-line tools.",
|
||
"automates": "This adjustment automates the following commands:"
|
||
},
|
||
"amd": {
|
||
"title": "Apply AMD CPU Fixes",
|
||
"intro": "This option applies specific fixes for AMD EPYC and Ryzen CPUs to improve stability and compatibility.",
|
||
"doesIntro": "What it does:",
|
||
"doesItems": [
|
||
"Detects if an AMD EPYC or Ryzen CPU is present",
|
||
"Applies kernel parameter 'idle=nomwait' to prevent random crashes",
|
||
"Configures KVM to ignore certain MSRs (Model Specific Registers) for better Windows guest compatibility",
|
||
"Installs the latest Proxmox VE kernel"
|
||
],
|
||
"howUse": "How to use: These fixes are applied automatically and require a system reboot to take effect.",
|
||
"automates": "This adjustment automates the following commands:"
|
||
},
|
||
"ha": {
|
||
"title": "Enable High Availability Services",
|
||
"intro": "This option enables High Availability (HA) services in Proxmox VE, allowing for automatic failover of VMs and containers in case of node failure.",
|
||
"doesIntro": "What it does:",
|
||
"doesItems": [
|
||
"Enables and starts the pve-ha-lrm (Local Resource Manager) service",
|
||
"Enables and starts the pve-ha-crm (Cluster Resource Manager) service",
|
||
"Enables and starts the corosync service for cluster communication"
|
||
],
|
||
"howUse": "How to use: After enabling these services, you can configure HA groups and resources in the Proxmox VE web interface.",
|
||
"automates": "This adjustment automates the following commands:"
|
||
},
|
||
"testing": {
|
||
"title": "Enable Proxmox Testing Repository",
|
||
"intro": "This option enables the Proxmox testing repository, allowing access to the latest, potentially unstable versions of Proxmox VE packages.",
|
||
"doesIntro": "What it does:",
|
||
"doesItems": [
|
||
"Adds the Proxmox testing repository to the system's package sources",
|
||
"Creates a new file in /etc/apt/sources.list.d/ for the testing repository",
|
||
"Updates the package lists to include packages from the new repository"
|
||
],
|
||
"howUse": "How to use: After enabling this repository, you can update and upgrade your system to get the latest testing versions of Proxmox VE packages. Use with caution as these versions may be unstable.",
|
||
"manualIntro": "To manually add the Proxmox testing repository, you can use these commands:",
|
||
"noteLabel": "Note:",
|
||
"noteBody": "$(lsb_release -cs) automatically detects your Proxmox VE version codename (e.g., bullseye).",
|
||
"warnLabel": "Warning:",
|
||
"warnBody": "Enabling the testing repository may lead to system instability. It's recommended for testing environments only."
|
||
},
|
||
"fastfetch": {
|
||
"title": "Install and Configure Fastfetch",
|
||
"intro": "This option silently installs and configures Fastfetch, a system information tool that displays system specs and a custom logo at login.",
|
||
"doesLabel": "What it does:",
|
||
"doesItems": [
|
||
"Silently downloads and installs the latest version of Fastfetch",
|
||
"Allows you to choose a custom logo (<strong>ProxMenux, Proxmox, Helper-Scripts, Home-Labs-Club, Proxmology</strong>, or a custom one)",
|
||
"Configures Fastfetch to display <em>\"System optimised by ProxMenux\"</em>",
|
||
"Sets up Fastfetch to run automatically at console login"
|
||
],
|
||
"importantLabel": "Important:",
|
||
"importantBody": "If you connect to Proxmox via SSH, you should select the <strong>Proxmox</strong> logo or create a custom one using <code>jp2a</code> or <code>img2txt</code>. The other logos are generated using <code>chafa</code> and may not display correctly in a standard SSH session.",
|
||
"customLabel": "Custom Logos:",
|
||
"customBody1": "To use a custom logo, place your ASCII art text file in: <code>/usr/local/share/fastfetch/logos/</code>",
|
||
"customBody2": "You can create custom logos using tools like <code>chafa</code>, <code>jp2a</code>, or <code>img2txt</code>.",
|
||
"customBody3": "For best results:",
|
||
"customItems": [
|
||
"Keep the logo height to 35 lines or less to maintain proportions and fit in the terminal",
|
||
"Use <code>chafa</code> for color logos (may not display correctly in SSH sessions)",
|
||
"Use <code>jp2a</code> or <code>img2txt</code> for SSH-compatible logos"
|
||
],
|
||
"examplesLabel": "Example Logos:",
|
||
"logos": [
|
||
{
|
||
"name": "ProxMenux",
|
||
"alt": "ProxMenux Logo",
|
||
"src": "https://macrimi.github.io/ProxMenux/fastfetch/proxmenux.png"
|
||
},
|
||
{
|
||
"name": "Proxmox",
|
||
"alt": "Proxmox Logo",
|
||
"src": "https://macrimi.github.io/ProxMenux/fastfetch/proxmox.png"
|
||
},
|
||
{
|
||
"name": "JC Channel",
|
||
"alt": "JC Channel Logo",
|
||
"src": "/fastfetch/jc-channel.png"
|
||
},
|
||
{
|
||
"name": "Helper-Scripts",
|
||
"alt": "Helper-Scripts Logo",
|
||
"src": "https://macrimi.github.io/ProxMenux/fastfetch/helper-scripts.png"
|
||
},
|
||
{
|
||
"name": "Home-Labs-Club",
|
||
"alt": "Home-Labs-Club Logo",
|
||
"src": "https://macrimi.github.io/ProxMenux/fastfetch/home-labs-club.png"
|
||
},
|
||
{
|
||
"name": "Proxmology",
|
||
"alt": "Proxmology Logo",
|
||
"src": "https://macrimi.github.io/ProxMenux/fastfetch/proxmology.png"
|
||
}
|
||
],
|
||
"automates": "This adjustment automates the following commands:"
|
||
},
|
||
"figurine": {
|
||
"title": "Install and Configure Figurine",
|
||
"intro": "This option installs and configures Figurine, a tool that creates stylish ASCII text banners for your terminal, displaying your hostname in a visually appealing 3D format.",
|
||
"doesLabel": "What it does:",
|
||
"doesItems": [
|
||
"Downloads and installs Figurine v2.0.0 from GitHub",
|
||
"Creates a welcome message that displays your hostname in 3D ASCII art when you log in",
|
||
"Automatically removes any previous Figurine installation if present",
|
||
"Sets up the welcome message to run automatically at login"
|
||
],
|
||
"practicalLabel": "Practical Use:",
|
||
"practicalBody": "When managing multiple Proxmox nodes in a cluster, Figurine provides an immediate visual indication of which node you're currently logged into. This helps prevent accidental commands on the wrong node and improves your workflow when managing multiple servers.",
|
||
"exampleLabel": "Example Output:",
|
||
"imageAlt": "Figurine Example Output",
|
||
"automates": "This adjustment automates the following process:",
|
||
"outro": "After installation, you'll see your hostname displayed in 3D ASCII art each time you log in, making it immediately clear which Proxmox node you're working on."
|
||
},
|
||
"log2ram": {
|
||
"title": "Install Log2RAM (SSD/NVMe wear reduction)",
|
||
"intro": "Log2RAM mounts <code>/var/log</code> on a tmpfs ramdisk and periodically syncs the contents back to the underlying disk. On a hypervisor journald churn hits the root SSD every few seconds; moving the writes to RAM reduces wear and disk I/O without losing logs — the periodic sync flushes them to disk and a clean shutdown flushes them too.",
|
||
"upstreamLabel": "Upstream project:",
|
||
"upstreamUrl": "https://github.com/azlux/log2ram",
|
||
"upstreamLinkLabel": "azlux/log2ram on GitHub",
|
||
"doesLabel": "What ProxMenux does:",
|
||
"doesItems": [
|
||
"Detects whether the root disk is SSD/NVMe by reading <code>/sys/block/<dev>/queue/rotational</code>. On a rotational disk the Automated flow asks first before installing.",
|
||
"Clones the upstream repository (<code>azlux/log2ram</code>) into <code>/tmp/log2ram</code> and patches its <code>install.sh</code>, replacing <code>rsync -aAXv</code> with <code>rsync -aXv --no-acls</code>. That adjustment avoids the <em>set_acl: Operation not supported</em> exit 23 failure that the vanilla script triggers when moving /var/log on filesystems without ACL support. The <code>log2ram</code> systemd unit is enabled after install.",
|
||
"Sizes the ramdisk based on host RAM: <code>≤ 8 GB → 128M</code>, <code>≤ 16 GB → 256M</code>, <code>> 16 GB → 512M</code>. Writes the value to <code>SIZE=</code> in <code>/etc/log2ram.conf</code>.",
|
||
"Schedules a periodic disk sync via <code>/etc/cron.d/log2ram</code>: every 1h / 3h / 6h according to the same RAM tier.",
|
||
"Installs an auto-sync guard at <code>/usr/local/bin/log2ram-check.sh</code>, wired to <code>/etc/cron.d/log2ram-auto-sync</code> to run every 10 minutes. When <code>/var/log</code> reaches 80% of the ramdisk size the guard vacuums journald; at 92% it first runs <code>logrotate -f /etc/logrotate.d/proxmox-backup-api</code> when that file exists (forcing rotation of the PBS API logs, typically the largest consumer on a host running PBS) and then truncates <code>pveproxy access/error</code> and <code>pveam.log</code> before syncing. The plain <code>log2ram write</code> command copies tmpfs to disk but does NOT shrink the tmpfs, so this guard prevents PVE from crashing with <em>No space left on device</em> when logs grow uncontrolled.",
|
||
"Detects whether <code>proxmox-backup-server</code> runs as a service on the host. When present, drops <code>/etc/logrotate.d/proxmox-backup-api</code> (20 MB × 3 rotation) and <code>/etc/cron.hourly/proxmox-backup-logrotate</code>, so the PBS API logs — the usual source of growth on a PBS host — stay bounded even between Log2RAM's periodic syncs. On hosts without PBS this step is a no-op.",
|
||
"Adjusts systemd-journald limits (<code>SystemMaxUse</code>, <code>RuntimeMaxUse</code>) to fit within the ramdisk so a single burst cannot fill it.",
|
||
"Registers itself in <code>installed_tools.json</code> so it can be reverted from Uninstall Optimizations."
|
||
],
|
||
"howUseLabel": "How to use:",
|
||
"howUseBody": "On the Automated flow Log2RAM applies unattended when an SSD/NVMe root is detected. On the Customizable flow the script prompts for size, sync interval and whether to enable the 90% auto-sync guard.",
|
||
"verifyLabel": "Verify and manage from the shell:",
|
||
"verifyCode": "# Service state and configured timers\nsystemctl status log2ram\nsystemctl list-timers log2ram*\n\n# Current ramdisk usage — /var/log IS the tmpfs itself\ndf -h /var/log\n\n# Force a sync now (tmpfs → disk); does NOT shrink the tmpfs\nlog2ram write\n\n# Trigger the auto-sync guard on demand (vacuum + sync when usage is high)\n/usr/local/bin/log2ram-check.sh\n\n# Current config: SIZE, mail settings, path\ncat /etc/log2ram.conf\n\n# ProxMenux-specific cron jobs\ncat /etc/cron.d/log2ram /etc/cron.d/log2ram-auto-sync\n\n# Recent Log2RAM activity\njournalctl -u log2ram -n 50 --no-pager"
|
||
},
|
||
"autoApplication": {
|
||
"title": "Automatic Application",
|
||
"body": "These optional features are applied only when specifically selected during the post-install process. Each feature can be individually chosen based on your specific needs and preferences."
|
||
}
|
||
}
|