docs: initial documentation — install, configuration, plans, FAQ

This commit is contained in:
NixReaper
2026-04-25 05:49:54 -05:00
commit 763c995c26
5 changed files with 488 additions and 0 deletions
+26
View File
@@ -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)
+134
View File
@@ -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
```
+111
View File
@@ -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/<step_name>.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 **[email protected]** or open an issue at [github.com/NixReaper/nixpanel/issues](https://github.com/NixReaper/nixpanel/issues).
+143
View File
@@ -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/<step_name>.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)
+74
View File
@@ -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)