NewWorkers, cron, PR previews and file uploads for every app

The server panel that also deploys and monitors your apps

Manage websites, databases, files and firewalls, deploy apps on git push with zero downtime, and get metrics, uptime and alerts for every server you own, from one panel.

Get started free No card needed
Install the agentUbuntu, Debian and any systemd Linux
Home
YourPanel home: load, CPU, RAM and disk gauges, websites, databases, containers, cron and firewall counts, installed software and live traffic
Inbound ports opened
0
agents dial out over one WebSocket
Ways to run an app
6
service, static, PHP, Dockerfile, image, Compose
Health checks
30s
on every application
Database engines
5
one click each, linked to apps
Works with the stack you already run
  • Ubuntu
  • Debian
  • Docker
  • NGINX
  • Let's Encrypt
  • Node.js
  • Next.js
  • Python
  • Go
  • PHP
  • Laravel
  • WordPress
  • PostgreSQL
  • MySQL
  • MariaDB
  • Redis
  • MongoDB
  • GitHub
  • Prometheus
  • Grafana
  • Slack
  • Discord
  • Telegram
Why YourPanel

One panel instead of three tools

Most teams run a server panel, a deploy platform and a monitoring stack that never talk to each other. YourPanel does all three jobs, for every server you own.

Run your servers
Instead of aaPanel or cPanel
  • Terminal and file manager
  • Websites with free HTTPS
  • Firewall, cron and updates
Deploy your apps
Instead of Render or Railway
  • Deploys on git push
  • Workers, cron and previews
  • Zero-downtime releases
Watch everything
Instead of a separate monitoring stack
  • Metrics with 7-day history
  • Uptime per app
  • Alerts to chat
Stay in control
Instead of SSH keys on every laptop
  • No inbound ports
  • Roles and two-factor sign-in
  • Verifiable audit log
Inside the panel

What you see after you sign in

These are real screens from the panel, in the theme you are using right now.

Every app with its health, uptime and last deploy

  • Services, static sites, PHP sites and containers
  • HTTP health checks every 30 seconds
  • Deploy any app with one click
Applications
Applications list with five healthy apps, their type, uptime, response time, server and last deploy
Applications

Run every kind of app, with or without containers

Point YourPanel at a repository or upload a zip. Run it as a systemd service, a static site, a PHP site, or a container built from a Dockerfile, a registry image or a Compose file. Runtimes are installed for you.

Six ways to run an app
Service, static site, PHP site, Dockerfile, image or Compose.
Pinned runtime versions
Node, Python, Go and PHP, detected from the repo or chosen by you.
Deploy from an upload
Drop a zip or tarball when there is no repository.
Applications / New application

New application

shop-api · prod-01
Docker Services & sites
Service
Node, Python, Go or any start command, run by systemd
Static site
Build once, served straight by Nginx
PHP site
PHP-FPM pool per app, Laravel and WordPress ready
Source
acme/shop-api · main
Runtime
Node 22 · auto-detected
or upload a zip Create and deploy
blog-v2.zip
72%
Deployments

Push to deploy, with zero downtime and automatic rollback

The new release starts next to the old one and must pass an HTTP health check before Nginx sends it traffic. If it fails, the previous release keeps serving and you see why in the log.

Deploys on git push
Signed webhooks, private repositories with an encrypted token.
Blue/green for services too
Native services get the same health-checked switch as containers.
One-click rollback
Recent releases are kept on the server, so going back is instant.
Deployments / shop-api

Deploy #42

main · a1f9c2e
Deployed
  1. Clone
  2. Build
  3. Health check
  4. Live
$ git clone --depth 1 acme/shop-api#a1f9c2e
Cloned main in 1.2s
$ npm ci && npm run build
Built 214 modules in 8.4s
Started green on 127.0.0.1:3001
GET /healthz → 200 OK (3 of 3 passed)
Nginx now sends traffic to green
Stopped blue · release r42 is live
Deployed in 21s with zero downtime
Workers and cron

Background workers, scheduled jobs and limits for each app

Run queue consumers and cron jobs from the same release and environment as your web process. Cap memory and CPU per app so one noisy process cannot take the whole server down.

Background workers
Long-running processes, restarted on failure and on every deploy.
Cron jobs per app
Standard cron syntax, with the app's code and variables.
Memory and CPU limits
Enforced by systemd or Docker, shown live on the app page.
Applications / shop-api / Settings

