Manage portable MySQL, MariaDB & PostgreSQL instances on Windows β without traditional installation.
Database Starter is a WPF desktop application that allows you to install, start, stop, and uninstall portable database servers directly on your local machine β without administrator privileges and without Windows services.
The application manages standalone, portable instances of the following database engines:
| Engine | Supported Versions | Default Port |
|---|---|---|
| π¬ MySQL | 9.5.0, 8.4.7, 8.0.44 | 3306 |
| π¦ MariaDB | 12.2.2, 11.8.6, 11.4.10, 10.11.16 | 3307 |
| π PostgreSQL | 18.3, 17.9, 16.13, 16.3, 15.17 | 5432 |
- One-Click Installation β Downloads the official portable distribution and extracts it automatically
- Version Selection β A specific version per engine can be selected before installation
- Start / Stop β Database processes are started and stopped directly as local processes
- Uninstallation β Cleanly removes all files of an instance from the system
- Progress Indicator β Download progress in percent with status display during installation
- Live Status β Colored status indicators (π΄ Not installed / π‘ Installing / π’ Running / π΅ Stopped)
- Log Output β Integrated, expandable log per database instance
- Settings β Configuration (paths, ports, versions) is automatically persisted in
settings.json - Graceful Shutdown β When the application exits, all running servers are shut down gracefully
- Localization β Available in German and English (auto-detected from system language)
The application uses a modern dark theme in Catppuccin style with cards for each database engine.
- Windows 10/11 (x64)
- .NET 10.0 Runtime (or SDK for building from source)
βΉοΈ No administrator privileges are required. All database files are stored under
%LOCALAPPDATA%\DatabaseStarter.
- Download the latest release from the Releases page
- Extract the archive to any directory
- Run
DatabaseStarter.exe
# Clone repository
git clone https://github.com/<user>/DatabaseStarter.git
cd DatabaseStarter
# Build
dotnet build -c Release
# Run
dotnet run --project DatabaseStarter- Select Version β Choose the desired database version from the dropdown
- Install β Click
π₯ Installto download and set up the portable distribution - Start β After installation, the server can be started with
βΆ Start - Connect β Connect with your preferred client to
localhostand the displayed port - Stop β Stop the server with
βΉ Stop - Uninstall β Remove the instance with
π Uninstall(only possible when the server is stopped)
DatabaseStarter/
βββ DatabaseStarter.sln # Solution file
βββ DatabaseStarter/ # WPF main project
βββ App.xaml(.cs) # Application entry point with controlled startup & config validation
βββ MainWindow.xaml(.cs) # Main window (UI)
βββ Converters/
β βββ Converters.cs # WPF Value Converters (Status β Color, etc.)
βββ Data/
β βββ database-versions.json # Version catalog per engine incl. download URLs and extract folders
βββ Models/
β βββ AppSettings.cs # Persisted application settings
β βββ DatabaseDefaults.cs # Loads and validates the external version catalog; provides defaults and helpers
β βββ DatabaseEngine.cs # Enum: MySQL, MariaDB, PostgreSQL
β βββ DatabaseInstanceInfo.cs # Instance configuration (path, port, version, β¦)
β βββ DatabaseStatus.cs # Enum: NotInstalled, Installing, Installed, Running
β βββ DatabaseVersionInfo.cs # Version information incl. download URL
βββ Resources/
β βββ Strings.resx # Localized strings (default / English)
β βββ Strings.de.resx # Localized strings (German)
β βββ Strings.Designer.cs # Auto-generated resource accessor
βββ Services/
β βββ IDatabaseEngineService.cs # Interface for engine-specific operations
β βββ MySqlEngineService.cs # MySQL implementation
β βββ MariaDbEngineService.cs # MariaDB implementation
β βββ PostgreSqlEngineService.cs # PostgreSQL implementation
β βββ DownloadService.cs # HTTP download with progress reporting
β βββ ProcessService.cs # Process management (start/stop)
β βββ SettingsService.cs # JSON-based settings management
βββ ViewModels/
βββ MainViewModel.cs # Main window ViewModel
βββ DatabaseViewModel.cs # ViewModel per database card
βββ ViewModelBase.cs # INotifyPropertyChanged base class
βββ RelayCommand.cs # ICommand implementation
Database Starter uses two JSON-based configuration files located next to the application output:
settings.jsonβ persisted user settings such as base path, selected language, versions, ports and install locationsData/database-versions.jsonβ central version catalog for MySQL, MariaDB and PostgreSQL, including download URLs and extract folders
User settings are automatically saved in settings.json in the application directory:
{
"BasePath": "C:\\Users\\<User>\\AppData\\Local\\DatabaseStarter",
"Language": "en",
"Instances": [
{
"Engine": 0,
"Version": "8.4.7",
"InstallPath": "β¦\\mysql",
"DataDir": "β¦\\mysql\\data",
"Port": 3306,
"IsInitialized": false
}
]
}| Field | Description |
|---|---|
BasePath |
Base directory for all database installations |
Language |
UI language (en or de) |
Engine |
0 = MySQL, 1 = MariaDB, 2 = PostgreSQL |
Version |
Selected version of the engine |
InstallPath |
Installation directory of the portable binaries |
DataDir |
Data directory of the database |
Port |
TCP port the server listens on |
IsInitialized |
Whether the data directory has already been initialized |
The available database versions are configured in Data/database-versions.json and loaded at startup by DatabaseDefaults.
{
"MySQL": [
{
"version": "9.5.0",
"displayName": "MySQL 9.5.0",
"downloadUrl": "https://cdn.mysql.com/archives/mysql-9.5/mysql-9.5.0-winx64.zip",
"extractFolder": "mysql"
}
],
"MariaDB": [
{
"version": "12.2.2",
"displayName": "MariaDB 12.2.2",
"downloadUrl": "https://archive.mariadb.org/mariadb-12.2.2/winx64-packages/mariadb-12.2.2-winx64.zip",
"extractFolder": "mariadb"
}
],
"PostgreSQL": [
{
"version": "18.3",
"displayName": "PostgreSQL 18.3",
"downloadUrl": "https://get.enterprisedb.com/postgresql/postgresql-18.3-1-windows-x64-binaries.zip",
"extractFolder": "pgsql"
}
]
}Each engine entry contains an ordered list of versions. The first entry is treated as the default/recommended version.
| Field | Description |
|---|---|
version |
Technical version number used for matching and persistence |
displayName |
Human-readable label shown in the UI |
downloadUrl |
Download URL of the portable archive |
extractFolder |
Expected top-level folder name after extraction |
At application startup, App.xaml.cs triggers an early validation of Data/database-versions.json.
If the file is missing, malformed, or contains invalid entries (for example an invalid URL or empty engine list), the application shows a startup error dialog and exits cleanly.
- UI Framework: WPF (.NET 10.0)
- Architecture: MVVM (Model-View-ViewModel)
- Language: C# 13
- Persistence: System.Text.Json
- Localization: .resx resource files (German & English)
- Design: Catppuccin Mocha Dark Theme
Contributions are welcome! Here's how:
- Fork the repository
- Create a feature branch (
git checkout -b feature/my-feature) - Commit your changes (
git commit -m 'Feature: Description') - Push the branch (
git push origin feature/my-feature) - Create a Pull Request
This project is licensed under the MIT License.
- The downloaded database binaries are subject to the respective licenses of the vendors (Oracle/MySQL, MariaDB Foundation, PostgreSQL Global Development Group).
- This tool is intended for development and testing purposes β not for production use.
- The database processes run as local user processes, not as Windows services.