Changelog

Every release of Server Operator, from the initial launch to the latest update.

v2.6.0

Red Ink

2026-10-13

Mark your production servers so they show in red and ask you to type their name before anything risky runs. Deploys now really run in the background, with a live panel that follows them on every screen and a system notification when they finish. The server sidebar is reworked too.

Production mode

  • Mark any server as production from its settings, or with the shield button on its row in the sidebar. You turn it on and off yourself, and turning it off asks you to type the server name.
  • On a production server, risky actions ask you to type its name before they run: deploy, rollback, Docker kill and remove, firewall changes, database wipe and import, deleting rows and files, stopping nginx, and removing the server.
  • Production servers are marked in red: a line under the title bar with a Production badge, red server tabs, and red cards on the Servers page and in the deploy panel.

Live deploys

  • Deploys started from a .serop shortcut still stopped when you switched servers, because the background part of 2.5.1 was not finished. They now run in the background and keep going whatever screen or server you are on.
  • A deploy panel in the bottom-right corner shows every running deploy with its server, a timer and live output, on every screen. Expand it to read the last 300 lines, or cancel a shortcut deploy.
  • The Git deploy shows in the panel too, so its output is no longer lost when the terminal closes.
  • When a deploy ends while Serop is in the background, you get a system notification. Click it to open that deploy's output.
  • A long deploy no longer loses its SSH connection to the 5-minute idle timeout.

Server sidebar

  • Production servers are grouped at the top. Each server shows its connection type, whether it is open in a tab, and a Deploying indicator while a deploy runs on it.
  • A search box appears once you have more than five servers, and the row buttons can be reached with the keyboard.
  • Removing a server from the sidebar deleted it straight away. It now asks first.
v2.5.1

Background deploys

2026-10-13

Deploys and .serop shortcuts now run in the background, so they keep going when you switch screens. A new Background jobs list and pop-up notices show what is running and how it ended.

Background deploys

  • Deploys started from a .serop shortcut now run as background jobs instead of inside the terminal, so navigating to another screen no longer stops them.
  • If a background job cannot start, Serop falls back to running the command in the terminal.

Background jobs

  • The Deploy view lists your background jobs, refreshes them automatically, and lets you cancel a running job.
  • Open the log of any job to read its output, loading more as it grows.

Notifications

  • Pop-up notices appear anywhere in the app when a background deploy starts, finishes, fails or is cancelled.
  • Finished and failed notices have a button that opens the job log.
v2.5.0

Fresh Coat

2026-10-09

A clean-up of how Serop looks and reads, plus fixes for Docker and Logs on local folder projects. You can now choose which Groq model powers the AI helpers, and the riskiest database buttons ask before they run.

Docker and Logs

  • The Actions menu on containers and services opened but stayed invisible. It now appears where you click, and so do the other drop-down menus that share it.
  • A folder you add as a project now shows up in Docker and Logs. Serop checks the folder for a compose file and adds it for you. The Logs panel also has a Use project folder button.
  • Containers and services are rows with Start, Stop, Restart and Logs on the row itself. Pause, Kill, Remove and the shell and database clients are in the more-actions menu.
  • Kill, Remove and Restart all now ask you to confirm. Log views have a filter box and a Copy button, and the Logs panel can clear a tab.
  • The Docker sidebar lists the containers on your server with a running, paused or stopped dot. Docker and Deploy no longer repeat your server list once you are connected.

Look and feel

  • The app uses a clean system font for menus and labels. Code, paths, logs and the terminal stay monospace. Keyboard focus is clearly visible, scrollbars are softer, and animations calm down if your system asks for reduced motion.
  • Title bar menus open on hover once one is open, close with Escape, and show the right shortcuts for your system. Menus and drawers are solid instead of see-through. The About box shows the real version.
  • Server tabs show the connection type. The sidebar shows each server host or folder, and a green dot for the one you are connected to. The Overview page shows memory and disk as cards and explains why local projects have no stats.
  • Small all-caps labels, tiny text and pulsing badges were replaced across the app with readable, sentence-case wording. Empty states now say what to do next.
  • Settings lists the always-on core modules as a quiet list instead of eight greyed-out switches. Section titles are plain text, long theme names wrap instead of being cut off, and a custom theme's Edit and Remove buttons can be reached with the keyboard.
  • Confirmations and notices are now Serop dialogs instead of the plain system pop-ups. They match your theme, put the safe choice (Cancel) in focus for risky actions, close with Escape, and name the action on the button, like Delete or Turn off.
  • The Files sidebar has a new look when you are not connected: a terminal that cannot find your files, and a joke.

