Small desktop tool to automatically backup WoW Addon configuration.
Built with Kotlin and Compose Multiplatform.
|
|
||
|---|---|---|
| .gitea/issue_template | ||
| .github/workflows | ||
| composeApp | ||
| docs | ||
| gradle | ||
| .gitignore | ||
| build.gradle.kts | ||
| gradle.properties | ||
| gradlew | ||
| gradlew.bat | ||
| INSTALL.md | ||
| README.md | ||
| settings.gradle.kts | ||
| UNLICENSE | ||
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 UNLICENSE file or unlicense.org for details.
