Skip to content

Get immediate

Dev Support

on our community forums

Plans

Scripts for creating and editing hosting plans (packages).

List Plans

To list all current hosting packages (plans) run:

bash
opencli plan-list
Example output
bash
# opencli plan-list
+----+------------------------+-----------------------------------+---------------+----------------+-------------+-----------+------------+--------------+----------+------+------+-----------+-------------+
| id | name                   | description                       | domains_limit | websites_limit | email_limit | ftp_limit | disk_limit | inodes_limit | db_limit | cpu  | ram  | bandwidth | feature_set |
+----+------------------------+-----------------------------------+---------------+----------------+-------------+-----------+------------+--------------+----------+------+------+-----------+-------------+
|  1 | Standard plan          | Small plan for testing            |             0 |             10 |           0 |         0 | 5 GB       |      1000000 |        0 | 2    | 2g   |        10 | default     |
|  2 | Developer Plus         | 4 cores, 6G ram                   |             0 |             10 |           0 |         0 | 10 GB      |      1000000 |        0 | 4    | 6g   |       100 | default     |
|  3 | unlimited plan         | literally unlimited!              |             0 |              0 |           0 |         0 | 0 GB       |            0 |        0 | 0    | 0g   |         0 | default     |
|  4 | small 456              |                                   |             2 |              2 |           1 |         1 | 1 GB       |       100000 |        1 | 1    | 1g   |        10 | basic       |
|  5 | Database Administrator | only mysql and phpmyadmin enabled |             0 |              0 |           0 |         0 | 0 GB       |            0 |        0 | 0    | 0g   |         0 | mysql_only  |
+----+------------------------+-----------------------------------+---------------+----------------+-------------+-----------+------------+--------------+----------+------+------+-----------+-------------+

You can also format the data as JSON:

bash
opencli plan-list --json
Example output
json
[
  {
    "id": "1",
    "name": "Standard plan",
    "description": "Small plan for testing",
    "email_limit": "0",
    "ftp_limit": "10",
    "domains_limit": "0",
    "websites_limit": "0",
    "disk_limit": "5 GB",
    "inodes_limit": "1000000",
    "db_limit": "0",
    "cpu": "2",
    "ram": "2g",
    "bandwidth": "10",
    "feature_set": "default"
  }
]
[
  {
    "id": "2",
    "name": "Developer Plus",
    "description": "4 cores, 6G ram",
    "email_limit": "0",
    "ftp_limit": "10",
    "domains_limit": "0",
    "websites_limit": "0",
    "disk_limit": "10 GB",
    "inodes_limit": "1000000",
    "db_limit": "0",
    "cpu": "4",
    "ram": "6g",
    "bandwidth": "100",
    "feature_set": "default"
  }
]
[
  {
    "id": "3",
    "name": "unlimited plan",
    "description": "literally unlimited!",
    "email_limit": "0",
    "ftp_limit": "0",
    "domains_limit": "0",
    "websites_limit": "0",
    "disk_limit": "0 GB",
    "inodes_limit": "0",
    "db_limit": "0",
    "cpu": "0",
    "ram": "0g",
    "bandwidth": "0",
    "feature_set": "default"
  }
]
[
  {
    "id": "4",
    "name": "small 456",
    "description": "",
    "email_limit": "2",
    "ftp_limit": "2",
    "domains_limit": "1",
    "websites_limit": "1",
    "disk_limit": "1 GB",
    "inodes_limit": "100000",
    "db_limit": "1",
    "cpu": "1",
    "ram": "1g",
    "bandwidth": "10",
    "feature_set": "basic"
  }
]
[
  {
    "id": "5",
    "name": "Database Administrator",
    "description": "only mysql and phpmyadmin enabled",
    "email_limit": "0",
    "ftp_limit": "0",
    "domains_limit": "0",
    "websites_limit": "0",
    "disk_limit": "0 GB",
    "inodes_limit": "0",
    "db_limit": "0",
    "cpu": "0",
    "ram": "0g",
    "bandwidth": "0",
    "feature_set": "mysql_only"
  }
]