Files and editor

  • Press Cmd or Ctrl + S to save the open file.
  • Tabs show a dot when a file has unsaved changes. The file open in the editor is highlighted in the file tree. The toolbar no longer repeats the File menu, and the minimap is off.

Deploy

  • Deploy and Rollback now ask you to confirm. Deploy resets the server folder to the remote branch, and Rollback checks out an older commit. Stopping, disabling or restarting nginx in Server admin asks too.
  • Tabs are Terminal, Git deploy, Config creators and Server admin. The Git deploy form uses plain wording, the Deploy button matches the rest of the app, and Deploy history shows Succeeded or Failed with a Show output button.
  • The AI chat asks for your Groq key once and then shows Groq key saved with a Change link. Its empty state offers example prompts you can click. The suggested command button now says Run in terminal.

Firewall

  • Turning the firewall on without an Allow rule for SSH could lock you out of the server. Serop now warns first. Deleting the SSH rule, blocking port 22, or turning the firewall off also asks you to confirm, and presets list the rules they will add.
  • Deleting a firewall rule uses its number in UFW. Serop now checks that the number still points at the rule you clicked before deleting, and asks you to refresh if the list changed.
  • Ports, source addresses and subnets are checked before they are used in a command on the server. The tabs are Open ports, Firewall rules, Presets and Port scanner, with plain wording and no all-caps labels.

AI helpers

  • Choose the Groq model for Deploy chat and Config Creators from a drop-down next to your API key. Serop remembers your choice and loads the models available to your key. Deploy chat still falls back to other models if you hit a rate limit.

Database safety

  • Import Full SQL deletes everything in the database before importing, with no warning. It is now called Wipe and import, and asks you to confirm. Restoring a Cloudinary backup also asks first.
  • Connection buttons and messages use plain words, such as Connect, Disconnect and Connected via local port. Input fields show a focus outline for keyboard users.
v2.4.0

Open Canvas

2026-10-06

A redesign of Settings and the Servers page, plus a theme editor so you can build your own look inside Serop. Screens that need a server now explain themselves and let you connect right there.

Theme Editor

  • Create theme in Settings opens a drawer with colour pickers for 14 colours. The whole app recolours live as you edit. Save it, edit it later, or export it as a JSON file.
  • Settings is reorganised into Appearance, General and Feature Modules. Themes are shown as cards with a live preview, and the modules header stays visible while you scroll.
  • Window opacity now works on Linux. It fades the background layer only, so text stays sharp. Background blur now applies to Tokyo Night and custom themes, not only Glassy.

Servers

  • Servers are now cards with a Connect button instead of a table, and the page uses the full window width.
  • Adding and editing share one drawer with connection-type cards, fields that match the type, and clear messages under any field that needs fixing. Edits are saved only when you press Save changes.
  • Files, Docker, Database, Firewall, Deploy and Notes each show what they do and a list of servers to connect to when you are not connected. The Deploy panel no longer shows tools that need a server.
  • The button that opens General Notes in the editor now works, including with no server connected.
v2.3.0

Iron Palette

2026-10-04

Tightens security and adds custom themes. Serop now checks SSH server fingerprints, encrypts saved passwords with your system keychain, and keeps secrets out of its log file. Themes can be loaded from JSON files, including files shipped by an installer.

Security

  • SSH host key check. The first time you connect to a server, Serop shows its fingerprint and asks you to trust it. Later connections are silent if it matches.
  • If a server fingerprint changes, Serop stops and shows the old and new fingerprints before you decide. Fingerprints are saved in known_hosts.json in the app data folder.
  • Saved server passwords and the Cloudinary secret are encrypted with the system keychain (Keychain, Credential Manager, or the Linux keyring). Passwords saved by older versions are encrypted the next time the app saves.
  • Passwords stay plain text only on Linux systems with no keyring, because Electron has no real protection there.
  • The log file no longer records passwords, tokens or keys. Password-like text is scrubbed, long command output and SQL are cut to 200 characters, and failed SQL imports no longer log the statement. Old log entries stay until you clear the log.

