简体中文 | English
Envora is a desktop local development environment manager for runtimes, services, and developer toolchains.
It helps you install and switch runtimes, start or stop services, edit common configuration files, manage local sites, and keep language-specific tools close at hand from a single friendly interface.
This project is moving toward open source. The codebase is still young, but the direction is clear: make local development environments lighter, more visible, and easier to share.
- Manage local runtimes, services, and developer toolchains from a desktop app.
- Install supported runtime versions with progress feedback.
- Set default versions and expose runtime binaries to your shell.
- Start, stop, restart, and inspect service status.
- View and clear service logs.
- Edit
php.ini,nginx.conf, virtual host configs, andmy.cnf. - Create Nginx virtual hosts and manage related
/etc/hostsentries. - Manage MySQL users and databases.
- Install, update, configure, and run Composer commands.
- Grow toward Node.js, Rust, Go, Java, npm, pnpm, yarn, and other toolchains.
- Switch between light, dark, and system themes.
Local development environments can become scattered across shell scripts, package managers, global services, hidden config files, and old runtime versions. Envora aims to make that state visible and manageable without forcing developers to give up the tools they already understand.
The goal is not to hide the tools developers already use. The goal is to put the important controls in one place, keep files editable, and make the local environment easier to reason about.
Envora is currently in early development.
The app already contains working PHP, Nginx, MySQL, Composer, service, configuration, virtual host, and settings screens, but the project is not yet a polished stable release. Some features may be macOS-first, platform support is still being refined, and release packaging is evolving.
If you try it, please expect sharp edges and report anything confusing. Those reports are valuable.
| Runtime or tool | Current support |
|---|---|
| PHP | Prebuilt packages for macOS via the envora-runtime-packages releases, official Windows archives |
| Nginx | Source download and local build |
| MySQL | Official MySQL Community Server archives |
| Composer | Envora-managed Composer plus system Composer detection |
| Node.js, Rust, Go, Java | Planned |
| npm, pnpm, yarn | Planned |
Runtime release packaging notes live in docs/release-runtimes.md.
Binary runtime assets are being split into a dedicated repository:
Simoon-F/envora-runtime-packages.
- Tauri 2 for the desktop shell and native integration
- Rust for runtime, service, download, and config management
- React and TypeScript for the interface
- Vite for frontend tooling
- Tailwind CSS and shadcn-style UI primitives
- SWR and Zustand for client-side data flow
- Node.js
- pnpm
- Rust toolchain
- Tauri system dependencies for your platform
For macOS runtime builds, Envora may also need Xcode Command Line Tools:
xcode-select --installWhen building Nginx locally, make sure common build tools and libraries are available on your system.
Clone the repository:
git clone https://github.com/Simoon-F/envora.git
cd envoraInstall dependencies:
pnpm installRun the Tauri development app:
pnpm tauri devBuild the frontend:
pnpm buildBuild the desktop app:
pnpm tauri build.
├── src/ # React app
│ ├── components/ # Layout, UI, and runtime detail components
│ ├── hooks/ # Tauri/SWR data hooks
│ ├── pages/ # Dashboard, runtimes, Composer, settings
│ ├── stores/ # Client-side state
│ └── types/ # Shared frontend types
├── src-tauri/ # Tauri and Rust backend
│ ├── assets/ # Default runtime config templates
│ └── src/
│ ├── commands/ # Tauri command handlers
│ ├── core/ # Platform helpers and shared errors
│ ├── download/ # Download and extraction logic
│ ├── runtime/ # PHP, Nginx, MySQL providers
│ ├── service/ # Service lifecycle management
│ └── settings/ # App settings and paths
└── docs/ # Project documentation
Contributions are welcome.
Because Envora is still taking shape, the most helpful contributions right now are:
- Clear bug reports with your operating system, architecture, and reproduction steps.
- Feedback about confusing flows or missing local-development features.
- Small, focused pull requests.
- Runtime packaging notes and platform-specific fixes.
- Documentation improvements.
Before opening a larger pull request, please start with an issue or discussion so we can align on the direction.
- Keep runtime behavior explicit. Envora should make local state easier to see, not harder.
- Prefer editable config files over opaque generated state.
- Keep platform differences visible in the Rust layer.
- Avoid broad rewrites while the app is stabilizing.
- Be careful with service processes, ports, filesystem writes, and shell environment changes.
- Improve cross-platform runtime and toolchain support.
- Add Node.js, Rust, Go, Java, npm, pnpm, yarn, and related tooling.
- Add clearer release packaging and update flows.
- Expand diagnostics for failed downloads, builds, and service starts.
- Improve first-run onboarding.
- Add tests around runtime providers and service lifecycle behavior.
- Publish stable installation packages.
The license has not been finalized yet.
If you plan to use Envora in another project, please wait until a license file is added or open an issue to discuss your use case.
Envora builds on the excellent work of the Tauri, Rust, React, PHP, Nginx, MySQL, Composer, and open source tooling communities.