Auto-Installer
Install ArcBilling in minutes with a single command. The script handles PHP, MySQL, Nginx/Apache, SSL, and all configuration automatically.
Quick Start
# 1. Upload the ArcBilling archive to your server
scp arcbilling-v1.0.0.zip root@yourserver:/tmp/
# 2. SSH in and extract
ssh root@yourserver
cd /tmp
unzip arcbilling-v1.0.0.zip
cd arcbilling
# 3. Run the installer (as root)
sudo bash install.sh
Root required
The installer must run as root (or with sudo) to install packages and configure services.
How It Works
The auto-installer performs these steps in order:
1
OS Detection
— Detects your OS and version, exits if unsupported
2
Gather Input
— Asks for domain, web server preference (Nginx/Apache), and DB credentials
3
Install Packages
— PHP 8.3, MySQL/MariaDB, Nginx or Apache, Certbot, Composer
4
Create Database
— Creates the database and a dedicated user with a secure password
5
Deploy Files
— Copies ArcBilling to /var/www/arcbilling
6
Install Dependencies
— Runs composer install with production optimizations
7
Laravel Setup
— Generates app key, creates storage symlink
8
Set Permissions
— Correct ownership and write permissions for storage/
9
Configure PHP
— Sets upload_max_filesize=64M, post_max_size=64M, memory_limit=256M
10
Configure Web Server
— Creates and enables the virtual host config
11
SSL Certificate
— Optionally installs a Let's Encrypt certificate via Certbot
12
Scheduler Cron
— Sets up the Laravel scheduler to run every minute
13
Print Summary
— Shows all credentials and the URL to complete setup
Supported Operating Systems
| OS | Version | Package Manager |
|---|---|---|
| Ubuntu | 22.04 LTS, 24.04 LTS | apt + ondrej/php PPA |
| Debian | 11 (Bullseye), 12 (Bookworm) | apt + packages.sury.org |
| AlmaLinux | 9.x | dnf + Remi |
| Rocky Linux | 9.x | dnf + Remi |
| CentOS Stream | 9 | dnf + Remi |
Interactive Prompts
| Prompt | Default | Description |
|---|---|---|
| Domain name | none | e.g. billing.example.com |
| Web server | nginx | nginx or apache |
| Database password | auto-generated | Press Enter to generate a secure 32-char random password |
What Gets Installed
PHP 8.3 Extensions
php8.3-fpm, php8.3-cli, php8.3-mysql, php8.3-mbstring, php8.3-xml,
php8.3-curl, php8.3-zip, php8.3-gd, php8.3-bcmath, php8.3-intl,
php8.3-soap, php8.3-gmp, php8.3-sodium, php8.3-fileinfo, php8.3-readline
PHP Settings Modified
| Setting | Value |
|---|---|
upload_max_filesize | 64M |
post_max_size | 64M |
memory_limit | 256M |
max_execution_time | 120 |
Services Enabled
php8.3-fpm(orphp-fpmon RHEL)mysql/mariadbnginxorapache2/httpd
File Locations
| Path | Description |
|---|---|
/var/www/arcbilling | Application files |
/var/www/arcbilling/.env | Environment config |
/var/www/arcbilling/storage/logs | Application logs |
/etc/nginx/sites-available/arcbilling.conf | Nginx config (Ubuntu/Debian) |
/etc/nginx/conf.d/arcbilling.conf | Nginx config (RHEL-based) |
After Installation
╔══════════════════════════════════════════════╗
║ ArcBilling Installation Complete ║
╚══════════════════════════════════════════════╝
URL: https://billing.example.com
Database: arcbilling
DB User: arcbilling
DB Pass: a7f2c9d1e4b8...
Next: Open https://billing.example.com/install
to complete the web-based setup wizard.
Save these credentials!
Troubleshooting
Installer fails on OS detection
Run cat /etc/os-release to check your OS. Use the Manual Installation if your OS is not supported.
Permission denied
sudo bash install.sh
PHP packages not found
The installer adds the ondrej/php PPA (Ubuntu) or Sury repo (Debian) or Remi repo (RHEL) automatically. Check internet connection and DNS.
SSL fails
- DNS A record must point to your server IP
- Port 80 must be open
- Domain must be publicly resolvable
- Skip SSL and set it up later:
sudo certbot --nginx -d yourdomain.com