Create Plan

To create a new plan run the following command:

bash
opencli plan-create name"<TEXT>" description="<TEXT>" emails=<COUNT> ftp=<COUNT> domains=<COUNT> websites=<COUNT> disk=<COUNT> inodes=<COUNT> databases=<COUNT> cpu=<COUNT> ram=<COUNT> bandwidth=<COUNT>
ParameterDescriptionTypeNotes
nameName of the planStringUse quotes for multiple words
descriptionPlan descriptionStringUse quotes for multiple words
email_limitMax number of email accountsInteger0 for unlimited
ftp_limitMax number of FTP accountsInteger0 for unlimited
domains_limitMax number of domainsInteger0 for unlimited
websites_limitMax number of websitesInteger0 for unlimited
disk_limitDisk space limit in GBInteger
inodes_limitMax number of inodesIntegerMinimum 250000
db_limitMax number of databasesInteger0 for unlimited
cpuCPU core limitInteger
ramRAM limit in GBInteger
bandwidthPort speed in Mbit/sInteger

Example:

bash
opencli plan-create 'basic' 'Basic Hosting Plan' 10 5 10 5 50 500000 10 2 4 nginx 1000

List Users on Plan

List all users that are currently using a plan:

bash
opencli plan-usage
Example output
bash
# opencli plan-usage 'Standard plan'
+----+----------+-------------------+---------------+---------------------+
| id | username | email             | plan_name     | registered_date     |
+----+----------+-------------------+---------------+---------------------+
|  3 | demo     | [email protected] | Standard plan | 2025-04-28 14:47:52 |
|  4 | dummy    | dummy             | Standard plan | 2025-04-28 15:20:19 |
+----+----------+-------------------+---------------+---------------------+

You can also format the data as JSON:

bash
opencli plan-usage --json
Example output
json
[
  {
    "id": "3",
    "username": "demo",
    "email": "[email protected]",
    "plan_name": "Standard plan",
    "registered_date": "2025-04-28 14:47:52"
  }
]
[
  {
    "id": "4",
    "username": "dummy",
    "email": "dummy",
    "plan_name": "Standard plan",
    "registered_date": "2025-04-28 15:20:19"
  }
]

Delete Plan

Delete a plan if no users are currently using it.

bash
opencli plan-delete <PLAN_NAME>
Example output
bash
# opencli plan-delete 'ubuntu_nginx_mysql'
Plan 'ubuntu_nginx_mysql' deleted successfully.

TIP: use ' or " around the plan name if it contains spaces: "plan name here".

--json flag can be passed to return the response as JSON.

Example output
bash
# opencli plan-delete 'ubuntu_nginx_mysql'  --json
{"message": "Plan 'ubuntu_nginx_mysql' deleted successfully."}

Edit Plan

Change plan limits.

bash
opencli plan-edit id=<ID> name"<TEXT>" description="<TEXT>" emails=<COUNT> ftp=<COUNT> domains=<COUNT> websites=<COUNT> disk=<COUNT> inodes=<COUNT> databases=<COUNT> cpu=<COUNT> ram=<COUNT> bandwidth=<COUNT> --debug
ParameterDescriptionTypeNotes
plan_idID of the planIntegerRequired
new_plan_nameNew name of the planStringUse quotes for multiple words
descriptionPlan descriptionStringUse quotes for multiple words
email_limitMax number of email accountsInteger0 for unlimited
ftp_limitMax number of FTP accountsInteger0 for unlimited
domains_limitMax number of domainsInteger0 for unlimited
websites_limitMax number of websitesInteger0 for unlimited
disk_limitDisk space limit in GBInteger
inodes_limitMax number of inodesIntegerMinimum 250000
db_limitMax number of databasesInteger0 for unlimited
cpuCPU core limitInteger
ramRAM limit in GBInteger
bandwidthPort speed in Mbit/sInteger
Example output
bash
# opencli plan-edit 1 "sad_se_zove_ovako" "novi plan skroz" 0 0 0 0 10 500000 1 1 1 openpanel/nginx 500

Released under the MIT License.