Create PostgreSQL using Zerops GUI
First, set up a project in Zerops GUI. Then go to the project dashboard page and choose Add new service in the left menu in the Services block.Choose PostgreSQL version
Select from the currently supported PostgreSQL versions. The available versions are displayed in the service creation wizard.Set a hostname
Enter a unique service identifier likepostgresql, sql, db etc.
Configure auto scaling
Zerops automatically scales PostgreSQL services based on actual database usage. Configure the scaling parameters to match your database needs and control costs. CPU Mode: Choose between shared (cost-effective) or dedicated (consistent performance). Resource Limits: Set minimum and maximum resources for CPU, RAM, and disk to control costs and ensure performance. Deployment Mode: Choose the reliability configuration for your PostgreSQL service:- Highly Available: Multiple containers with redundancy across different physical machines. Recommended for production environments.
- Single Container: One container suitable for development and non-critical environments.
Create PostgreSQL using zCLI
zCLI is the Zerops command-line tool. To create a new PostgreSQL service via the command line, follow these steps:Install & setup zCLI
Install and configure zCLI if you haven’t already.
Create a project description file
Zerops uses a YAML format file to describe the project infrastructure.Basic example
Create a directorymy-project. Create a description.yaml file inside the directory with the following content:
postgresql1.
Full example
Create a directorymy-project. Create a description.yaml file inside the directory with the following content:
postgresql1. The high availability mode will be chosen and the custom auto scaling configuration will be set.
The hostname of the second service will be set to postgresql2. The single container mode will be chosen and the default auto scaling configuration will be set.
Description of description.yaml parameters
Project section
Theproject: section is required. Only one project can be defined.
| Parameter | Description | Limitations |
|---|---|---|
| name | The name of the new project. Duplicates are allowed. | |
| description | Optional. Description of the new project. | Maximum 255 characters. |
| tags | Optional. One or more string tags. Tags do not have a functional meaning, they only provide better orientation in projects. |
Services section
At least one service in theservices: section is required. You can create a project with multiple services.
| Parameter | Description |
|---|---|
| hostname | The unique service identifier. The hostname of the new database will be set to the hostname value.Limitations: - duplicate services with the same name in the same project are forbidden - maximum 25 characters - must contain only lowercase ASCII letters (a-z) or numbers (0-9) |
| type | Specifies the service type and version. See what PostgreSQL service types are currently supported. |
| mode | Defines the operation mode of the PostgreSQL service. HA Creates a PostgreSQL cluster with 3 database containers and 2 free database proxies. This mode is suited for production. Zerops always keeps the 3 database containers on different physical machines. All your data is stored redundantly in 3 identical copies. In case of a failure of a container or the underlying physical machine, Zerops automatically disconnects the failed container from the cluster, creates a new container and syncs all data from the remaining 2 copies. Finally, the broken container is automatically deleted. In HA mode, a dedicated read replica port ( 5433) is available, allowing you to route read queries to replicas for better performance.NON_HA Zerops will create a PostgreSQL database installed in a single container. Useful for non-essential data or dev environments. Your data is stored only in a single container. If the container or the underlying physical machine fails, your data since the last backup are lost. Zerops doesn’t provide any automatic repairs of a single node PostgreSQL services. |
| verticalAutoscaling | Optional. Defines custom vertical auto-scaling parameters. All verticalAutoscaling attributes are optional. Not specified attributes will be set to their default values. |
| - cpuMode | Optional. Accepts SHARED, DEDICATED values. Default is SHARED |
| - minCpu/maxCpu | Optional. Set the minCpu or maxCpu in CPU cores (integer). |
| - minRam/maxRam | Optional. Set the minRam or maxRam in GB (float). |
| - minDisk/maxDisk | Optional. Set the minDisk or maxDisk in GB (float). |
Create a project based on the description.yaml
When you have yourdescription.yaml ready, use the zcli project project-import command to create a new project and the service infrastructure.
description.yaml content.
The maximum size of the description.yaml file is 100 kB.
You don’t specify the project name in the zcli project project-import command, because the project name is defined in the description.yaml.
If you have access to more than one client, you must specify the client ID for which the project is to be created. The clientID is located in the Zerops GUI under the client name on the project dashboard page.
Add PostgreSQL service to an existing project
Create a directorymy-project if it doesn’t exist. Create an import.yaml file inside the my-project directory with following content:
postgresql1.
The content of the services: section of import.yaml is identical to the project description file. The import.yaml never contains the project: section because the project already exists.
When your import.yaml is ready, use the zcli project service-import command to add one or more services to your existing Zerops project.
zcli project service-import importYamlPath, you will be given a list of your projects to choose from.
The maximum size of the import.yaml file is 100 kB.
Next Steps
Connect to PostgreSQL
Learn how to connect from your applications
Manage Users & Databases
Create and manage users, databases, and plugins