diff --git a/doccs/site/astro.config.mjs b/doccs/site/astro.config.mjs index 58f5a91..b7a56f3 100644 --- a/doccs/site/astro.config.mjs +++ b/doccs/site/astro.config.mjs @@ -16,7 +16,7 @@ export default defineConfig({ sidebar: [ { label: 'Getting Started', - items: [{ label: 'Overview', slug: 'overview' }], + items: [{ label: 'Overview', slug: 'overview' }, { label: 'Installation', slug: 'install' }], }, { label: 'Admin Panel', diff --git a/doccs/site/src/content/docs/install.md b/doccs/site/src/content/docs/install.md new file mode 100644 index 0000000..fbcaf5f --- /dev/null +++ b/doccs/site/src/content/docs/install.md @@ -0,0 +1,121 @@ +--- +title: Installation +--- + +This page covers installation, upgrades, and uninstallation for Jabali Panel. + +## System requirements + +- Fresh Debian 12 or 13 install (no pre-existing web or mail stack) +- Root access on the server +- A domain for the panel and mail (with glue records if you host DNS) +- PTR (reverse DNS) for the mail hostname +- Open ports: 22, 80, 443, 25, 465, 587, 993, 995, 53 + +## Quick install (recommended) + +Run the installer from GitHub: + +``` +curl -fsSL https://raw.githubusercontent.com/shukiv/jabali-panel/main/install.sh | sudo bash +``` + +Optional flags: + +- `JABALI_MINIMAL=1` for core-only install +- `JABALI_FULL=1` to force all optional components + +The installer clones the panel to `/var/www/jabali` and configures services, +nginx, SSL, and required system packages. + +## Manual install via Debian packages + +Jabali ships as two Debian packages: + +- `jabali-deps` for system dependencies (nginx, PHP, DB, mail, DNS, etc.) +- `jabali-panel` for the panel application and systemd services + +Build the packages from the repository root: + +``` +./scripts/build-jabali-deps-deb.sh +./scripts/build-jabali-panel-deb.sh +``` + +Install on the server: + +``` +sudo dpkg -i ./jabali-deps__all.deb +sudo apt-get -f install -y +sudo dpkg -i ./jabali-panel__all.deb +``` + +After install, systemd services are enabled and started: + +- `jabali-agent` +- `jabali-queue` +- `jabali-health-monitor` + +## Post-install URLs + +- Admin panel: `https://your-host/jabali-admin` +- User panel: `https://your-host/jabali-panel` +- Webmail: `https://your-host/webmail` + +## Upgrades + +From the panel directory: + +``` +cd /var/www/jabali +php artisan jabali:upgrade +``` + +Check for updates only: + +``` +php artisan jabali:upgrade --check +``` + +## Uninstall + +Before uninstalling, take backups of panel data and user content. + +Stop and disable services: + +``` +sudo systemctl stop jabali-agent jabali-queue jabali-health-monitor +sudo systemctl disable jabali-agent jabali-queue jabali-health-monitor +``` + +Remove packages (keep configs) or purge (remove configs): + +``` +sudo apt remove jabali-panel jabali-deps +# or +sudo apt purge jabali-panel jabali-deps +``` + +Optional cleanup (removes panel files and configs): + +``` +sudo rm -rf /var/www/jabali +sudo rm -rf /etc/jabali +sudo rm -rf /etc/nginx/jabali +sudo rm -rf /etc/ssl/jabali +sudo rm -f /root/.jabali_db_credentials +sudo rm -f /root/jabali_credentials.txt +``` + +If you want to remove the panel database and user: + +``` +sudo mysql -e "DROP DATABASE IF EXISTS jabali;" +sudo mysql -e "DROP USER IF EXISTS jabali@localhost;" +``` + +## Troubleshooting + +- If the panel does not load, confirm nginx is running and ports 80/443 are open. +- Check service status with `systemctl status jabali-agent jabali-queue jabali-health-monitor`. +- Review logs in `storage/logs` and system journal output.