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
- In the console sidebar, click Projects
- In the top right corner, click the "+" icon or "Create Project" button
- 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:
| Model | Description | Ideal for |
|---|---|---|
| Hourly | Pay-per-hour usage. Only pay for the time your application is running. | Intermittent use projects, testing, development |
| Monthly | Fixed monthly price. Instance reserved for 30 days. | Applications that need to be always available |
| Yearly | Annual 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-apachePrivate 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 oflatest. 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:
| Technology | Default Port |
|---|---|
| Node.js | 3000 |
| Python Flask | 5000 |
| Java/Spring | 8080 |
| Nginx | 80 |
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=productionLimit: 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
/uploadsStep 8: Configure Domains
Zenifra Subdomain
Plans above Basic include a custom subdomain in the format:
your-projectCustom Domain
You can use your own domain (e.g., api.yourcompany.com) instead of the default subdomain.
To configure:
- Enable the custom domain option
- Add your domain (e.g.,
api.yourcompany.com) - 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 IP0.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
- Review all configurations
- Click "Create Project"
- 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?
- Go to the project page
- Click Settings
- Click Delete
- Confirm the action
Warning: This action is irreversible! All data and configurations will be permanently deleted.