selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

Aerokube Moon logo

Self-host Aerokube Moon

2.8.2

Browser automation platform for Kubernetes and OpenShift

ReleaseProprietaryApache-2.0
Updated8 hours ago
LanguageHTML
Setup difficultyAdvanced
Stars
281
Ports
4444 (Selenium WebDriver API), 8080 (Moon UI web interface)
Requires
Kubectl, Kubernetes
Docker
aerokube/moon
Install with Kubernetes

What is Aerokube Moon?

Moon is a commercial browser automation platform developed by Aerokube Software OÜ that runs on Kubernetes or OpenShift clusters. It provides a Selenium-compatible endpoint (port 4444) and supports Playwright, Cypress, and Puppeteer via WebSocket endpoints. Key capabilities include automatic browser version management, video recording to S3-compatible storage, live VNC access for debugging, mobile emulation for Chrome, and a web UI for session monitoring. Moon is stateless and horizontally scalable, with a free tier allowing up to 4 parallel browser sessions. Paid licenses cost $5 per parallel session per month. Installation is via Helm charts. Authentication options include basic HTTP auth and OpenID Connect integration. The platform is closed-source but distributed as Docker images.

Should you self-host Aerokube Moon?

Aerokube Moon scores 47/100 on selfhost.directory (how scoring works) and ranks #10 of 11 in Browser Automation. It has 281 GitHub stars.

It shipped 4 stable releases in the past year. The latest, 2.8.2, came out on 29 September 2026. New versions land roughly every 3 months.

Setup is advanced: plan for several services and some ongoing maintenance. An official Docker image is available. It is Apache-2.0-licensed and written mostly in HTML.

Its closest alternative on selfhost.directory is Lightpanda (79/100, 37 085 stars). It scores higher overall, so compare the two before you pick. See Aerokube Moon vs Lightpanda side by side.

Features

  • Console CLI in UIAvailable since Moon 2.6.1
  • Custom S3 video layout
  • Live VNC access
  • Multi-tenancy with namespaces
  • OpenID Connect Authentication
  • Selenium WebDriver support
  • Web UI for session managementEnabled by default since Moon 2.6.2

Aerokube Moon README

How to install Aerokube Moon

Install Aerokube Moon with Kubernetes

$ helm repo add aerokube https://charts.aerokube.com/ $ helm repo update $ helm upgrade --install --create-namespace -n moon moon aerokube/moon2

Requires running Kubernetes cluster and kubectl configured

How to configure Aerokube Moon

  • additionalTrustedCAsAdditional root CA certificates for self-signed TLS

    Additional root CA certificates for self-signed TLS

    values: PEM-encoded certificate(s)

  • -browser-limitParallel browser sessions limit

    Parallel browser sessions limit

    values: Integer

  • -callback-urlMoon callback URL for devtools

    Moon callback URL for devtools

    values: Full cluster URL

  • -delete-timeout10mTimeout for deleting Kubernetes resources

    Timeout for deleting Kubernetes resources

    values: Duration

  • -grace-period5mGraceful shutdown period

    Graceful shutdown period

    values: Duration

  • group.nameuserGroup name for browser pods

    Group name for browser pods

    values: Group name string

  • license keyLicense key data for enabling more than 4 parallel sessions

    License key data for enabling more than 4 parallel sessions

    values: Base64-encoded license key string

  • -listen:4444Host and port for Moon container to listen on

    Host and port for Moon container to listen on

    values: host:port

  • -moon-urlhttp://moon.moon:4444/wd/hubMoon service URL

    Moon service URL

    values: URL

  • serviceAccountNamedefaultKubernetes service account for browser pods

    Kubernetes service account for browser pods

    values: Service account name

  • -session-attempt-timeout30mNew session attempt timeout

    New session attempt timeout

    values: Duration

  • sessionTimeout5mDefault Selenium session idle timeout

    Default Selenium session idle timeout

    values: Golang duration format (e.g., 30s, 2m, 1h2m30s)

Aerokube Moon releases & version history

FAQ

JSON processing errors in tests - why?

Usually caused by load balancer/ingress request timeout being too low (often 60s). Increase proxy timeout settings.

Browser session timeouts do not work - why?

Check the -moon-url flag value matches your Moon service name and port. Default is http://moon.moon:4444/wd/hub.

Connection was closed unexpectedly - how to fix?

Increase HTTP request timeout on your load balancer (AWS ALB, Nginx Ingress, etc.). Default timeouts are often too low (30-60 seconds).

How to update configuration of a running Moon cluster?

Update the custom resources (config, browserset, deviceset, quota, license) using kubectl edit or kubectl replace. Changes apply immediately.

More in Browser Automation

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…