Custom Themes

  • Import a theme from a JSON file in Settings (name, light or dark base, and colors). Any color you leave out comes from the base theme. A Template button downloads an example file.
  • Themes can also come from folders: the installer themes folder, the folder in the SEROP_THEMES_DIR environment variable, and a themes folder in the app data folder. Settings has Themes folder and Reload buttons.
  • Theme files are checked before use. Invalid colors, values like url(...), files over 20 KB, and more than 20 imported themes are refused with a clear message.
  • The terminal and editor follow custom theme colors.

Housekeeping

  • Removed a stray vite config timestamp file that was committed by mistake and ignored it in git.
v2.2.0

Steady Slate

2026-09-23

Improves the Serop Commands dropdown with most-recently-used ordering and a way to hide recipe files without touching your server, and lays the first foundation-primitives phase of a broader UI/UX modernization pass — shared Button, Input, Textarea, SectionLabel, Card, and EmptyState components now back several existing screens with no behavior change.

Serop Commands Dropdown

  • Selecting a .serop recipe file now promotes it to the top of the dropdown, so the one you used most recently is always closest at hand.
  • Added a hide/restore control on each recipe file in the dropdown — hiding is stored locally per project and never touches the .serop files on your server.

UI Foundation & Consistency

  • Introduced shared Button, Input, Textarea, SectionLabel, Card, and EmptyState components to replace hand-rolled, drifted styling across the app.
  • Standardized corner-radius usage app-wide: small controls now use a tighter radius, containers and text fields a slightly larger one, applied consistently everywhere the new components land.
  • Fixed a missing hover state on the "Run edited" deploy shortcut button so it matches every other primary action button in the app.
v2.1.0

Prism Break

2026-08-07

Adds Light and Tokyo Night themes with a visual theme picker, keeps terminals and the built-in editor in sync with the active theme, removes the native macOS menu in favor of title-bar shortcuts, surfaces terminal connection status, and makes file and folder creation inline in the file trees.

Theming & Appearance

  • Added Light and Tokyo Night themes alongside Default and Glassy Terminal, with a visual swatch-based theme picker in Settings.
  • Terminals and the built-in editor now follow the active theme background and accent colors.

Title Bar & Shortcuts

  • Removed the native macOS application menu and moved core actions into the app's custom title bar.
  • Added keyboard shortcuts (Cmd/Ctrl+Q/R/B/O for quit, reload, browser refresh, and open, plus Cmd/Ctrl+C/V/X/A/Z/Y for editing actions) with input-aware handling.

Terminal Reliability

  • Terminal tabs and project terminals now show live connection status with status dots and a "Session ended - Reconnect" banner when a shell drops.

File Trees

  • New File / New Folder inputs now appear inline inside the target folder in both the file and project trees, and the target folder auto-expands so the input is visible.
v2.0.1

Glass Harbor

2026-06-12

This release adds real local workspace support, the new serop folder launcher, inline SQL row editing, a glassy terminal-style appearance option, and a much more capable deploy assistant with cleaner chat rendering and project-aware command suggestions.

Local Workspace Mode

  • Added a Local Workspace connection type so you can open a folder from your own machine inside Server Operator without SSH.
  • Local workspaces now support file browsing, terminal access, Docker inspection, compose logs, database tooling, deploy commands, and .serop shortcuts.
  • Added startup folder handoff so launching the app with a folder automatically opens it as a local workspace profile.
  • Added the new serop launcher flow so serop . opens Server Operator directly in the current directory.

Deploy Assistant & Shortcuts

  • Deploy AI chat now returns real answers plus optional runnable commands instead of command-only output.
  • Added response parsing, malformed-tag recovery, model fallback on Groq rate limits, and cleaner command presentation cards.
  • Normalized deploy project paths to absolute remote paths so project switching no longer breaks with relative cd commands.
  • Moved deploy project chips, context, and .serop shortcuts into the main sidebar with accordion-based command editing and direct run actions.

Database Editing & Appearance

  • Added first-pass inline table editing for SQL databases, including row update, insert, and delete actions for table browse views.
  • Table metadata is now used to detect primary keys and build safer row predicates for edits and deletes.
  • Added a new Glassy Terminal appearance mode for a transparent, blurred, Linux-terminal-inspired desktop theme.
v1.0.1

Amber Anchor

2026-06-02

