docs: initial documentation — install, configuration, plans, FAQ
This commit is contained in:
@@ -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)
|
||||||
@@ -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
|
||||||
|
```
|
||||||
@@ -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
@@ -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)
|
||||||
@@ -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)
|
||||||
Reference in New Issue
Block a user