Processes

same release, same env
  • webBlue/green
    node dist/server.js
    Live
  • emailsWorker
    node workers/emails.js
    Running
  • reportsWorker
    node workers/reports.js
    Running
  • 0 3 * * *Cron
    npm run cleanup
    Scheduled
Memory · limit 512 MB46.0%236 MB
CPU · limit 1 core18.0%
Pull request previews

Every pull request gets its own preview URL

Open a pull request and YourPanel deploys it next to production on its own subdomain. Push again and the preview updates. Merge or close it and the preview is removed.

A URL per pull request
pr-48.your-domain, with HTTPS when your app has it, ready to share.
Cleaned up for you
Previews are removed when the pull request is merged or closed.
Safe by default
Pull requests from forks are skipped.
Applications / shop-api / Previews

Pull request previews

On
  • #48
    Retry failed webhooks
    pr-48.shop.example.com
    Healthy
  • #47
    Dark mode for receipts
    pr-47.shop.example.com
    Deploying
  • #46
    Fix coupon rounding
    pr-46.shop.example.com
    Healthy
  • #45
    Cache product pages
    Merged · preview removed
    Merged
Databases

Create a database and link it to your app in one step

PostgreSQL, MySQL, MariaDB, Redis and MongoDB, bound to localhost on your own server. Link one to an app and its connection URL is added to the environment on the next deploy.

Five engines, one click
Users, passwords and ports handled for you.
Connection URLs injected
DATABASE_URL and friends, never typed by hand.
Scheduled dumps
Database backups with retention, next to folder backups.
Applications / shop-api / Environment
shop-api
app
DATABASE_URL
shop
PostgreSQL 16

Linked databases

  • shop
    PostgreSQL 16 · prod-01
    Linked
  • cache
    Redis 7 · prod-01
    Linked

Environment

injected on every deploy
DATABASE_URL
postgresql://shop:••••@127.0.0.1:5432/shop
REDIS_URL
redis://:••••@127.0.0.1:6379/0
NODE_ENV
production
Monitoring

Know when something breaks, before your users do

CPU, memory, disk and network stream in every few seconds with seven days of history. Every app gets an HTTP health check every 30 seconds, and alerts go where your team already talks.

Live metrics and history
15 minutes to 7 days, per server, with top processes.
Uptime and response time
Per app, with a 24-hour uptime bar.
Alerts to Slack, Discord, Telegram
App down, failed deploys, full disks, expiring certificates.
Servers / prod-01

CPU

last hour
25%

Response time

shop-api
14 ms

Uptime

last 24 hours
99.98%
Memory55.0%4 GB / 7 GB
Disk /82.0%122 GB / 149 GB
Disk above 80% on prod-01
A/B experiments

Ship two versions and keep the one that wins

Split live traffic between your current release and a variant. YourPanel compares conversions with a significance test, then promotes the winner through a normal zero-downtime deploy.

Sticky traffic split
Nginx splits by percentage; each visitor keeps one version.
Promote in one click
The winner ships through the same health-checked deploy.
Experiments / Checkout redesign

Checkout redesign

Significant
VariantTrafficConversion
Current release50%
3.1%
New checkoutWinner50%
3.9%
+26% conversion · example data Promote winner
Server management

Everything you used SSH for, in the browser

The everyday server panel jobs, done from the panel and recorded in the audit log.

Websites and HTTPS

Nginx sites and Let's Encrypt certificates that renew themselves.

Web terminal

A root shell over the agent connection, audited, with an idle timeout.

File manager

Edit, upload, chmod and compress inside allowed folders.

Databases

PostgreSQL, MySQL, MariaDB, Redis and MongoDB in one click.

Cron jobs

Create, pause, run now and read the output of every run.

Firewall

ufw rules with presets. SSH stays allowed when it turns on.

Backups

Folder archives and database dumps on a schedule, with retention.

Updates and reboot

Pending apt updates with security fixes flagged.

Terminal · prod-01 · recorded in the audit log
root@prod-01:~$ apt upgrade -y
12 packages upgraded, 3 security fixes
Use cases

Host what you already build

If it runs on Linux, it runs on YourPanel. Some of what teams deploy:

Node.js APIs
Service
Next.js apps
Service or Dockerfile
Django and FastAPI
Service
Go services
Service
Laravel
PHP site
WordPress
PHP site
Static sites
Static site
Any container
Dockerfile, image or Compose
Security

