Files
kiauh/kiauh/extensions/moongate/__init__.py
T
750dba1dbe feat(extensions): add Moongate for Klipper (#809)
* feat(extensions): add Moongate for Klipper

Adds Moongate for Klipper as extension #15 (next free index after KAMP). Moongate pairs a printer with the Moongate Android app for secure remote access and print monitoring over a Cloudflare quick-tunnel fronted by an EdDSA auth proxy.

The extension is KIAUH-native for the parts KIAUH owns (Moonraker instance discovery, the install/remove confirmation dialogs, moonraker.conf backup, and the repo clone wired into the update manager) and delegates the heavy, security-sensitive install steps (cloudflared, the moongate-authproxy and moongate-tunnel systemd services, the Moonraker host rebind) to Moongate's own idempotent, non-interactive install/update/uninstall scripts so that logic stays maintained upstream in one place.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* fix(metadata): update index for Moongate extension

* refactor(moongate_extension): enhance error handling and update docstring for clarity

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: dw-0 <th33xitus@gmail.com>
2026-06-28 12:49:30 +02:00

35 lines
1.7 KiB
Python

# ======================================================================= #
# Copyright (C) 2020 - 2026 Dominik Willner <th33xitus@gmail.com> #
# Copyright (C) 2026 Paul Sharman <github.com/PEEKYPAUL> #
# #
# This file is part of KIAUH - Klipper Installation And Update Helper #
# https://github.com/dw-0/kiauh #
# #
# It integrates Moongate for Klipper: #
# https://github.com/PEEKYPAUL/Moongate #
# #
# This file may be distributed under the terms of the GNU GPLv3 license #
# ======================================================================= #
from pathlib import Path
# repository
MOONGATE_REPO = "https://github.com/PEEKYPAUL/moongate.git"
MOONGATE_REPO_URL = "https://github.com/PEEKYPAUL/Moongate"
# directories
MODULE_PATH = Path(__file__).resolve().parent
MOONGATE_DIR = Path.home().joinpath("moongate")
MOONGATE_PLUGIN_DIR = MOONGATE_DIR.joinpath("klipper-plugin")
# installer scripts shipped inside the cloned repo
MOONGATE_INSTALL_SCRIPT = MOONGATE_PLUGIN_DIR.joinpath("install.sh")
MOONGATE_UPDATE_SCRIPT = MOONGATE_PLUGIN_DIR.joinpath("update.sh")
MOONGATE_UNINSTALL_SCRIPT = MOONGATE_PLUGIN_DIR.joinpath("uninstall.sh")
# moonraker.conf sections the installer manages
MOONGATE_UPDATER_NAME = "update_manager moongate"
MOONGATE_CONFIG_SECTION = "moongate"
# default HTTP port the Mainsail/Fluidd UI is served on
MOONGATE_DEFAULT_PORT = 80