3.2 KiB
WoW Backup
A lightweight, native-feeling desktop application to automatically backup World of Warcraft configuration data (WTF and Interface directories).
World of Warcraft stores all UI configurations, macros, keybindings, and addon data in the WTF/ and Interface/ folders. Losing this data due to game corruption, accidental deletion, or addon errors can mean losing years of customized setups. WoW Backup runs discreetly in the system tray, and automatically performs scheduled, timestamped backups (optionally compressed as ZIP archives).
Installation & Download
Pre-built binaries for macOS, Windows, and Linux are provided on each release.
👉 See here for download links and step-by-step installation instructions.
Key Features
- ⚙️ Smart Auto-Configuration: Automatically detects standard WoW install locations (supporting retail and classic directories) and validates folder permissions.
- ⏰ Automated & Scheduled Backups: Background scheduler ensures regular backups at a user-defined time.
- 📦 Compression & History Management: Supports both folder replication and ZIP compression, with automatic pruning of backups beyond the configured limit.
- 🎮 Game State Detection: Checks for running WoW processes before running backups to prevent file-locking conflicts.
- 🔔 Native OS Notifications: Notifies the user when backups start, succeed, fail, or are skipped.
- 🚀 Launch at Startup: Integrated with macOS LaunchAgents (
~/Library/LaunchAgents/) and Windows Registry (HKCU\...\Run). - 🎨 Theming & Customization: Dynamic theming supporting Light/Dark mode, with configurable accent colors.
Application Data Locations
The app uses a configuration file to store user preferences. This file and runtime logs are stored in the following locations:
- macOS:
~/Library/Application Support/WoWBackup/(Logs:.../logs/wowbackup.log) - Windows:
%APPDATA%\WoWBackup\(Logs:...\logs\wowbackup.log) - Linux:
~/.config/WoWBackup/(Logs:.../logs/wowbackup.log)
Tech Stack & Architecture
- Language & Runtime: Kotlin Multiplatform targeting Desktop (JVM, Java 17+)
- UI Framework: JetBrains Compose Multiplatform with Material 3 Design
- Architecture: MVVM with Kotlin Coroutines
- Scheduling:
io.github.kevincianfarini.cardiologist - Logging:
logback-classic+kotlin-logging-jvmwith daily rotation and archiving - Serialization: Settings stored in a JSON file using
kotlinx-serialization-json - Theming:
com.materialkolor:material-kolorfor dynamic palette generation
Build & Run
Prerequisites
- JDK 17 or higher installed
Development Run
- macOS / Linux:
./gradlew :composeApp:run - Windows:
.\gradlew.bat :composeApp:run
Package Application Distributions
- macOS DMG:
./gradlew :composeApp:packageDmg - Windows MSI:
.\gradlew.bat :composeApp:packageMsi - Linux DEB:
./gradlew :composeApp:packageDeb
License
This project is released into the public domain. See the LICENSE file or unlicense.org for details.