Skip to content

Hosting Packages

Hosting packages define the resource quotas and permissions that a subscription receives. Each subscription is assigned to exactly one package.


Overview

The package list shows all configured hosting packages with their key metrics.

Displayed Columns

Column Description
Name Package name
Storage Disk quota in MB
Sites Maximum number of websites
Domains Maximum number of domains
Databases Maximum number of MariaDB databases
Mailboxes Maximum number of email mailboxes
FTP Maximum number of FTP accounts
PHP Default PHP version
Subscriptions Number of subscriptions using this package

Create Package

Click Create Package. The form is divided into several tabs:

Tab: Resources

Field Default Description
Name — Unique package name
Disk Space (MB) — Disk quota (0 = unlimited)
Max. Sites — Maximum number of websites (0 = unlimited)
Max. Domains — Maximum number of domains
Max. Subdomains — Maximum number of subdomains
Max. Domain Aliases — Maximum number of domain aliases
Max. Databases — Maximum number of databases
Max. Mailboxes — Maximum number of email mailboxes
Max. Mailbox Quota (MB) — Maximum size per mailbox
Max. Email Quota Total (MB) — Total email storage limit
Max. DB Quota (MB) — Maximum database size
Max. DB Connections — Simultaneous connections per DB user (MariaDB MAX_USER_CONNECTIONS, PostgreSQL CONNECTION LIMIT)
Max. Queries/Hour — Query-rate governor, MariaDB only (MAX_QUERIES_PER_HOUR)
Max. Query Runtime (ms) — Caps single long-running queries (runaway/CPU guard), PostgreSQL only (statement_timeout)
Max. Files (inodes) — Per-site inode limit (requires filesystem quota enabled)
Max. FTP Accounts — Maximum number of FTP accounts
Max. Cron Jobs — Maximum number of cron jobs
Max. Backups — Maximum number of backups
Max. WordPress — Maximum number of WordPress installations
Max. Traffic (GB) 0 Monthly traffic limit (0 = unlimited)

Unlimited Resources

A value of 0 means "unlimited" for all quotas.

Systemd slice (per-customer resource limits)

On the Resources tab the Systemd slice (resource limits) card limits what a customer's processes may consume at kernel level (systemd cgroups; effective for PHP-FPM with master and workers, cron jobs and the customer's processes):

Field Meaning
Max memory (MB) hard limit — processes beyond it are OOM-killed
CPU quota (%) 100 = one full core, 200 = two cores etc.
Max processes fork-bomb protection
IO read/write (MB/s or IOPS) 0 = unlimited

Defaults of a new package. If you create a package and leave all three fields (RAM, CPU, processes) at 0, the panel sets values by the number of PHP workers. The larger of the tier and the linear formula (204.8 MB, 10 % CPU and 102.4 processes per worker) applies:

PHP workers RAM CPU Processes
up to 2 512 MB 100 % 128
3–5 1024 MB 200 % 256
6–10 1536 MB 300 % 512
more than 10 3072 MB 400 % 1024

The reason for the floor: a PHP pool needs roughly 140–160 MB before its first worker (128 MB OPcache plus the master). With one worker the old linear calculation (205 MB) left too little room, a brief peak caused an OOM kill of the PHP master, and the site was down without any limit naming the cause. The tiers therefore guarantee at least 160 MB plus 128 MB per worker. Likewise a CPU quota below a full core lengthens the response time of every request (at 10 % an uncached WordPress page answered only after about 1.9 s) — hence the floor of one full core.

Existing packages keep their values

The new defaults apply only to newly created packages. An already stored package is not changed by an update — changing a limit on a customer's server is your decision, not a side effect of an update. If a customer runs on an older package with small values (e.g. 205 MB and 10 % CPU at one worker) and gets throttled or OOM-killed, raise the values yourself: edit the package → Resources tab → Systemd slice card → save. The panel then pushes the limits to every server running sites of this package. Keep in mind: if a customer raises memory_limit in their PHP settings above 128 MB, their slice needs correspondingly more.

A package's values also reach the first site of a new subscription. Until now it stayed on the agent defaults, and only a later change to the package applied the package values.

Tab: PHP Configuration

Field Default Description
PHP Workers 1 Number of PHP-FPM processes
Default PHP Version 8.4 PHP version for new sites
Allowed PHP Versions 8.1, 8.2, 8.3, 8.4 Comma-separated list

