Logo ZenifraZenifra
How init the use of Zenifra

How to Create a Project on Zenifra via Console

Learn how to create your first project on the Zenifra platform. Complete tutorial with console, plans, settings and cloud deployment.

How to Create a Project on Zenifra via Console

This complete tutorial will teach you how to create your first project on the Zenifra PaaS platform, from registration to application deployment.

Prerequisites

To create a project on Zenifra, you need:

  • A created and verified account
  • A payment method registered (credit card or account balance)
  • Logged into the console

Accessing Project Creation

  1. In the console sidebar, click Projects
  2. In the top right corner, click the "+" icon or "Create Project" button
  3. You will be directed to the new project configuration screen

Step 1: Choose Project Type

Zenifra offers different application types for deployment:

HTTP Application

Ideal for:

  • Web applications (React, Vue, Angular)
  • HTTP servers (Nginx, Apache)
  • REST APIs
  • Node.js, Python, Java applications, and more

TCP Application

Coming soon

Ideal for:

  • Databases
  • Messaging systems
  • Applications using pure TCP protocols

Step 2: Select Plan

Plans define the available resources and pricing for your application. Each plan offers different levels of:

  • CPU and Memory
  • Storage
  • Maximum instance count
  • Exclusive features (customized subdomain, IP access, etc.)

Payment Models

Choose how you want to pay for your project:

ModelDescriptionIdeal for
HourlyPay-per-hour usage. Only pay for the time your application is running.Intermittent use projects, testing, development
MonthlyFixed monthly price. Instance reserved for 30 days.Applications that need to be always available
YearlyAnnual price with discount. Instance reserved for 364 days.Long-term projects with savings

Tip: With hourly payment, if your application runs for only 10 minutes in the month, you only pay for 1 hour!


Step 3: Configure Basic Information

Project Name

The name is used for:

  • Identifying your project on the dashboard
  • Generating unique identifiers (Project ID)
  • Creating automatic subdomains

Name rules:

  • Minimum: 6 characters
  • Maximum: 32 characters
  • Only lowercase letters, numbers, and hyphens
  • Example: my-web-project, my-company-api

Description

Optional field to add information about the project. Helps organize and identify projects when you have multiple ones.


Step 4: Configure OCI Image

The OCI image is the template that will be used to create your instance. You can use public or private images.

Public Image

Images that don't require authentication to download. Examples:

docker.io/nginx:1.26-alpine3.19
docker.io/metabase/metabase:v0.50.0
docker.io/wordpress:6.5.3-php8.2-apache

Private Image

For images in private registries, you'll need to configure authentication:

Option 1: AWS ECR

  • AWS region where your repository is located
  • Access Key ID and Secret Access Key
  • Your AWS account ID

Option 2: Username and Token

  • Registry username
  • Access token or password

Important: Always use specific tags (like v1.2.3) instead of latest. This ensures your application always uses the same image version.


Step 5: Configure Port and Instances

Application Port

The port your application listens on internally. External traffic (HTTP/HTTPS on ports 80 and 443) will be routed to this port.

Common ports by technology:

TechnologyDefault Port
Node.js3000
Python Flask5000
Java/Spring8080
Nginx80

Instance Count

Number of replicas for your application:

  • 1 instance: Ideal for low-traffic applications or testing
  • 2+ instances: High availability and load balancing

Recommendation: For production applications, use at least 2 instances to ensure availability in case of failures.


Step 6: Environment Variables

Environment variables (ENVs) are settings your application can access at runtime. They are useful for:

  • Sensitive configurations (API keys, passwords)
  • External API URLs
  • Configurations that change between environments

ENV examples:

DATABASE_URL=postgres://user:pass@host:5432/db
API_KEY=your-api-key-here
PORT=3000
NODE_ENV=production

Limit: Up to 50 environment variables per project.


Step 7: Configure Storage

Persistent Storage

Choose "Yes" if your application needs to:

  • Save files that should survive restarts
  • Share data between multiple instances
  • Persist database data
  • Keep user uploads

Choose "No" for applications where data is ephemeral (like stateless web servers).

Storage Capacity

  • Minimum: 1 GB
  • Maximum: 120 GB

Warning: For hourly payment models, storage can only be increased, never decreased. For monthly or yearly contracts, storage cannot be modified after project creation.

Directory to Persist

Absolute path of the directory inside the container whose data will be saved:

/app/data
/var/lib/postgresql/data
/uploads

Step 8: Configure Domains

Zenifra Subdomain

Plans above Basic include a custom subdomain in the format:

your-project

Custom Domain

You can use your own domain (e.g., api.yourcompany.com) instead of the default subdomain.

To configure:

  1. Enable the custom domain option
  2. Add your domain (e.g., api.yourcompany.com)
  3. Configure your domain's DNS to point to Zenifra via CNAME

Limit: Up to 20 custom domains per project.


Step 9: Configure Network Access (Premium+ Plans)

This option is only available on specific plans.

Whitelist (Allow List)

Defines which IP addresses can access your project. Non-listed IPs will be blocked.

CIDR format:

  • XXX.XXX.XXX.XXX/32 - A specific IP
  • 0.0.0.0/0 - Allows all IPs (not recommended in production)

You can add your current IP automatically with one click.

Blacklist (Block List)

Defines specific IPs that will be blocked, even if they are on the whitelist.


Step 10: Complete Creation

  1. Review all configurations
  2. Click "Create Project"
  3. Wait a few seconds for creation

After Creation

You will receive:

  • Project ID: Unique identifier for your project
  • API Key: Authentication key for the Zenifra API

Store the API Key in a safe place! You will need it to manage your project via API.


Next Steps


FAQ

Can I change the plan after creating the project?

Yes. If the payment model is hourly, you can change the plan at any time. For monthly or yearly contracts, changes are only allowed at the end of the contract period.

How do I update my project's image?

You can update the image manually through the console or set up automatic deployment via GitHub Actions. See our automatic deployment tutorial.

What happens if I reach the storage limit?

When storage reaches 90% capacity, you will receive a notification. To increase it, you will need to create a new project with more storage.

Can I have multiple projects?

Yes! There is no limit on projects per account. Each project is billed independently according to its settings.

How do I delete a project?

  1. Go to the project page
  2. Click Settings
  3. Click Delete
  4. Confirm the action

Warning: This action is irreversible! All data and configurations will be permanently deleted.