Skip to content
myosicam.us

Install the Panel

This page walks you through installing the MyOsicam panel on a fresh VPS. The installer handles everything: PHP 8.3, MariaDB, Nginx, Let’s Encrypt TLS, the database schema, and an admin account. At the end of this page you will have a working panel URL to log into.

If you haven’t read Getting Started yet, do that first — it lists the prerequisites.


Supported operating systems

OSMinimum versionNotes
Ubuntu22.04 LTSUbuntu 22.04 and 24.04 are fully supported. Ubuntu 20.04 is not supported — the PHP 8.3 PPA does not ship binaries for focal.
Debian12Supported on Debian 12 (Bookworm) with the Sury PHP repo.

Before you run the installer

1. Point DNS at your VPS. Create an A record for your panel domain (e.g. panel.example.com) pointing at your VPS’s public IP address. The installer performs a DNS sanity check before requesting a TLS certificate, and Let’s Encrypt requires the domain to resolve to the same IP.

2. Make sure ports 80 and 443 are free. The installer checks both ports. If another process (other than Nginx itself) is holding them, the install exits with an error asking you to stop the holder first.

3. Have your license key ready. The installer validates your license key against the MyOsicam install server as part of the install. The key was emailed to you when you purchased.


The bootstrap command

Run the following as root on your VPS. You will be prompted interactively for your license key, domain, and admin email if you do not pass them as flags.

Terminal window
curl -sSL https://install.myosicam.us/panel | sudo bash

To pass all required values non-interactively (useful for scripted installs):

Terminal window
curl -sSL https://install.myosicam.us/panel | sudo bash -s -- \
--license YOUR_LICENSE_KEY \
--domain panel.example.com \
--email admin@example.com

Available flags

FlagRequiredDescription
--license KEYYes (or prompted)Your MyOsicam license key.
--domain FQDNYes (or prompted)Fully-qualified domain name for the panel. Must already resolve to this VPS.
--email ADDRYes (or prompted)Admin email address (used for TLS certificate issuance and admin account).
--no-sslNoSkip Let’s Encrypt; serve over HTTP only. Not recommended for production.
--channel stable|betaNoRelease channel. Defaults to stable.
--reinstallNoBack up an existing install and replace it.

What the installer does

The installer runs 18 phases and prints progress for each one. Here is what happens:

  1. Preflight — checks root, OS, RAM (≥ 2 GB), and free disk (≥ 10 GB).
  2. Collect inputs — prompts for license key, domain, and email if not supplied as flags.
  3. DNS sanity — verifies the domain resolves to this server’s public IP (skipped with --no-ssl).
  4. Port conflict check — verifies ports 80 and 443 are free (or held by Nginx, which will be reconfigured).
  5. License validation — sends the license key and domain to install.myosicam.us for validation and to receive the tarball download URL.
  6. Existing install check — if a previous install is found, requires --reinstall to proceed (backs up the old directory and database first).
  7. APT dependencies — installs PHP 8.3, MariaDB, Nginx, Certbot, Composer, and all required PHP extensions.
  8. Database setup — creates the myosicam_panel database and a dedicated MySQL user with a generated password.
  9. Download and verify tarball — downloads the release tarball and verifies its SHA-256 checksum.
  10. Composer install — runs composer install --no-dev --optimize-autoloader inside the panel directory.
  11. File permissions — sets ownership to www-data and restricts storage directory permissions.
  12. Write .env — generates the panel’s configuration file, including a random encryption key and database credentials.
  13. Import schema — runs database/install.sql to create all tables.
  14. Seed admin account — creates the admin user with a randomly generated password and sets must_change_password = 1 so you are forced to change it on first login.
  15. Nginx vhost — writes and activates an Nginx server block for your domain.
  16. Let’s Encrypt TLS — runs Certbot to obtain a certificate and enable HTTPS → HTTPS redirect (skipped with --no-ssl).
  17. Smoke test — makes a loopback HTTP request to confirm the panel responds.
  18. Summary — prints your admin password and saves full details to /root/myosicam-install-summary.txt (root-only, chmod 600).

Install log

The installer writes a redacted log (secrets are replaced with ****) to:

/var/log/myosicam-install.log

If the install fails, this is the first place to look.


After the installer finishes

At the end of a successful install the terminal prints a summary banner like this:

────────────────────────────────────────────────────────────────
✓ MyOsicam Panel installed successfully
────────────────────────────────────────────────────────────────
Panel URL: https://panel.example.com/login
Admin user: admin
Admin password: <generated-password>
⚠ CHANGE THIS PASSWORD on first login.
...
────────────────────────────────────────────────────────────────

The full summary (including database credentials) is also saved to /root/myosicam-install-summary.txt (readable only by root).

First login

  1. Open https://panel.example.com/login in your browser.
  2. Sign in with username admin and the password from the installer output.
  3. You will be prompted to change the password immediately — this is enforced by the panel and cannot be skipped.

System services installed

The installer sets up the following system-level components:

ComponentDescription
php8.3-fpmPHP FastCGI process manager; started and enabled at boot.
mariadbDatabase server (only installed if MariaDB/MySQL is not already present).
nginxWeb server; configured with a vhost for your domain.
/etc/cron.d/myosicam-panelTwo cron jobs: panel job runner (every minute) and update checker (hourly at minute 7).
/etc/sudoers.d/panel-updateAllows www-data to reload php8.3-fpm during in-panel updates — scoped to one exact command.

Troubleshooting common install failures

SymptomLikely causeFix
FAILED: must run as rootRan without sudo.Re-run with sudo.
FAILED: unsupported OSOS is not Ubuntu 22.04/24.04 or Debian 12.Provision a supported OS.
FAILED: insufficient RAMVPS has less than 2 GB RAM.Upgrade the VPS.
FAILED: license key not recognizedTypo in the key or key not yet provisioned.Double-check the key from your purchase email.
FAILED: license install quota exhaustedAll install slots for your license are used.Contact support or remove an unused install from the admin portal.
certbot failedDomain does not yet resolve to this VPS, or port 80 is blocked.Fix DNS / firewall, then re-run sudo certbot --nginx -d panel.example.com -m admin@example.com --agree-tos.
apt lock still held after 300sAnother apt process (e.g. unattended-upgrades) is running.Wait and retry, or run ps aux | grep -E "apt|dpkg" to find and stop the holder.

Next step

Once you can log into the panel, install the Go agent on each of your OScam servers:

Install the Agent →