From 763c995c26a227d34cea704093007cc7b4001784 Mon Sep 17 00:00:00 2001 From: NixReaper Date: Sat, 25 Apr 2026 05:49:54 -0500 Subject: [PATCH] =?UTF-8?q?docs:=20initial=20documentation=20=E2=80=94=20i?= =?UTF-8?q?nstall,=20configuration,=20plans,=20FAQ?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 26 +++++++++ configuration.md | 134 ++++++++++++++++++++++++++++++++++++++++++++ faq.md | 111 ++++++++++++++++++++++++++++++++++++ install.md | 143 +++++++++++++++++++++++++++++++++++++++++++++++ plans.md | 74 ++++++++++++++++++++++++ 5 files changed, 488 insertions(+) create mode 100644 README.md create mode 100644 configuration.md create mode 100644 faq.md create mode 100644 install.md create mode 100644 plans.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..cdbc17f --- /dev/null +++ b/README.md @@ -0,0 +1,26 @@ +# NixPanel Documentation + +Welcome to the NixPanel documentation. NixPanel is a modern, open-source web hosting control panel for Linux servers — a fast, reliable alternative to cPanel/WHM. + +## Contents + +| Guide | Description | +|---|---| +| [Installation](install.md) | Install NixPanel on Ubuntu 24.04 | +| [Configuration](configuration.md) | Environment variables and post-install setup | +| [Plans & Licensing](plans.md) | Plan limits, licensing, and IP binding | +| [FAQ](faq.md) | Common questions and troubleshooting | + +## Quick Install + +```bash +bash <(curl -fsSL https://raw.githubusercontent.com/NixReaper/nixpanel/main/install.sh) +``` + +Requires: **Ubuntu 24.04 LTS · x86_64 · Root access** + +## Support + +- **Email:** support@nixpanel.io +- **Issues:** [github.com/NixReaper/nixpanel/issues](https://github.com/NixReaper/nixpanel/issues) +- **Website:** [nixpanel.io](https://nixpanel.io) diff --git a/configuration.md b/configuration.md new file mode 100644 index 0000000..927d8d6 --- /dev/null +++ b/configuration.md @@ -0,0 +1,134 @@ +# Configuration + +## Environment File + +NixPanel stores its configuration at `/opt/nixpanel/.env`. This file is created automatically during installation but can be edited at any time. + +```bash +nano /opt/nixpanel/.env +``` + +After editing, restart the panel: + +```bash +systemctl restart nixpanel +``` + +--- + +## Environment Variables + +| Variable | Description | Default | +|---|---|---| +| `RUST_LOG` | Log level (`info`, `debug`, `warn`, `error`) | `nixpanel=info,tower_http=warn` | +| `PORT` | Internal panel port | `4000` | +| `JWT_SECRET` | Secret key for session tokens (auto-generated) | — | +| `DATABASE_URL` | MariaDB connection string (auto-configured) | — | +| `SERVER_HOST` | Hostname or IP of this server | Set during install | +| `LICENSING_SERVER_URL` | URL of the NixPanel licensing server | `https://license.nixpanel.io` | +| `LICENSE_KEY_PATH` | Path to the stored license key file | `/opt/nixpanel/.license_key` | + +--- + +## Apache + +NixPanel's panels are served via Apache reverse proxy on non-standard ports so they don't interfere with hosted websites on port 80/443. + +| Port | Panel | +|---|---| +| `2087` | NixServer (admin / WHM-style) | +| `2083` | NixClient (user / cPanel-style) | + +Apache config: `/etc/apache2/sites-available/nixpanel.conf` + +Reload Apache after changes: + +```bash +apache2ctl configtest && systemctl reload apache2 +``` + +--- + +## SSL + +Add HTTPS to your panel ports: + +```bash +certbot --apache +``` + +Or manually specify domains: + +```bash +certbot --apache -d panel.yourdomain.com +``` + +--- + +## PHP Versions + +NixPanel installs both PHP 8.2 and PHP 8.3 via the `ondrej/php` PPA. You can set the default PHP version per domain in the NixClient user panel, or globally via: + +```bash +update-alternatives --config php +``` + +--- + +## MariaDB + +Panel database credentials are stored in `/opt/nixpanel/.env`. The database is only accessible from `127.0.0.1` — it is not exposed externally. + +To access the MariaDB console: + +```bash +mysql -u nixpanel -p nixpanel +``` + +The password is in `/opt/nixpanel/.env` under `DATABASE_URL`. + +--- + +## Logs + +| Log | Path | +|---|---| +| Panel | `/var/log/nixpanel/panel.log` | +| Panel errors | `/var/log/nixpanel/panel-error.log` | +| Apache access | `/var/log/nixpanel/nixserver-access.log` | +| Apache errors | `/var/log/nixpanel/nixserver-error.log` | + +Stream logs live: + +```bash +journalctl -u nixpanel -f +tail -f /var/log/nixpanel/panel.log +``` + +--- + +## Firewall + +If you use `ufw`, allow the panel ports: + +```bash +ufw allow 2083/tcp # NixClient +ufw allow 2087/tcp # NixServer +ufw allow 80/tcp # HTTP +ufw allow 443/tcp # HTTPS +ufw allow 25/tcp # SMTP +ufw allow 143/tcp # IMAP +ufw allow 993/tcp # IMAPS +ufw allow 110/tcp # POP3 +ufw allow 995/tcp # POP3S +ufw allow 53 # DNS +``` + +For production, restrict ports 2083 and 2087 to trusted IPs only: + +```bash +ufw allow from YOUR_IP to any port 2083 +ufw allow from YOUR_IP to any port 2087 +ufw deny 2083 +ufw deny 2087 +``` diff --git a/faq.md b/faq.md new file mode 100644 index 0000000..802a403 --- /dev/null +++ b/faq.md @@ -0,0 +1,111 @@ +# FAQ + +## Installation + +**Q: Which operating systems are supported?** +A: Ubuntu 24.04 LTS (x86_64) is the only supported OS at this time. Additional distributions are planned post-v1. + +--- + +**Q: Can I install NixPanel on a server that already has software on it?** +A: It's not recommended. NixPanel installs and configures Apache, MariaDB, PowerDNS, Exim, and Dovecot. Running it alongside existing web server software will likely cause port conflicts. Use a fresh server. + +--- + +**Q: The installer failed partway through. What do I do?** +A: Just re-run it. The installer tracks completed steps in `/var/lib/nixpanel/install/` and skips anything already done: + +```bash +sudo bash install.sh +``` + +To force a specific step to re-run, delete its `.done` file: + +```bash +rm /var/lib/nixpanel/install/.done +``` + +--- + +**Q: Do I need a license key to install?** +A: Yes, a license key is required during install — even for the Free plan. Create a free account at [nixpanel.io](https://nixpanel.io) to get one. + +--- + +**Q: PHP 8.2 packages weren't found during install.** +A: This can happen on Ubuntu 24.04 if the `ondrej/php` PPA wasn't added. The latest installer handles this automatically. Make sure you're running the current version: + +```bash +bash <(curl -fsSL https://raw.githubusercontent.com/NixReaper/nixpanel/main/install.sh) +``` + +--- + +## Licensing + +**Q: What happens if my server can't reach license.nixpanel.io?** +A: A 7-day grace period applies. Your panel keeps working normally. If connectivity isn't restored within 7 days, non-free features are restricted until the license is validated again. + +--- + +**Q: Can I run NixPanel on multiple servers?** +A: The Host plan supports 1 server; Agency supports unlimited servers. Each server needs its own IP registered to your license. Free and Solo plans are single-server only. + +--- + +**Q: I moved to a new server. How do I update my IP?** +A: Log in to [nixpanel.io/dashboard](https://nixpanel.io/dashboard) → License → Change Server IP. + +--- + +## Panel + +**Q: What ports does NixPanel use?** +A: The admin panel (NixServer) runs on port `2087`. The user panel (NixClient) runs on port `2083`. DNS is on port `53`, SMTP on `25`, IMAP on `143`/`993`, POP3 on `110`/`995`. + +--- + +**Q: How do I add SSL to my panels?** +A: Run `certbot --apache` after pointing a domain at your server. Certbot will automatically configure HTTPS for both panels. + +--- + +**Q: Can NixPanel host WordPress sites?** +A: Yes. NixPanel uses MariaDB (fully MySQL-compatible) and installs PHP-FPM 8.2 and 8.3. WordPress one-click install is available on Solo, Host, and Agency plans. + +--- + +**Q: How do I restart the panel after making config changes?** +A: +```bash +systemctl restart nixpanel +``` + +--- + +**Q: Where are the logs?** +A: +```bash +journalctl -u nixpanel -f # live panel logs +tail -f /var/log/nixpanel/panel.log # panel log file +tail -f /var/log/nixpanel/panel-error.log +``` + +--- + +## Billing + +**Q: What payment methods do you accept?** +A: All major credit and debit cards via Stripe. No PayPal at this time. + +**Q: Can I cancel anytime?** +A: Yes. Cancel from your dashboard. Your panel keeps working until the end of the billing period — no partial refunds. + +**Q: Do you offer refunds?** +A: We offer a full refund within 7 days of your first payment if NixPanel doesn't work for your use case. Contact support@nixpanel.io. + +--- + +## Getting Help + +Still stuck? Email **support@nixpanel.io** or open an issue at [github.com/NixReaper/nixpanel/issues](https://github.com/NixReaper/nixpanel/issues). diff --git a/install.md b/install.md new file mode 100644 index 0000000..2b23002 --- /dev/null +++ b/install.md @@ -0,0 +1,143 @@ +# Installation + +## Requirements + +| Requirement | Value | +|---|---| +| Operating system | Ubuntu 24.04 LTS | +| Architecture | x86_64 | +| RAM | 2 GB minimum · 4 GB recommended | +| Disk | 20 GB minimum | +| Access | Root (or `sudo`) | +| License | Free or paid — [get one at nixpanel.io](https://nixpanel.io/#pricing) | + +> **Fresh server recommended.** NixPanel installs and configures Apache, MariaDB, PowerDNS, Exim, Dovecot, and other services. Installing on a server with existing software may cause conflicts. + +--- + +## One-line Install + +```bash +bash <(curl -fsSL https://raw.githubusercontent.com/NixReaper/nixpanel/main/install.sh) +``` + +The installer is **self-updating** — it always fetches the latest version from GitHub before running, so you never need to re-download it. + +--- + +## Inspect Before Running + +If you prefer to review the script first: + +```bash +curl -fsSL https://raw.githubusercontent.com/NixReaper/nixpanel/main/install.sh -o install.sh +less install.sh +sudo bash install.sh +``` + +--- + +## What Gets Installed + +| Component | Role | +|---|---| +| Apache 2 + PHP-FPM 8.2 & 8.3 | Web server with multi-PHP support | +| MariaDB | Database server (WordPress-compatible) | +| PowerDNS | DNS server | +| Exim 4 | Mail transfer agent | +| Dovecot | IMAP / POP3 server | +| SpamAssassin | Spam filtering | +| Fail2ban | Brute-force protection | +| Let's Encrypt (certbot) | Free SSL certificates | +| NixPanel | Control panel (ports 2083 and 2087) | + +--- + +## Installer Prompts + +During installation you will be asked for: + +- **Admin username, password, and email** — your NixPanel admin account +- **Server hostname** — the domain or IP your panel will be accessed from (e.g. `panel.example.com`) +- **NixPanel license key** — found in your [dashboard](https://nixpanel.io/dashboard) after signing up + +--- + +## Ports Used + +| Port | Service | +|---|---| +| `2087` | NixServer — WHM-style admin panel | +| `2083` | NixClient — cPanel-style user panel | +| `25` | SMTP (Exim) | +| `143` / `993` | IMAP / IMAPS (Dovecot) | +| `110` / `995` | POP3 / POP3S (Dovecot) | +| `53` | DNS (PowerDNS) | + +Make sure your firewall allows these ports for the relevant services. + +--- + +## After Installation + +Access your panels at: + +``` +http://YOUR_SERVER_IP:2087 ← NixServer (admin) +http://YOUR_SERVER_IP:2083 ← NixClient (users) +``` + +**Add SSL immediately:** + +```bash +certbot --apache +``` + +--- + +## Re-running the Installer + +The installer uses step tracking — if it fails partway through, you can safely re-run it and it will skip completed steps: + +```bash +sudo bash install.sh +``` + +To force a specific step to re-run, delete its tracking file: + +```bash +rm /var/lib/nixpanel/install/.done +sudo bash install.sh +``` + +--- + +## Updating NixPanel + +```bash +sudo bash /opt/nixpanel/scripts/update.sh +``` + +Or click **Upgrade Panel** in the NixServer sidebar. + +--- + +## Useful Commands + +```bash +# View panel logs +journalctl -u nixpanel -f + +# Restart the panel +systemctl restart nixpanel + +# Check service status +systemctl status nixpanel apache2 mariadb +``` + +--- + +## Need Help? + +- **Email:** support@nixpanel.io +- **Issues:** [github.com/NixReaper/nixpanel/issues](https://github.com/NixReaper/nixpanel/issues) diff --git a/plans.md b/plans.md new file mode 100644 index 0000000..8ba2846 --- /dev/null +++ b/plans.md @@ -0,0 +1,74 @@ +# Plans & Licensing + +## Plans + +| Plan | Monthly | Annual | Servers | +|---|---|---|---| +| **Free** | $0 | $0 | 1 | +| **Solo** | $9.99 | $95.90 | 1 | +| **Host** | $29.99 | $287.90 | 1 | +| **Agency** | $79.99 | $767.90 | Unlimited | + +Annual billing saves you 2 months (≈20% off). + +--- + +## Plan Limits + +| | Free | Solo | Host | Agency | +|---|---|---|---|---| +| Domains | 1 | 5 | 50 | Unlimited | +| Hosting accounts | 1 | 5 | 50 | Unlimited | +| Email accounts | 5 | 50 | 500 | Unlimited | +| Databases | 2 | 10 | 100 | Unlimited | +| Disk managed | 5 GB | 50 GB | 250 GB | Unlimited | +| Support | Community | Email | Priority | Priority | +| WP one-click install | ❌ | ✅ | ✅ | ✅ | +| Reseller panel | ❌ | ❌ | ✅ | ✅ | +| White-label | ❌ | ❌ | ❌ | ✅ | + +--- + +## How Licensing Works + +NixPanel uses a **central licensing server** at `license.nixpanel.io`. Your license is tied to your **server's public IP address**. + +When you install NixPanel: +1. You enter your license key during setup +2. The installer activates the key against `license.nixpanel.io` +3. The panel periodically validates the license (every 24 hours) +4. If validation fails (e.g. network issue), a **7-day grace period** applies before the panel restricts features + +--- + +## Changing Your Server IP + +If you move NixPanel to a new server: + +1. Log in to [nixpanel.io/dashboard](https://nixpanel.io/dashboard) +2. Go to **License** → **Change Server IP** +3. Enter the new server's public IP address +4. The change takes effect within a few minutes + +IP changes are limited to prevent abuse. Contact support@nixpanel.io if you need assistance. + +--- + +## Cancelling + +You can cancel your subscription at any time from the [billing portal](https://nixpanel.io/dashboard). Your panel will continue to work until the end of the current billing period. + +--- + +## Upgrading or Downgrading + +Log in to [nixpanel.io/dashboard](https://nixpanel.io/dashboard) and use the **Billing** section to switch plans. Changes take effect immediately and are prorated. + +--- + +## Getting a License Key + +1. Create an account at [nixpanel.io/register](https://nixpanel.io/register) +2. Choose a plan on the [pricing page](https://nixpanel.io/pricing) +3. Complete checkout via Stripe +4. Your license key appears in the [dashboard](https://nixpanel.io/dashboard)