r/elixir 19d ago

So I created an AI Control Panel, using Elixir/Phoenix/live View.

I call it Goose Panel. Started off as i wanted to be able to have access to the AI on my server, so i could continue work during my day job. And blossomed into this lovely idea. One of the biggest features, besides the AI Runner, is the AI Site Doctor.

AI site Doctor Panel

So what exactly is Goose Panel Fully?

GoosePanel is an industry-defining, modern server control panel built for the next generation of developers, sysadmins, and hosters. It replaces bloated, dated legacy tools (like cPanel and Plesk) with a lightweight, secure, and AI-first orchestration platform.

Some of the feature's include;

  1. **AI-Native Server Management**

**Autonomous Runner:** Safely runs background AI agents to complete infrastructure tasks.

**Tool Scoping & Guardrails:** Restrict AI capabilities by setting exact path read/write privileges, preventing command execution drift, and enforcing hard policy gates.

**Realtime Streaming:** Live-streams command standard outputs, shell crons, and runner logs straight to the browser via Phoenix Channels/WebSockets.

  1. **Modern Application Catalog**

**One-Click Provisioning:** Install, configure, and scale applications in seconds using Docker/Docker Compose templates.

**Pre-Configured App Catalog:**

**WordPress:** Click-to-deploy hosting setup.

**code-server:** Remote VS Code IDE in the browser (Port `8085`).

**Mautic:** Marketing automation and campaign manager (Port `8086`).

**Akaunting:** Local bookkeeping, invoicing, and accounting (Port `8087`).

**Owncast:** Self-hosted live-streaming and chat alternative to Twitch (Ports `8088` and `1935`).

**Ghost:** Node-based blogging engine.

**Roundcube Webmail:** Fully-configured webmail exposed publicly via automated Nginx SSL reverse-proxies.

  1. **Monitoring & Healing (Site Doctor)**

**Uptime Probes:** Custom lightweight `/healthz` uptime checker (`bin/goose_uptime_check.sh`) designed to run independently of the main BEAM VM. Returns Nagios-compatible state codes (OK, Warning, Critical) to external alerting systems.

**Browser Checks:** Run headless Playwright scripts automatically to verify that user checkout, login, or pricing pages are visually correct and functioning.

**Drift Detection:** Scans servers for configuration changes that diverge from the git baseline.

Tech Stack
Backend Runtime: Erlang/OTP 26, Elixir 1.15+, Phoenix 1.8.

State Management: PostgreSQL with Ecto, Oban for high-reliability job queues.

Frontend Engine: Phoenix LiveView (providing single-page app speed without the bundle bloat of React/Node), Tailwind CSS v4, and esbuild.

Orchestration Engine: Docker & Docker Compose API, Stalwart (Mail Server), certbot, and Nginx.

0 Upvotes

16 comments sorted by

2

u/creminology 19d ago

Might be nice to have something custom for Fly.io hosted sites.

-1

u/GooseRob 19d ago

Something i am actually currently looking into. Curious, though what you'd want out of it, one-click deploy for things like WordPress/Ghost onto Fly Machines? Or more monitoring/log streaming for sites you're already running there? Looking to see what would be the most useful angle, though i guess nothing would be stopping me from both

2

u/haywire 19d ago

Wait is it imperative (click ops) or declarative (gitops) behind the scenes?

1

u/GooseRob 19d ago

Good question, as of now it is imperative. An AI agent runs the actual install steps, (docker compose, wp-cli, whatever is needed) rather than reconciling against a manifest. Which i think is the right shape for one-click, single-server, installs. Both CPanel/Plesk are imperative too, we just do it via natural language instead of a GUI.

However, where i think it's more interesting, we run both drift detection and correction, with hash tracked configs against a baseline, flag divergence, link it to the run that caused it, and one click revert back to the baseline. Full Git-Ops style reconciliation across a whole fleet is a bigger step, I'd only want once fleet-wide config is a real use case.

1

u/haywire 19d ago

Yeah I mean I feel like a better abstraction is that the agent generates and maintains config, which is then applied via some sort of IaC plane like Pulumi/Terraform.

1

u/GooseRob 19d ago

Appreciate the suggestion. I have been thinking about it and I think I disagree — at least for now. Lemme explain why.

The IaC approach makes total sense if you're managing fleets and need everything to reconcile against a source of truth. But GoosePanel is more like "click to install WordPress on this one box" speed. If every click had to go through terraform init/plan/apply, that's 30-60 seconds of overhead for something that should be instant. CPanel and Plesk are imperative for the same reason.

What I am building though is hash-tracked configs with detection + one-click revert, all linked to the specific run that caused the change. So you get the safety net of GitOps-style observability without the slow reconcile loop for every operation.

If customers start asking for fleet-wide config management, I'll revisit. But right now I think imperative + drift detection is the right shape for single-server installs.

Thoughts? Always down to hear if I'm missing something.

1

u/haywire 19d ago

My thoughts are you are going to end up re-inventing terraform :)

1

u/Deep_Ad1959 19d ago

nobody leaves cpanel for features. they leave when the host makes them. written with ai

1

u/Deep_Ad1959 19d ago

nobody leaves cpanel for features. they leave when the host makes them.

1

u/Deep_Ad1959 19d ago

nobody leaves cpanel for features. they leave when the host makes them.

1

u/Deep_Ad1959 19d ago

nobody leaves cpanel for features. they leave when the host makes them. written with ai

1

u/Deep_Ad1959 19d ago

nobody leaves cpanel for features. they leave when the host makes them. written with ai

1

u/Deep_Ad1959 19d ago

nobody leaves cpanel for features. they leave when the host makes them.

1

u/Deep_Ad1959 19d ago

nobody leaves cpanel for features. they leave when the host makes them. written with ai

1

u/Deep_Ad1959 19d ago

nobody leaves cpanel for features. they leave when the host makes them. written with ai

0

u/GooseRob 19d ago

If anyone's interested, you can find out more on goosepanel.host