Skip to content

Install Bizuno on ISPConfig 3

1. Who this guide is for

You administer one or more servers through ISPConfig 3 (the open-source control panel) and you want to host Bizuno as a normal site inside the panel — with its own client, site, database, shell user, and cert — rather than dropping files into /var/www/ by hand.

This guide is written for an ISPConfig admin who already knows their way around the panel. If you don’t, use the LAMP guide instead; ISPConfig adds a layer you don’t need unless you’re already using it.

Few open-source projects publish an ISPConfig guide. If you’re on ISPConfig, bookmark this page — the steps below turn a 40-minute “read the docs, fight the panel” install into a 10-minute one.

2. Prerequisites

  • ISPConfig 3.2+ running on Debian 12 or Ubuntu 22.04/24.04 (the ISPConfig-supported distros). This guide uses the Apache + PHP-FPM path — the most common ISPConfig setup.
  • PHP 8.2 available in ISPConfig’s server settings (System → Server Config → PHP, or a PHP-FPM version created via ispconfig_update.sh).
  • MariaDB 10.6+ (ISPConfig’s default on current Debian/Ubuntu).
  • Root shell access to drop the Bizuno archive in place.
  • A DNS record for the site pointing at the ISPConfig server.

3. Step-by-step install

3.1 Create the client

In ISPConfig: Client → Add new client.

If Bizuno is for you (not an end customer), use your own company as the client. If you’re running Bizuno for an end customer on shared infrastructure, create or pick their existing client record. Everything below nests under this client.

3.2 Create the website

Sites → Websites → Add new website.

  • Server: your web server.
  • Domain: bizuno.example.com (or the customer’s subdomain).
  • Client: the one you created in 3.1.
  • IPv4 address: the server’s public address (or * for “any”).
  • Let’s Encrypt SSL: ✔ Enable. (Leave unchecked for now if DNS isn’t propagated yet; enable it after 3.7.)
  • PHP: select PHP-FPM and pick 8.2 from the version list.

Save. ISPConfig creates /var/www/bizuno.example.com/.

3.3 Create the database user

Sites → Database Users → Add new user.

  • Database user: bizuno (ISPConfig will prefix this with the client ID, producing something like c3bizuno).
  • Password: a strong, generated one. Copy it.

3.4 Create the database

Sites → Databases → Add new database.

  • Site: the site created in 3.2.
  • Database name: bizuno (ISPConfig prefixes this too — e.g. c3bizuno).
  • Database user: the user created in 3.3.
  • Charset: utf8mb4.

3.5 Create the shell user

Sites → Shell users → Add new shell user.

  • Site: the site created in 3.2.
  • Username: bizuno (prefixed → c3bizuno).
  • Password: a strong one.
  • Chroot shell: None for a trusted admin; jailkit if you’re handing the shell to an end customer. Jailkit works fine for Bizuno’s upgrade script — the commands it needs (php, tar, curl, cp) are on the standard jailkit section list.

3.6 Upload and extract Bizuno

SSH in as the shell user:

ssh c3******@************le.com
cd /var/www/clients/client3/web42/web      # your exact path shows in the panel
rm -rf error stats               # ISPConfig's placeholders
curl -LO https://github.com/bizuno/bizuno/releases/latest/download/bizuno.tar.gz
tar xzf bizuno.tar.gz --strip-components=1
rm bizuno.tar.gz

Ownership is already correct because you did this as the site’s shell user. If you did it as root, fix it:

sudo chown -R web42:client3 /var/www/clients/client3/web42/web

3.7 Configure the PHP handler

Back in ISPConfig, open the site and check the Options tab:

  • Custom php.ini settings — add any Bizuno-specific overrides here; the defaults are usually fine. Typical additions:
    upload_max_filesize = 32M
    post_max_size = 32M
    memory_limit = 256M
    max_execution_time = 120
    
  • Directive snippets → nginx/Apache directives — usually nothing needed. If Bizuno is inside a subdirectory, add a RewriteBase here.

