{"id":47666169,"url":"https://github.com/kayschima/databasestarter","last_synced_at":"2026-04-13T11:01:18.543Z","repository":{"id":345763388,"uuid":"1186547028","full_name":"kayschima/DatabaseStarter","owner":"kayschima","description":"Database-Starter-Tool for Windows","archived":false,"fork":false,"pushed_at":"2026-03-28T11:48:05.000Z","size":304,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-03T00:41:49.299Z","etag":null,"topics":["database-management","databases","mariadb","mysql","postgresql","windows"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kayschima.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-19T18:35:25.000Z","updated_at":"2026-03-28T11:40:08.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/kayschima/DatabaseStarter","commit_stats":null,"previous_names":["kayschima/databasestarter"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/kayschima/DatabaseStarter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kayschima%2FDatabaseStarter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kayschima%2FDatabaseStarter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kayschima%2FDatabaseStarter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kayschima%2FDatabaseStarter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kayschima","download_url":"https://codeload.github.com/kayschima/DatabaseStarter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kayschima%2FDatabaseStarter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31749763,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T09:16:15.125Z","status":"ssl_error","status_checked_at":"2026-04-13T09:16:05.023Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["database-management","databases","mariadb","mysql","postgresql","windows"],"created_at":"2026-04-02T11:58:30.381Z","updated_at":"2026-04-13T11:01:18.531Z","avatar_url":"https://github.com/kayschima.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🗄️ Database Starter\n\n\u003e Manage portable MySQL, MariaDB \u0026 PostgreSQL instances on Windows — without traditional installation.\n\n![Version](https://img.shields.io/badge/Version-0.1.4-blue)\n![.NET](https://img.shields.io/badge/.NET-10.0-purple)\n![Platform](https://img.shields.io/badge/Platform-Windows-0078D6)\n![License](https://img.shields.io/badge/License-MIT-green)\n\n---\n\n## 📋 Overview\n\n**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.\n\nThe application manages standalone, portable instances of the following database engines:\n\n| Engine       | Supported Versions                  | Default Port |\n|--------------|-------------------------------------|--------------|\n| 🐬 MySQL     | 9.5.0, 8.4.7, 8.0.44              | 3306         |\n| 🦭 MariaDB   | 12.2.2, 11.8.6, 11.4.10, 10.11.16 | 3307         |\n| 🐘 PostgreSQL | 18.3, 17.9, 16.13, 16.3, 15.17    | 5432         |\n\n---\n\n## ✨ Features\n\n- **One-Click Installation** — Downloads the official portable distribution and extracts it automatically\n- **Version Selection** — A specific version per engine can be selected before installation\n- **Start / Stop** — Database processes are started and stopped directly as local processes\n- **Uninstallation** — Cleanly removes all files of an instance from the system\n- **Progress Indicator** — Download progress in percent with status display during installation\n- **Live Status** — Colored status indicators (🔴 Not installed / 🟡 Installing / 🟢 Running / 🔵 Stopped)\n- **Log Output** — Integrated, expandable log per database instance\n- **Settings** — Configuration (paths, ports, versions) is automatically persisted in `settings.json`\n- **Graceful Shutdown** — When the application exits, all running servers are shut down gracefully\n- **Localization** — Available in German and English (auto-detected from system language)\n\n---\n\n## 🖼️ Screenshots\n\n*The application uses a modern dark theme in Catppuccin style with cards for each database engine.*\n\n---\n\n## 🛠️ Prerequisites\n\n- **Windows 10/11** (x64)\n- [**.NET 10.0 Runtime**](https://dotnet.microsoft.com/download/dotnet/10.0) (or SDK for building from source)\n\n\u003e ℹ️ No administrator privileges are required. All database files are stored under `%LOCALAPPDATA%\\DatabaseStarter`.\n\n---\n\n## 🚀 Installation \u0026 Startup\n\n### Option 1: Download Release\n\n1. Download the latest release from the [Releases page](../../releases)\n2. Extract the archive to any directory\n3. Run `DatabaseStarter.exe`\n\n### Option 2: Build from Source\n\n```bash\n# Clone repository\ngit clone https://github.com/\u003cuser\u003e/DatabaseStarter.git\ncd DatabaseStarter\n\n# Build\ndotnet build -c Release\n\n# Run\ndotnet run --project DatabaseStarter\n```\n\n---\n\n## 📖 Usage\n\n1. **Select Version** — Choose the desired database version from the dropdown\n2. **Install** — Click `📥 Install` to download and set up the portable distribution\n3. **Start** — After installation, the server can be started with `▶ Start`\n4. **Connect** — Connect with your preferred client to `localhost` and the displayed port\n5. **Stop** — Stop the server with `⏹ Stop`\n6. **Uninstall** — Remove the instance with `🗑 Uninstall` (only possible when the server is stopped)\n\n---\n\n## 📁 Project Structure\n\n```\nDatabaseStarter/\n├── DatabaseStarter.sln              # Solution file\n└── DatabaseStarter/                 # WPF main project\n    ├── App.xaml(.cs)                # Application entry point with controlled startup \u0026 config validation\n    ├── MainWindow.xaml(.cs)         # Main window (UI)\n    ├── Converters/\n    │   └── Converters.cs            # WPF Value Converters (Status → Color, etc.)\n    ├── Data/\n    │   └── database-versions.json   # Version catalog per engine incl. download URLs and extract folders\n    ├── Models/\n    │   ├── AppSettings.cs           # Persisted application settings\n    │   ├── DatabaseDefaults.cs      # Loads and validates the external version catalog; provides defaults and helpers\n    │   ├── DatabaseEngine.cs        # Enum: MySQL, MariaDB, PostgreSQL\n    │   ├── DatabaseInstanceInfo.cs  # Instance configuration (path, port, version, …)\n    │   ├── DatabaseStatus.cs        # Enum: NotInstalled, Installing, Installed, Running\n    │   └── DatabaseVersionInfo.cs   # Version information incl. download URL\n    ├── Resources/\n    │   ├── Strings.resx             # Localized strings (default / English)\n    │   ├── Strings.de.resx          # Localized strings (German)\n    │   └── Strings.Designer.cs      # Auto-generated resource accessor\n    ├── Services/\n    │   ├── IDatabaseEngineService.cs    # Interface for engine-specific operations\n    │   ├── MySqlEngineService.cs        # MySQL implementation\n    │   ├── MariaDbEngineService.cs      # MariaDB implementation\n    │   ├── PostgreSqlEngineService.cs   # PostgreSQL implementation\n    │   ├── DownloadService.cs           # HTTP download with progress reporting\n    │   ├── ProcessService.cs            # Process management (start/stop)\n    │   └── SettingsService.cs           # JSON-based settings management\n    └── ViewModels/\n        ├── MainViewModel.cs         # Main window ViewModel\n        ├── DatabaseViewModel.cs     # ViewModel per database card\n        ├── ViewModelBase.cs         # INotifyPropertyChanged base class\n        └── RelayCommand.cs          # ICommand implementation\n```\n\n---\n\n## ⚙️ Configuration\n\nDatabase Starter uses two JSON-based configuration files located next to the application output:\n\n- `settings.json` — persisted user settings such as base path, selected language, versions, ports and install locations\n- `Data/database-versions.json` — central version catalog for MySQL, MariaDB and PostgreSQL, including download URLs and extract folders\n\n### `settings.json`\n\nUser settings are automatically saved in `settings.json` in the application directory:\n\n```json\n{\n  \"BasePath\": \"C:\\\\Users\\\\\u003cUser\u003e\\\\AppData\\\\Local\\\\DatabaseStarter\",\n  \"Language\": \"en\",\n  \"Instances\": [\n    {\n      \"Engine\": 0,\n      \"Version\": \"8.4.7\",\n      \"InstallPath\": \"…\\\\mysql\",\n      \"DataDir\": \"…\\\\mysql\\\\data\",\n      \"Port\": 3306,\n      \"IsInitialized\": false\n    }\n  ]\n}\n```\n\n| Field          | Description                                      |\n|----------------|--------------------------------------------------|\n| `BasePath`     | Base directory for all database installations    |\n| `Language`     | UI language (`en` or `de`)                       |\n| `Engine`       | 0 = MySQL, 1 = MariaDB, 2 = PostgreSQL          |\n| `Version`      | Selected version of the engine                   |\n| `InstallPath`  | Installation directory of the portable binaries  |\n| `DataDir`      | Data directory of the database                   |\n| `Port`         | TCP port the server listens on                   |\n| `IsInitialized`| Whether the data directory has already been initialized |\n\n### `Data/database-versions.json`\n\nThe available database versions are configured in `Data/database-versions.json` and loaded at startup by `DatabaseDefaults`.\n\n```json\n{\n  \"MySQL\": [\n    {\n      \"version\": \"9.5.0\",\n      \"displayName\": \"MySQL 9.5.0\",\n      \"downloadUrl\": \"https://cdn.mysql.com/archives/mysql-9.5/mysql-9.5.0-winx64.zip\",\n      \"extractFolder\": \"mysql\"\n    }\n  ],\n  \"MariaDB\": [\n    {\n      \"version\": \"12.2.2\",\n      \"displayName\": \"MariaDB 12.2.2\",\n      \"downloadUrl\": \"https://archive.mariadb.org/mariadb-12.2.2/winx64-packages/mariadb-12.2.2-winx64.zip\",\n      \"extractFolder\": \"mariadb\"\n    }\n  ],\n  \"PostgreSQL\": [\n    {\n      \"version\": \"18.3\",\n      \"displayName\": \"PostgreSQL 18.3\",\n      \"downloadUrl\": \"https://get.enterprisedb.com/postgresql/postgresql-18.3-1-windows-x64-binaries.zip\",\n      \"extractFolder\": \"pgsql\"\n    }\n  ]\n}\n```\n\nEach engine entry contains an ordered list of versions. The first entry is treated as the default/recommended version.\n\n| Field            | Description                                                      |\n|------------------|------------------------------------------------------------------|\n| `version`        | Technical version number used for matching and persistence       |\n| `displayName`    | Human-readable label shown in the UI                             |\n| `downloadUrl`    | Download URL of the portable archive                             |\n| `extractFolder`  | Expected top-level folder name after extraction                  |\n\nAt application startup, `App.xaml.cs` triggers an early validation of `Data/database-versions.json`.\nIf 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.\n\n---\n\n## 🏗️ Technology Stack\n\n- **UI Framework:** WPF (.NET 10.0)\n- **Architecture:** MVVM (Model-View-ViewModel)\n- **Language:** C# 13\n- **Persistence:** System.Text.Json\n- **Localization:** .resx resource files (German \u0026 English)\n- **Design:** Catppuccin Mocha Dark Theme\n\n---\n\n## 🤝 Contributing\n\nContributions are welcome! Here's how:\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/my-feature`)\n3. Commit your changes (`git commit -m 'Feature: Description'`)\n4. Push the branch (`git push origin feature/my-feature`)\n5. Create a Pull Request\n\n---\n\n## 📄 License\n\nThis project is licensed under the [MIT License](LICENSE).\n\n---\n\n## ⚠️ Notes\n\n- The downloaded database binaries are subject to the respective licenses of the vendors (Oracle/MySQL, MariaDB Foundation, PostgreSQL Global Development Group).\n- This tool is intended for **development and testing purposes** — not for production use.\n- The database processes run as local user processes, not as Windows services.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkayschima%2Fdatabasestarter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkayschima%2Fdatabasestarter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkayschima%2Fdatabasestarter/lists"}