This release introduces critical SSH stability improvements, a connection queuing manager to prevent session exhaustion, custom toggles, password visibility eye toggles, multi-architecture macOS build support, Tailwind CSS v4 styling migration, and significant CPU optimization by removing redundant periodic uptime monitoring loops.

SSH Stability & Queuing

  • Implemented a sequential FIFO Promise queue (connectionQueues) to serialize remote execution requests and prevent MaxSessions channel open failures.
  • Added SSH keepalive heartbeats (keepaliveInterval: 10000, keepaliveCountMax: 3) to automatically teardown dead or timed-out connection sockets.
  • Cleared connection queue state upon socket closure, errors, or idle timeout evictions to prevent reference memory leaks.
  • Completely removed the 60-second periodic background uptime monitoring checks to eliminate unnecessary SSH load on servers.

Visual Refinements & Controls

  • Integrated an interactive eye icon visibility toggle for masked server passwords under the Authentication table column.
  • Replaced native browser checkboxes across server configuration forms, Docker views, and settings with sleek custom React buttons.
  • Fixed bottom terminal active checks to prevent active SSH stream sessions from unmounting and disconnecting during drawer toggles.
  • Migrated custom UI styling and theme colors to Tailwind CSS v4 design specifications.

Deployment & Core Infrastructure

  • Configured explicit multi-arch macOS targets supporting both Apple Silicon (ARM64) and Intel (x64) architectures.
  • Refined Certbot automatic SSL detection and status verification logic for server domains.
  • Optimized Tor SOCKS5 proxy toggle defaults for SSH connections.
v1.0.0

Cobalt Catalyst

2026-05-27

The first full release of Serop — a desktop server management suite built on Electron, React, and SSH. Cobalt Catalyst introduces an auto-updating notification system, a custom app logo icon, and a default-disabled feature toggling mechanism.

Auto-Update System

  • GitHub Releases API silent check to automatically check for new versions on launch
  • Non-intrusive floating toast alerts for new release tags with an expandable changelog body
  • Persistent version dismissals stored in local storage to prevent duplicate alerts
  • Check for Updates option inside the application Help menu

Visual Identity & Custom Icon

  • New custom-designed squircle brand logo mark deployed at all standard system icon sizes
  • Support for dynamic Dock icon loading at runtime during macOS development

Disabled-by-Default Feature Suite

  • All optional server and deployment modules disabled by default on clean installations
  • On-demand opt-in control panel allowing users to only turn on features they require

SQL Query Runner

  • Monaco Editor input with SQL syntax highlighting for MySQL and PostgreSQL
  • Run button that executes queries over the SSH-tunneled database connection
  • Paginated results table with row count and execution time display
  • Inline error reporting for database and connection failures
  • Autocomplete for table names pulled from the live schema

Git Deployment Pipeline

  • Server + project directory selector with one-click Deploy action
  • SSHes in and runs git pull, npm install / pip install, migrations, and service restart
  • Supports pm2 restart and systemctl restart as service managers
  • Real-time output streamed into the integrated terminal during deployment
  • Terminal input is locked while a deployment is in progress

Deployment History & Rollbacks

  • All deploys logged to a local SQLite table (timestamp, branch, commit hash, status, output)
  • Per-server/project deploy history list with colored success/failure badges
  • Visual log viewer with expandable terminal output per deploy entry
  • Rollback button — SSHes in, runs git checkout <commit>, and restarts the service

Terminal Snippet Library

  • Save commands with a title, description, and body to a persistent local library
  • Searchable side panel with instant fuzzy filtering across all snippets
  • Click a snippet to paste it directly into the active terminal
  • Variable placeholder support: {{domain}}, {{port}}, etc. — prompts for values before pasting
  • Copy-to-clipboard button on every snippet card
  • Seed snippets included out of the box (nginx reload, pm2 status, docker prune, etc.)

Core Infrastructure

  • Electron + React + TypeScript foundation with Vite bundler
  • SSH connection manager with EC2 key-pair, password, and Cloudflare Tunnel modes
  • Tor SOCKS5 proxy support for anonymous SSH connections
  • Remote file explorer with Monaco editor, uploads, downloads, and search
  • Docker container monitor — logs, rebuilds, and service status management
  • Server admin panel with OS info, service controller, and performance charts
  • Config creator wizards for systemd units and Nginx reverse-proxy blocks
  • AI assistant integration for shell diagnostics and query optimization
  • Persistent markdown notes synced with the Monaco editor workspace