agentvps.
中文GitHub
INSTALLATION COMPATIBILITY REPORT / 0.0.3

Linux compatibility.
Tested. Documented.

See which Linux systems AgentVPS has tested, what passed, and how installation issues were fixed. VPS, container and untested results are clearly separated.

01

version verified on a VPSDebian 12 · x64

07

versions verified in containersNative packages, desktop, MCP & workflows

x64

architecture tested this releaseARM64 and RHEL 9 remain untested

01

Operating system results

Each result has a specific scope. Debian 12 passed the complete installer, systemd and a real reboot. Container results verify native dependencies and desktop workflows, not VM startup, cloud firewalls or host SELinux policy.

Verified against AgentVPS 0.0.3 candidates on 2026-10-17. This report records observed results, not a promise that every Linux distribution works.

SystemEnvironmentCurrent result
Debian 12 x64VPS verifiedFresh Tencent VPS, systemdFresh install, browser/desktop readiness, real Codex MCP, CSV workflow, restored-state checks and automatic startup after a real reboot passed
Debian 13 x64Container verifiedPinned containerNative dependency build, MCP/PTY/desktop/four resolutions and CSV workflow passed
Ubuntu 22.04 x64Container verifiedPinned container; previous VPS baseline0.0.3 native dependencies, MCP/PTY/desktop/four resolutions and CSV workflow passed; earlier 0.0.2 also passed on the real VPS
Ubuntu 24.04 x64Container verifiedPinned containerNative dependencies, MCP/PTY/desktop/four resolutions and CSV workflow passed
Ubuntu 26.04 x64Container verifiedPinned containerNative dependencies, MCP/PTY/desktop/four resolutions and CSV workflow passed
Rocky Linux 9.3 x64Container verifiedPinned containerNative DNF dependency build, MCP/PTY/desktop/four resolutions and CSV workflow passed
AlmaLinux 9.8 x64Container verifiedPinned containerNative DNF dependencies, MCP/PTY/desktop/four resolutions and CSV workflow passed
CentOS Stream 9 x64Container verifiedPinned containerNative DNF dependencies, MCP/PTY/desktop/four resolutions and CSV workflow passed
RHEL 9Not testedRequires existing subscriptionNot tested; subscription/CodeReady Builder prerequisites apply
ARM64Not testedSeparate checksum-pinned Node archiveNo ARM hardware verification yet

Fedora, openSUSE, Alpine and older CentOS are outside this release's supported versions. Merely having apt or dnf is not sufficient evidence of compatibility.

02

Scope and method

The existing Tencent Lighthouse test VPS was reinstalled from Ubuntu 22.04 to Debian 12. No additional VPS or plan was purchased. Before reinstalling, a provider system-disk snapshot and a checksum-verified private backup of AgentVPS state/configuration were created. Host SSH identity was verified through the provider console before updating the known-host entry.

The Debian installation uses the real systemd service, public network, native desktop and authenticated Streamable HTTP MCP. Additional distributions run in disposable, digest-pinned containers on that VPS. Container tests use the real distribution packages, Chromium, TigerVNC and npm tarball, but do not prove VM boot, cloud networking or host SELinux policy.

Only Debian 12 exercised the complete deploy/install.sh on a real systemd host in this round. The other distributions execute the installer's shared dependency function from deploy/platform.sh and then the packaged runtime. They do not simulate a successful systemd installation. Package repositories remain live even when the base image digest is fixed.

The acceptance checks cover authentication, workspace identity, Python/Node/Bash readiness, separate stdout/stderr and exit status, job cancellation, real PTYs, native terminal input, shared files, desktop screenshots and all four display resolutions. The workflow test downloads a CSV in Chromium, processes it with Python, renders a dashboard, transfers intact PNG data through MCP and checks preview access. The Codex test calls tools through Codex app-server's registered remote MCP connection; it does not start a model turn.

03

Problems and changes

