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

OSVersionPackage Manager
Ubuntu22.04 LTS, 24.04 LTSapt + ondrej/php PPA
Debian11 (Bullseye), 12 (Bookworm)apt + packages.sury.org
AlmaLinux9.xdnf + Remi
Rocky Linux9.xdnf + Remi
CentOS Stream9dnf + Remi

Interactive Prompts

PromptDefaultDescription
Domain namenonee.g. billing.example.com
Web servernginxnginx or apache
Database passwordauto-generatedPress 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

SettingValue
upload_max_filesize64M
post_max_size64M
memory_limit256M
max_execution_time120

Services Enabled

  • php8.3-fpm (or php-fpm on RHEL)
  • mysql / mariadb
  • nginx or apache2 / httpd

File Locations

PathDescription
/var/www/arcbillingApplication files
/var/www/arcbilling/.envEnvironment config
/var/www/arcbilling/storage/logsApplication logs
/etc/nginx/sites-available/arcbilling.confNginx config (Ubuntu/Debian)
/etc/nginx/conf.d/arcbilling.confNginx 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