Platform

Everything a Java app needs in production, built in, not bolted on.

From deploy to monitoring to failover, every piece of the JavaGrove platform is designed around how Java applications actually run.

Deployment

Deploy the way your team already builds.

Push to a Git remote for automatic build-and-deploy, upload a WAR or EAR directly, or wire your existing CI pipeline (GitHub Actions, GitLab CI, Jenkins) into our deploy API. Maven and Gradle builds run in an isolated builder with your dependency cache retained between deploys.

  • Git push-to-deploy with zero-downtime rolling restarts
  • Direct WAR / EAR upload via SFTP or web console
  • Staging environments that mirror production config
$ mvn -B package
[INFO] BUILD SUCCESS
$ grove deploy target/app.war --env staging
uploaded (18.2 MB)
deployed to staging · 0s downtime
https://staging.checkout.javagrove.app
Monitoring

See what the JVM is actually doing.

Every container ships with JMX access, live heap and garbage-collection metrics, on-demand thread dumps, and streaming application logs: the diagnostics you'd expect from a Java-literate host, available from day one.

  • JMX/JConsole & VisualVM-compatible remote access
  • Heap, GC pause, and thread-count dashboards
  • One-click thread dumps and heap snapshots
heap  612Mi / 1024Mi  ▓▓▓▓▓▓░░░░
gc    G1 · 3 collections/min · 4ms avg pause
threads 42 live · 0 blocked
$ grove logs checkout-api --follow
INFO o.a.c.startup.Catalina.start Server startup in 891 ms
Security

Isolated by default, patched without you asking.

Each JVM container is a separate process with its own filesystem boundary and resource limits. Free TLS certificates, a managed application firewall, and scheduled JDK/runtime security patching come standard, and you can also opt into a manual patch window if your app needs advance notice.

  • Free, auto-renewing TLS on every domain
  • Managed firewall and DDoS mitigation
  • Scheduled JDK & runtime CVE patching
$ grove security status
TLS: valid, auto-renews in 62 days
JDK: 21.0.9 (patched 4 days ago)
WildFly: 31.0.2 (patched 4 days ago)
firewall 3 rules active · WAF: on
Databases

Wire up your data layer without fighting connection pools.

Managed MySQL, PostgreSQL, and MariaDB instances connect via JNDI datasources pre-configured in your runtime, with pooling tuned to your container size. Bring your own external database instead, if you prefer.

  • MySQL, PostgreSQL & MariaDB, provisioned in seconds
  • Pre-wired JNDI datasources & connection pooling
  • Automated daily backups with point-in-time restore
<datasource jndi-name="java:/jdbc/AppDS">
  <connection-url>jdbc:postgresql://db.internal/app</connection-url>
  <pool max-pool-size="25"/>
</datasource>
Scaling

Grow from one container to a cluster.

Resize a container's heap and CPU without downtime, add JVM containers behind a load balancer, or move to WildFly domain-mode or Payara clustering when a single instance isn't enough. You scale the pieces that need it, not the whole account.

  • Live vertical resizing (heap, CPU) per container
  • Load-balanced horizontal scaling across containers
  • WildFly domain mode & Payara clustering on Canopy+
$ grove scale checkout-api --heap 2048Mi --cpu 2
resized, restarted in 6s (rolling)
$ grove cluster status
node-1 active  node-2 active  node-3 active
Support & reliability

Backed by an uptime SLA and engineers who know the JVM.

Automated backups, health checks with auto-restart, and an uptime SLA with service credits come on every plan. When something needs a human, you're talking to someone who can read a thread dump, not a script.

  • 99.9%+ uptime SLA with automatic service credits
  • Automated backups with configurable retention
  • Support engineers who specialize in Java, not a general script
status ● all systems operational
uptime (90d) 99.98%
last backup 14 min ago · retained 14 days
support priority queue · avg reply < 15 min

See how these features are packaged into plans.

Every feature above scales with your plan tier. Compare specs side by side.