Automatic G-code archiving solution for Klipper 3D printers that offloads files to NAS after print completion and seamlessly fetches them for reprints.
- β Automatic Offloading: G-codes archived to NAS after successful prints
- β Seamless Reprints: Auto-fetch from NAS when reprinting from history
- β File Versioning: Timestamp-based versioning prevents accidental overwrites
- β Hybrid Resilience: Symlink + stub system works even when NAS is offline
- β Multi-NAS Support: Configure multiple NAS targets for redundancy
- β Smart Features: Background pre-fetch, progress indicators, notifications
- β Easy Setup: KIAUH-style interactive installer
- β Safe Operations: File locking, atomic operations, path sanitization
- Klipper + Moonraker installed
- NAS with NFS or SMB configured
- Python 3.7+
cd ~
git clone https://github.com/yourusername/kargo.git
cd kargo
./kargo.sh # Language selector (recommended)Or choose language directly:
./install.sh # English
./install_de.sh # DeutschFollow the interactive installer prompts to configure your NAS.
- Slicer uploads G-code β File stored on local eMMC/SD
- Print completes β File automatically copied to NAS
- Local file replaced β Symlink created pointing to NAS
- Reprint triggered β Auto-fetch from NAS to local storage
- Print starts β Works seamlessly, user sees no difference
Configuration is stored in ~/printer_data/config/moonraker.conf:
[nas_offload]
nas_mount_point: /mnt/nas
nas_gcodes_dir: /mnt/nas/klipper_gcodes
offload_mode: hybrid
offload_on_complete: TrueSee Configuration Reference for all options.
MIT License - see LICENSE
Contributions welcome! Please open an issue or PR.