2026-05-21 17:23:08 +02:00
|
|
|
from __future__ import annotations
|
|
|
|
|
|
2026-05-21 17:58:20 +02:00
|
|
|
from .components import _code_window
|
|
|
|
|
from .html_utils import SafeHtml, trusted
|
2026-05-21 17:23:08 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
def _linux_installer_section(base_url: str) -> SafeHtml:
|
|
|
|
|
base_url = base_url.rstrip("/")
|
|
|
|
|
system_install = f"curl -fsSL {base_url}/install.sh | sudo sh"
|
|
|
|
|
system_uninstall = f"curl -fsSL {base_url}/uninstall.sh | sudo sh"
|
2026-05-22 17:05:06 +02:00
|
|
|
return trusted(f"""
|
2026-05-21 17:23:08 +02:00
|
|
|
<section class="section" id="linux-installer">
|
|
|
|
|
<div class="container narrow">
|
|
|
|
|
<div class="text-center mb-4">
|
|
|
|
|
<p class="eyebrow">Linux cron updater</p>
|
|
|
|
|
<h2>Linux updater.</h2>
|
2026-06-17 23:17:31 +02:00
|
|
|
<p class="section-copy mx-auto">
|
|
|
|
|
Run this on a Linux box that is always on. It creates and registers a hostname,
|
|
|
|
|
installs the updater, schedules cron, and prints your private dashboard link.
|
|
|
|
|
Works with Debian, Ubuntu, Fedora, Arch, Alpine, and Proxmox hosts.
|
|
|
|
|
</p>
|
2026-05-21 17:23:08 +02:00
|
|
|
</div>
|
|
|
|
|
<div class="installer-commands">
|
|
|
|
|
<div class="installer-command">
|
|
|
|
|
<h3>Install</h3>
|
|
|
|
|
<p class="section-copy">Sets up the updater and cron job.</p>
|
|
|
|
|
{_code_window(system_install, copy_label="install command", class_name="mt-3")}
|
|
|
|
|
</div>
|
|
|
|
|
<div class="installer-command">
|
|
|
|
|
<h3>Uninstall</h3>
|
|
|
|
|
<p class="section-copy">Stops the updater and leaves private URLs on disk.</p>
|
|
|
|
|
{_code_window(system_uninstall, copy_label="uninstall command", class_name="mt-3")}
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</section>
|
2026-05-22 17:05:06 +02:00
|
|
|
""")
|