Getting Started

From zero to deployed in minutes

Requirements

ComponentMinimumRecommended
OSDebian 11 / Ubuntu 20.04Debian 12 / Ubuntu 22.04+
Python3.103.13
RAM512 MB1 GB+
Disk1 GB5 GB+
AccessNon-root user with sudoRoot or sudo user

Installation

Option 1: Quick Install (Recommended)

git clone https://github.com/adyoi/Weborn.git
cd Weborn
sudo bash install.sh

This installs Weborn to /opt/weborn, creates a systemd service, and starts the panel.

Option 2: Manual Install

git clone https://github.com/adyoi/Weborn.git
cd Weborn

# Create virtual environment
python3 -m venv .venv
source .venv/bin/activate

# Install dependencies
pip install -r requirements.txt

# Build CSS (optional, pre-built CSS included)
npm install && npm run css:build

# Run in development mode (dry-run, no system changes)
python weborn.py --reload --host 127.0.0.1 --port 2025

# Or run in production mode (requires root)
sudo python weborn.py --local --host 0.0.0.0 --port 2025

First-Time Setup

  1. 1 Open the panel in your browser: http://your-server-ip:2025
  2. 2 You'll be redirected to /setup (first-time wizard)
  3. 3 Enter username and password (min 8 chars with uppercase, lowercase, digit, symbol)
  4. 4 Panel creates: panel admin account (SQLite) + Linux OS user with sudo/SSH access
  5. Login with your new credentials
Note: After setup, any Linux user can login with their OS password (PAM fallback). Root can only login after an admin panel user exists.

Executor Modes

Weborn supports three executor modes for running system commands:

ModeDescriptionUse Case
localDirect execution on Linux (requires root)Production server
wslExecute via WSL distro (Debian default)Windows development
dry-runSimulate commands without executionWindows dev / testing

Auto-detection: Linux → local, Windows → dry-run

# Set via environment variable
export WEBORN_EXECUTOR_MODE=local
export WEBORN_EXECUTOR_MODE=wsl
export WEBORN_WSL_DISTRO=Debian

SSL Support

Self-Signed (Development)

python weborn.py --local \
  --ssl-cert /path/to/cert.pem \
  --ssl-key /path/to/key.pem

Let's Encrypt (Production)

# Generate certificate
certbot certonly --standalone -d yourdomain.com

# Run with SSL
sudo python weborn.py --local \
  --ssl-cert /etc/letsencrypt/live/yourdomain.com/fullchain.pem \
  --ssl-key /etc/letsencrypt/live/yourdomain.com/privkey.pem
Note: When SSL is active, session cookies automatically get the secure flag.

Updating

cd /opt/weborn
sudo bash update.sh

This syncs code, installs new dependencies, clears cache, and restarts the service.

Uninstalling

sudo bash uninstall.sh