Observed problemCauseChangeVerification
Installer rejects Debian before installing anythingHard-coded Ubuntu-only check in bootstrap and package installerAdd a versioned native Linux platform table; dispatch APT/DNF in deploy/platform.shDebian 12 fresh install passed; platform boundary checks reject unsupported releases
Rocky fails with a curl/curl-minimal package conflictCloud base images already contain an HTTPS-capable curl-minimal RPMKeep the installed curl provider; install full curl only when the command is absentRocky dependency transaction proceeds without erasing packages
Rocky cannot find feh and scrotThese packages are unavailable in the selected EPEL 9 repositoriesUse distribution ImageMagick display/import for wallpaper/screenshots; preserve feh/scrot on APT systemsRocky desktop startup, native terminal and four PNG dimensions passed
Rocky wallpaper command exits 1 after successfully updating the screenEPEL ImageMagick 6 returns 1 with empty stderr for this root-window operationAccept only that exact result; preserve errors with stderr, signals or timeoutsA screenshot matched the wallpaper pixel-for-pixel (ImageMagick RMSE 0 (0)); full Rocky desktop suite then passed
TigerVNC command names differDebian uses Xtigervnc/tigervncconfig, RPM packages use Xvnc/vncconfigResolve known installed executable names without creating global aliasesDebian and Rocky native desktop paths passed
Playwright's dependency installer assumes supported Debian/Ubuntu packagesIts automatic dependency path is not a DNF installerUse the distribution Chromium package and explicit executable path on RPM systemsRocky browser download, Python processing, dashboard and screenshot workflow passed; browser version follows distribution updates
Public setup only understands UFWMany RPM VPS images use firewalldAdd runtime and persistent port rules to active firewalld; preserve inactive firewalls and report failuresFocused tests verify custom ports, inactive state and error reporting
Desktop wallpaper tiles after increasing resolutionX11 retains the previous root pixmap dimensionsReapply wallpaper after the actual RandR resizeAll four native sizes and PNG dimensions passed on Debian 12/13; 1920×1080 screenshot reviewed
Restored Chromium profile does not startBackup retained process-lock symlinks containing the old host nameWith AgentVPS stopped, move only stale SingletonLock, SingletonSocket, SingletonCookie aside; preserve profile dataRestored workspace identity/token retained; original registered Codex MCP and native desktop checks passed
Older upgrader extracts only install.shAdding a sibling platform helper would break upgrades from 0.0.1/0.0.2Incoming installer reads its helper directly from the supplied package tarballThe unchanged 0.0.2 upgrade script installed 0.0.3 on Debian 12; native desktop and original registered Codex MCP passed afterward
Fresh CLI prints a missing environment-file warningNode's optional env-file flag emits a warning when no custom config existsManaged wrapper supplies the env-file flag only for a readable config fileFresh CLI and real Debian upgrade passed; missing-file warning removed
Web desktop footer shows an obsolete versionVersion was hard-coded in HTMLDisplay the runtime-reported versionReal web desktop displays runtime v0.0.3 after login
04

Reproduction and evidence

  • python3 test/platform.py: exact distribution/version boundaries, including rejection of obsolete or unrelated Linux releases.
  • python3 test/bootstrap.py: firewall behavior, private bindings, address handling and token redaction.
  • npm run check, npm test, npm run test:package: source checks, runtime integration and a fresh tarball installation with all seven retained VPS commands.
  • AGENTVPS_URL=... AGENTVPS_TOKEN_FILE=... AGENTVPS_EXPECT_DISTRO=... npm run test:linux: native shell/PTY/desktop and real screenshot dimensions.
  • AGENTVPS_TEST_API_ONLY=1 npm run test:e2e with remote URL/token/preview environment: browser → CSV → Python → dashboard → screenshot. API-only mode does not claim web-console UI coverage.
  • npm run test:codex: actual registered Codex MCP tool calls.
  • test/linux.Dockerfile: repeatable distribution package/runtime fixture. Pass a digest-pinned BASE_IMAGE; this is a test environment, not the product's deployment model.
  • AGENTVPS_PACKAGE=/absolute/path/runtime.tgz bash test/linux-matrix.sh alma9 ubuntu24 ubuntu26 centos9 ubuntu22: serial, resource-bounded matrix on a Linux Docker host with Node.js and npm ci completed. Base image digests are recorded in test/linux-images.json.

Detailed receipts and screenshots are stored under ignored test-results/. They are kept separate from credentials and are not evidence for untested architectures or providers. Private backup paths, tokens, SSH material and production connection settings are deliberately excluded from this public report.

05

Lifecycle and release checks

Failed-upgrade rollback and uninstall/retain/purge/dry-run checks passed in disposable Debian containers. The real Debian VPS reboot check passed with its original workspace identity and token. The unchanged 0.0.2 upgrade script installed the final 0.0.3 package, followed by successful native Linux and original registered Codex MCP checks. The live web desktop was inspected after login.

The final tarball passed a fresh installation and the seven retained VPS CLI commands. Its SHA-256 is 940c663c8a52a63637efcb9726cf468078126bc1f2bd45df42027d1873b52867. Compared with the latest matrix candidate, only README and the website build script changed; runtime, installer and desktop asset bytes were unchanged. Published 0.0.2 bytes were preserved.

Test-host resource incident

During concurrent distribution builds and desktop tests on the 2 GB VPS, both SSH and HTTP stopped responding; the provider command channel remained queued. Resource exhaustion is suspected but could not be confirmed by kernel logs. A provider force reboot restored access. Kernel logs from the previous boot were unavailable, so the cause remains unconfirmed. AgentVPS started automatically and its original workspace identity/token and four-resolution MCP checks passed after reboot. A temporary 2 GB swap file was added for testing; subsequent runs are serial, with bounded container/build memory and CPU. The serial matrix subsequently passed. Test containers and the temporary swap file were removed after verification; the product installer itself does not create swap or change the VPS plan.

06

Remaining limits

RHEL subscription environments, ARM64 hardware and full RPM-system VM boot with enforcing SELinux remain unverified. These are explicit limits, not passing results. Container verification used the documented default Chromium sandbox setting; it does not establish browser sandbox enforcement. The implementation keeps SELinux and firewall enforcement unchanged.