PHP limits (caps) — values a customer may not exceed in their website's PHP settings (memory_limit, upload_max_filesize, post_max_size, max_execution_time, max_input_vars; 0 = no cap). PHP defaults — initial values for new websites under this package (separate from the caps; clamped to the cap; 0 = system default).

Container hosting (Docker extension)

When the Docker extension is enabled, Allow container hosting (perm_docker) plus its limits (Container count, RAM/CPUs per container) also appear here. Container storage counts against the website's general disk quota. See Container Hosting (Docker).

Tab: Permissions

Each permission can be individually enabled or disabled:

Permission Description
Create Domains Customer may add their own domains
Create Subdomains Customer may create subdomains
Create Domain Aliases Customer may configure domain aliases
Create Databases Customer may create MariaDB databases
PostgreSQL Databases Customer may additionally create PostgreSQL databases
Create Mailboxes Customer may create email mailboxes
Create Forwards Customer may create email forwards
Catch-All Customer may set up one catch-all address per domain
Create FTP Accounts Customer may create FTP accounts
Create Cron Jobs Customer may set up cron jobs
Manage DNS Customer has access to DNS zones
Manage Backups Customer may create and restore backups
Manage SSL Customer may configure SSL certificates
PHP Settings Customer may change PHP configuration
Choose PHP Version Customer may switch the PHP version
File Manager Access to the file manager
phpMyAdmin Access to phpMyAdmin (SSO)
Webmail Access to Webmail (SOGo)
Groupware Access to SOGo calendars & contacts (CalDAV/CardDAV) per mailbox
Logs Access to access and error logs
Spam Filter Customer may change spam settings
Password Protection Customer may protect directories via .htpasswd
Web Statistics Access to visitor statistics
WAF Customer may enable the Web Application Firewall (ModSecurity/OWASP CRS) per website, see WAF
WordPress Toolkit Access to WordPress management
Joomla Toolkit Access to Joomla management
Staging Customer may create staging environments for websites
Uptime Monitor Customer may set up their own uptime monitors
Preview URL Access to the preview domain
Git Deployment Git-based deployment enabled
Composer Access to Composer management
Node.js/Python Access to Node.js and Python configuration

Tab: Web and Mail

Field Default Description
SSL Enabled Yes SSL enabled by default
HTTP > HTTPS No Automatic redirect
SSH Access No Shell access for customers
CGI Enabled No CGI scripts allowed
Email service Yes Mail service for the package. Off = mailboxes & forwarders blocked for customers on this package (SMTP/IMAP) and the Email menu hidden — the entire mail service is disabled for the package
Max. Outgoing Emails/Hour 0 Rate limiting (0 = unlimited)
Max. per Mailbox/Hour 0 Rate limiting per mailbox
Max. per Domain/Hour 0 Rate limiting per domain

Tab: Limits and Policies

Field Default Description
Overuse Policy block block or notify on quota exceeded
Storage Warning (%) 80 Customer is notified at this threshold
Suspended Site Status disabled What happens to the websites when the subscription is suspended: disabled (default, "Deactivate (Nginx off)") switches the vhosts off, suspended_page shows a suspension page, active leaves everything running. Suspending never deletes files or the Linux user; unsuspending (or renewing an expired subscription) switches the websites back on unchanged. Deleting is a separate, explicit action.
Validity Period (Days) 0 Automatic expiration (0 = unlimited)
Default resource quotas (CPU quota, RAM, max tasks) — No effect. Nothing reads these fields any more and they can no longer be written through the API. The effective limits are in the Systemd slice section
Backup Enabled Yes Backup feature available for this package

Edit Package

  1. Click the Edit icon in the action column
  2. Change the desired settings
  3. Click Save

Existing Subscriptions

Changes to a package affect new subscriptions. Existing subscriptions retain their current limits until a package upgrade is performed.


Delete Package

  1. Click the Delete icon
  2. Confirm the deletion

Packages with Subscriptions

A package cannot be deleted while subscriptions are assigned to it. Move all subscriptions to another package first.


Duplicate Package

To quickly create a similar package:

  1. Click the Copy icon in the action column
  2. The creation form opens with pre-filled values
  3. Adjust the name and desired settings
  4. Click Create