Save. ISPConfig writes a fresh vhost and reloads the webserver.

3.8 Open Bizuno

Navigate to https://bizuno.example.com/. The install wizard runs. The database details are whatever ISPConfig prefixed them to — c3bizuno / c3bizuno / c3bizuno in our example, with the password you saved. Database host is localhost.

Finish the wizard.

4. First-login walkthrough

Identical to the other platforms:

  1. Create the admin username, email, and password.
  2. Choose demo data or empty install.
  3. Tools → System Info should confirm PHP 8.2 (matches your ISPConfig site config) and the MariaDB version ISPConfig ships on this host.

5. Upgrade path

SSH in as the shell user:

cd /var/www/clients/client3/web42/web
php bin/backup.php       # produces data/backups/YYYY-MM-DD.sql.gz
curl -LO https://github.com/bizuno/bizuno/releases/latest/download/bizuno.tar.gz
tar xzf bizuno.tar.gz --strip-components=1 \
  --exclude='data' --exclude='myConfig.php'
rm bizuno.tar.gz

Refresh the site in a browser — migrations run.

If you want a UI-only upgrade path, Sites → Backup in ISPConfig can take a pre-upgrade snapshot, and Monitor → Jobqueue shows whether the reload completed.

6. Uninstall / teardown

In ISPConfig, delete in this order:

  1. Sites → Cron — remove any scheduled backup.php job you set up.
  2. Sites → Shell users — delete c3bizuno.
  3. Sites → Databases — delete the database.
  4. Sites → Database Users — delete the user.
  5. Sites → Websites — delete the site. Tick “Also delete the folder” unless you want to keep the backup tarballs.

7. Troubleshooting

“Permission denied” when SSH’ing as the shell user. ISPConfig disables the shell user by default — confirm the Chroot shell setting in 3.5 is something other than “No login.” It also needs a few minutes to propagate; re-check /etc/passwd on the host.

“ISPConfig keeps overwriting my vhost changes.” You edited vhost.conf directly; ISPConfig regenerates it on every config write. Use the Apache/nginx directives box in the site’s Options tab instead.

“Let’s Encrypt keeps failing.” Either DNS hasn’t propagated (nslookup it first) or ISPConfig’s Let’s Encrypt attempt is hitting an existing vhost that’s responding on port 80 before yours. Temporarily disable other sites on the same IP, re-issue, then re-enable.

“PHP 8.2 isn’t in the dropdown.” It wasn’t installed on the server. Run ispconfig_update.sh with the “Reconfigure services” option, or install PHP 8.2 manually and register it in System → Additional PHP Versions.

“Database connection failed — is the host right?” ISPConfig’s prefixed DB name and user are easy to miss. Copy them exactly from Sites → Databases. Host is localhost on the same machine, or the ISPConfig DB host if your DB is on a separate server.

“Bizuno works, but emails never arrive.” ISPConfig’s mail server isn’t the whole story — Bizuno needs SMTP credentials. In Bizuno, Tools → Settings → Email, configure SMTP pointing at the ISPConfig mail server (usually the same host, port 587, user = your email account’s mailbox).

“jailkit user can’t run the upgrade script.” Add php and tar to the jailkit sections and re-apply:

sudo jk_update -j /var/www/clients/client3/web42 -k basicshell -k editors -k extendedshell -k netutils -k php

8. Where to go next

  • Run ispconfig_update.sh on a schedule so the panel, PHP, and MariaDB stay current.
  • Turn on ISPConfig → System → Main Config → Backup to capture nightly snapshots of the site and database.
  • Add Bizuno’s bin/backup.php as a cron job through Sites → Cron so the database is snapshotted inside the site folder too.
  • Ask in Install & Setup → ISPConfig. Real-world ISPConfig-plus-Bizuno notes from other admins are gold.

This guide is mirrored at bizuno/bizuno-docs/install-ispconfig.md on GitHub. The Markdown file is the source of truth.