Nothing on your servers listens for the panel

Each server runs one small Go agent that opens an outbound WebSocket and runs only allowlisted actions. The panel itself is protected like the bastion it is.

Read the security model
No inbound ports

Agents dial out. SSH, Docker and systemd are never exposed to the panel.

Two-factor sign-in

TOTP with recovery codes, rate limiting and account lockout.

Roles on every endpoint

Owner, admin, developer and viewer, checked on each request.

Tamper-evident audit log

Every change is hash-chained, so edits or gaps are detectable.

Secrets encrypted at rest

Env vars and git tokens are encrypted and never returned by the API.

Allowlisted agent actions

No shell strings, validated arguments, files confined to set folders.

Audit log Chain verified
  1. user.login
    prev 4f1a07hash 9c22e1
  2. app.deploy
    shop-api #42
    prev 9c22e1hash e7b04d
  3. firewall.allow
    443/tcp · prod-01
    prev e7b04dhash 13dd8a
  4. token.create
    ci-deploy
    prev 13dd8ahash a06f3c
Compare

A server panel and a PaaS, on your own servers

Server panels manage the box, platforms deploy the app. YourPanel does both, across many servers, without opening ports on them.

CapabilityYourPanelaaPanelcPanelRender, Railway
Runs on servers you own
Many servers from one loginOne panel per serverThrough WHMNot applicable
No inbound ports on your serversNot applicable
Websites, Nginx and free HTTPS
One-click databases
Terminal and file managerShell only
Firewall, cron and package updatesPartialNot applicable
Deploys on git pushLimitedManual setup
Health-checked zero-downtime deploys
Background workers and app cronVia pluginsCron only
Pull request previews
Metrics history and alertsBasicBasic
A/B experiments with a significance test
Tamper-evident audit log
Large one-click app catalogueTemplates

Based on each product's public documentation at the time of writing. Spotted something out of date? Let us know.

Get started

Up in five minutes on a server you already have

Create a free workspace, then run one command on each server. The agent registers with a one-time token, starts as a service and connects out to your panel.

  1. 1
    Create your workspace
    Sign up with your email, invite your team and turn on two-factor sign-in.
  2. 2
    Add your servers
    Copy the install command from Servers, Add server. The server is online in seconds.
  3. 3
    Deploy and watch
    Connect a repository or upload a build, add a domain, and let health checks and alerts do the rest.
Add serverrun as root on the server
bash
$ curl -fsSL https://panel.yourpanel.host/install.sh \
| sudo bash -s -- --token <ONE_TIME_TOKEN> --with-nginx
connected · prod-01 is online
  • Any systemd Linux server, amd64 or arm64
  • Nothing to open: the agent connects out over wss://
  • The command with your token is shown in the panel
FAQ

Questions, answered

Do I need to open any ports on my servers?
No. The agent opens one outbound WebSocket to the panel and receives work over it. Docker, systemd and SSH stay private, and your firewall can block every inbound port except the ones your sites serve.
Do my apps have to run in Docker?
No. Apps can run as systemd services, static sites or PHP sites, with Node, Python, Go and PHP runtimes installed by the panel. If you prefer containers, build from a Dockerfile, pull an image or run a Compose file. One-click databases run in Docker.
Which servers are supported?
Any Linux server with systemd on amd64 or arm64. Package updates and the Nginx and certbot install use apt, so Ubuntu and Debian get the full feature set.
What happens if the panel is unreachable?
Your apps keep running: they are ordinary services and containers behind Nginx on your servers. Agents reconnect on their own when the connection comes back.
The agent runs as root. How is that safe?
The agent only runs a fixed allowlist of actions with validated arguments and never passes strings to a shell. Files are confined to set folders, and the web terminal can be turned off per server. See the security model.
Can I use my existing CI instead of building on the server?
Yes. Image mode pulls an image your CI pushed when a webhook arrives, then runs the same health check and zero-downtime switch.
Does it work with Prometheus and Grafana?
Yes. Your workspace exposes a token-protected Prometheus endpoint with every server's metrics, so you can scrape it into the Grafana you already run.

Take back your servers from a dozen SSH tabs

Create a free workspace, connect your first server and deploy in minutes.

YourPanel · Deploy, run and watch every server from one panel