HTTPS for every local site
Add a site and it gets a certificate from a local CA that DevsPro creates and adds to your system's trust store for you.
DevsPro runs nginx or Apache sites with trusted HTTPS, Docker, databases, queue workers, mail, logs and ports from one desktop app for Linux and Windows. Anything that needs root or administrator rights goes through one small helper that can only do a fixed list of things.
Also for Linux: .deb · .rpm Also for Windows: 64-bit installer
Add a site and it gets a certificate from a local CA that DevsPro creates and adds to your system's trust store for you.
Containers, compose stacks, databases with admin UIs, queue workers, scheduled tasks and a mail catcher, each with its logs.
Which process holds which port, which app holds your RAM, and where the disk space went.
Terminal, SSH and SFTP, a database browser, an HTTP client, a browser and terminal AI agents, with a terminal docked beside any page.
Open a module from the sidebar or the launcher (Ctrl+K), or Ctrl+click it to open it in a window of its own. A module you switch off in Settings isn't loaded at all.
Things with a lifecycle you start, stop and remove.
Proxy-to-port and Laravel sites with trusted HTTPS, served by nginx or Apache, including XAMPP, WAMP and Laragon installs. PHP versions, an optional Cloudflare tunnel, and a New Project wizard.
Containers and compose stacks: start, stop, restart, logs, bulk actions and published ports. If Docker isn't running, start it from the page.
MySQL, PostgreSQL, MongoDB and Redis in their own compose project, each with an admin UI, users, backup and restore.
Browse and edit rows in any MySQL or PostgreSQL database, local or remote, with a SQL console and export.
Outgoing mail from local apps lands in Mailpit, built in or in Docker. No Docker needed, and it can start with DevsPro.
Any command kept running in the background, like a Laravel queue worker, with its output as a console or a table.
Recurring commands on a schedule, with each run's output and, for a failed run, the matching Laravel log entry.
Browse keys by pattern and watch Laravel queues: pending, delayed and reserved.
The home screen, and read-mostly views onto the machine.
Live CPU per core, memory, GPU, storage, network and temperatures, with a health summary, and port conflicts when there are any.
What is listening on which port, and stop it.
See which apps use your RAM, stop them, and let a watchdog close idle ones when memory runs out.
Tail nginx access and error logs and Laravel logs per site.
Send any request to your local sites, trusted through the app's own CA, with a history to rerun.
Tabs, split view, bookmarks, saved logins, history, device presets and the Web Inspector, in a native webview.
The machine, your files and servers, and the app itself.
Find what is eating disk space (caches, Docker, large files, project junk) with a storage map, and clear it after a review.
Install dev tooling: nginx, Docker, PHP, Node and nvm, MySQL, PostgreSQL, Python, Git, Claude Code, Codex CLI, cloudflared and more. On Windows, pick the Docker Desktop version.
A Finder-style explorer with your drives and devices, and editor tabs with syntax highlighting, git blame and diffs.
Compare two .env files by variable and copy values across.
Edit the hosts file entry by entry, with DevsPro's own lines told apart from the system's.
Saved hosts, key generation, and installing a key on a host.
Run Claude Code, Codex, Gemini CLI, OpenCode and other terminal coding agents in a project folder.
Local and SSH shells with split panes, windows and pop-out, a file browser that follows the shell, and a terminal docked beside any page.
A two-pane file browser for a saved host, with favourite folders, multi-select and Download as zip.
VNC screens viewed in-app, and RDP sessions in your system's RDP client.
Theme and interface size, which modules load, autostart and tray, your external editor, updates, and backup and restore.
The New Project wizard scaffolds Laravel, adds the site, creates a database, writes .env and runs migrations, reporting each step as it goes.
Illustration drawn from the app.
See how much space you can free, grouped by risk: package caches, Docker leftovers, large files and the biggest folders, and node_modules or target in projects you haven't touched in a while. The Storage map shows any folder or drive as a treemap you can zoom into.
Illustration drawn from the app. The sizes are examples.
A tmux-style terminal with split panes and windows, docked beside any page with Ctrl+`, saved SSH hosts and SFTP, and a launcher for terminal coding agents. Each agent opens in its own tab in the project folder you pick; DevsPro sees which are installed and installs the missing ones.
Illustration
DevsPro itself never runs elevated. Anything that needs root or administrator
rights (web server config, the hosts file, the certificate trust store, package
installs) goes through one small helper binary that applies a declared manifest
of operations and exits. On Linux it is started with pkexec; on
Windows, through a UAC prompt.
run this command
On Windows the installer puts DevsPro and its helper in Program Files, where only
administrators can write, so no other program can swap the helper before DevsPro
elevates it. On Linux, what doesn't need root doesn't get it: nvm installs into
~/.nvm, npm globals go to your own npm prefix, and binaries like
cloudflared land in ~/.local/bin.
{
"allowed_write_prefix": "/home/you/.local/share/com.soab.devspro",
"operations": [
{ "type": "EnsureNginxConfDInclude",
"conf_d_dir": "/etc/nginx/conf.d",
"sites_glob":
"/home/you/.local/share/com.soab.devspro/nginx/sites/*.conf" },
{ "type": "SyncMarkedBlock",
"file_path": "/etc/hosts",
"marker_begin": "# >>> devspro (do not edit this block manually) >>>",
"marker_end": "# <<< devspro <<<",
"block_lines": ["127.0.0.1 shop.test"] },
{ "type": "RunNginxTest", "binary_path": "/usr/sbin/nginx" },
{ "type": "ReloadNginx", "binary_path": "/usr/sbin/nginx" }
]
}
// The first failed step stops the rest: a config that
// fails nginx -t is never reloaded.
Where Windows works differently, DevsPro does too, and the app says so rather than pretending otherwise.
| What | Linux | Windows |
|---|---|---|
| Elevation | pkexec, with the polkit policy the package installs | UAC |
| PHP for Laravel sites | PHP-FPM pools under /run/php | php-cgi.exe, which DevsPro starts itself on a port per PHP version |
| nginx wiring | A drop-in file in conf.d | One include added inside http{}, since Windows nginx has no conf.d |
| Trusting the local CA | The OS store and NSS, so Firefox and Chrome both trust it | The Windows Root store: Chrome and Edge trust it; Firefox needs security. |
| Stopping a worker | SIGTERM, so it can finish the job it's on | Forced, because Windows gives a GUI app no way to ask a console program to wind down |
| Apache wiring | A drop-in file in conf.d or conf-enabled | One Include added to httpd.conf |
| Apache reload | systemctl reload, else apachectl -k graceful | A running Apache (Laragon, XAMPP) is restarted without elevation |
| nginx not running | Reloaded through systemd | DevsPro writes the config and tells you to start nginx; it won't start it for you |
| Scheduled tasks | A block in your crontab | Task Scheduler |
| Installing tools | apt, dnf or pacman | winget, which can also install a chosen version |
| Listening ports | ss and /proc | GetExtendedTcpTable; the full command line isn't shown, as Windows keeps it out of reach |
DevsPro looks for a new version when it starts, every six hours after that, and whenever you ask in Settings → Updates. When one is out, the top bar says so. An update installs only if it was signed with the DevsPro release key, and never one older than what you have.
Reads the release feed and compares versions. You see the release notes before anything downloads.
Fetches the package that matches how you installed it (.deb, .rpm or the Windows installer) and checks its minisign signature.
The helper checks the signature itself against a key compiled into it, and refuses downgrades. On Linux, apt or rpm installs it after one password prompt; on Windows, the installer runs in passive mode, a progress bar only, after one UAC prompt.
DevsPro restarts on the new version, as you rather than elevated, with your sites, services and settings where you left them.
For 64-bit Linux and Windows. Install once by hand; after that DevsPro updates itself.
The .deb package.
sudo apt install ./DevsPro_*_amd64.deb
The .rpm package.
sudo dnf install ./DevsPro-*.x86_64.rpm
Needs pkexec (polkit), which both packages depend on. The package also installs the polkit policy that lets the helper ask for your password.
One installer: DevsPro_*_x64-setup.exe
DevsPro starts its helper with administrator rights. In Program Files only administrators can change that file, so a program running as you can't replace the helper and wait for DevsPro to elevate it. A per-user install would leave it writable.
Updates after this one install from inside DevsPro, checked against its own signing key first.
64-bit Linux and Windows. On Linux, the .deb is for Debian, Ubuntu, Pop!_OS and their relatives, and the .rpm is for Fedora and RHEL. On Windows there is one installer, DevsPro_<version>_x64-setup.exe. There is no macOS version.
Yes, every module does. A few things work differently because Windows does: elevation is a UAC prompt, Laravel sites run on php-cgi.exe that DevsPro starts on a port per PHP version, Firefox needs security. to trust the local CA, and stopping a worker ends it rather than letting it finish its job. The full list is under Linux and Windows.
The installer isn't code-signed yet; that needs a code-signing certificate. Until it is, SmartScreen shows “Windows protected your PC” the first time you run it: choose More info, then Run anyway.
Updates after that don't depend on Windows' signing: DevsPro checks each one against its own minisign key, and its elevated helper checks again before it runs the installer.
Elevation needs a polkit policy file in /usr/share/polkit-1/actions/, and only an installed package can put it there. Without it, every action that needs root (nginx config, /etc/hosts, the trust store, package installs) would fail, and that is most of the app.
Only the operations the helper knows: write files under one allowed prefix, sync a marked block in a file like /etc/hosts, install named packages, test and reload nginx or Apache, trust the local CA, fix a Laravel project's storage permissions, start or stop a system service, a few memory and disk cleanup tasks (the apt cache, journal and old snaps on Linux; Windows Temp, the Update and Delivery Optimization caches and crash dumps on Windows), and install a signed DevsPro update. Each run asks first: for your password through pkexec on Linux, with a UAC prompt on Windows. There is no operation that runs an arbitrary command.
No telemetry and no online account. Apart from the update check, DevsPro only goes online when you ask it to, for example to install a tool, open a tunnel or load a page in its browser. Your sites, services and settings stay on your machine (in ~/.local/share/com.soab.devspro on Linux), and Settings → Backup & restore exports them to one file.
DevsPro reads a small release feed, downloads the package that matches how you installed it, and checks its minisign signature. The elevated helper checks the signature again before it installs, so even a tampered download that got past the app would be refused, and it refuses anything older than the version you have.
On Linux you confirm with your password and apt or rpm installs the package. On Windows you approve one UAC prompt and the installer runs in passive mode, showing only a progress bar. Then DevsPro restarts on the new version, as you.
Nothing. DevsPro is free and released under the MIT license.
Only for the modules built on it: Docker, Databases and the Data browser, plus the Cleaner's Docker tab. The Mail Catcher runs Mailpit without Docker, and sites, workers, scheduled tasks, Redis, the terminal, Files and the rest work without it too.
If Docker isn't installed, those pages offer to install it from the Apps module (on Windows you can pick the Docker Desktop version). If it's installed but not running, a Start Docker button starts it and waits until it's ready.
Free for Linux and Windows. Install it once, and DevsPro keeps itself up to date from then on.