Skip to content
Aleksandr Trofimov edited this page Aug 14, 2026 · 13 revisions

How to deploy a project

Project deployment is driven by the Deployment block on the project page. Submitting the deploy form provisions a cloud VM on your own cloud through the deployment jobs API.

TL;DR

  • Create the project.
  • Add DigitalOcean or AWS under Server Providers.
  • Open the project → Deployment → Deploy.
  • Choose provider, zone, instance (≥ 2 GB for NEO, 4+ GB is recommended).
  • Pick services (not UNA + NEO together).
  • Fill UNA admin credentials / NEO branding.
  • Wait until status is Running (NEO needs longer time 7+ minutes).
  • Optionally attach a custom domain; it will switch to HTTPS.
  • Tear down when the instance is no longer needed.

Prerequisites

Do these before the Deploy button appears.

1. Create a project Create a project as usual. Project name is unique, use only alphanumeric characters, dots and dashes, no more than 16 chars. On create, the system also creates an OAuth key & secret (K&S) used as UNA Key / UNA Secret.

While project isn't deployed, the project is considered as self managed. You can enter Domain where your manually installed UNA is hosted and get UNA Key & UNA Secret for this installation. For automated install proceed with the deployment flow below.

2. Add a server provider Open Account dashboard → Server Providers. Add at least one provider owned by the project author:

Provider Credentials
DigitalOcean Access token
AWS Access key and secret access key

A Custom type is not wired into deploy zones or instance sizes. Use DigitalOcean or AWS. If none are configured, the block asks you to add one.

2.1 Creating DigitalOcean API key

Following this guide on how to create new API Key. Prefer restricted key with all Droplet scopes.

2.2 Creating AWS API key

Retrieve your access key ID and secret access key

Start a deployment

On the project profile, the Deployment block shows Deploy Your Project. That opens the deploy popup.

Infrastructure

Provider

Your saved DigitalOcean or AWS account. Changing it reloads zones and instance types.

Zone (required)

Geographical region, choose closest to the location of site users.

Instance type (required)

Select AWS or DigitalOcean instance type. Can be changed later.

NEO needs at least 2 GB RAM, 4 GB RAM is recommended.

Services to deploy

Select at least UNA or UNA API + any other combination except UNA + NEO together. When UNA and NEO needs to be deployed together then select UNA API + NEO.

Service What it installs
NEO NEO frontend at the site root
UNA Full UNA at the site root
UNA API UNA in /una/ subfolder (use this with NEO)
phpMyAdmin /phpmyadmin/ for DB manage (only for developers)
Messenger Server Jot server
Logs Collector Logs collector stack
Metrics Collector Metrics collector stack
Logs/Metrics Viewer Grafana with Logs and Metrics dashboard at /grafana/ subfolder

If you skip UNA / UNA API, the UNA details section is not required. If you skip NEO, the NEO section is not required.

UNA details

Specify when UNA or UNA API is selected:

Field Notes
Site name Defaults to the project name
Site email Defaults to the owner account email
Admin email Operator login email
Admin password At least 8 characters. Also used as Grafana password
Starter Kit UNA or Spacenook based images

The job also generates MySQL passwords, a NEO API key, and a Soketi secret. UNA is downloaded and installed from the matching GitHub release zip.

NEO details

Specify when NEO is selected:

Field Notes
Accent color rgb(r, g, b). Avoid very light/dark values; a color scale is generated from it
NEO logo HTML or SVG; height should be 36px. Emoji can be used as well.
NEO splash RAW HTML.

NOTE: You cannot delete a project while a deployment record exists. NOTE: NEO needs more time to start (7+ minutes), while it's building you will see "Starting..." where NEO is deployed.


After it is running

The success view shows links for the containers you chose:

  • NEO → site root, use the same credentials as in UNA to login.
  • UNA → root, or /una/ if UNA API was used with NEO.
  • phpMyAdmin → /phpmyadmin/, for developer purposes only, you can also start this container temporarily, when needed
  • Jot → site root; set this in UNA Studio → Messenger → Jot Server URL
  • Grafana → /grafana/ — login admin, password = UNA admin password

Change domain

  • Point a DNS A record at the shown IP.
  • Enter the hostname (without https://).
  • The name must resolve to that IP.
  • Submit switches the site to HTTPS.

Edit

Change instance size, containers, and NEO branding (logo, splash, accent). After editing allow 7+ minuted for NEO to be rebuild.

Tear down

IMPORTANT: Server will be removed with all data!

IMPORTANT: don't delete resources manually in cloud provider, it may leave some resources still in use, spending your budget. Always use "Tear Down" to remove all related resources completely.

Log

Raw job output.


Redeploy after error or failure

Redeploy is allowed only if the last deploy job is failed. It deletes the local deployment row and reopens the same deploy form. Active (successful) deployments cannot be redeployed this way — tear down first.

IMPORTANT: On failed, you need to tear down leftover cloud resources.


Recommended combinations

Goal Select
Classic UNA site UNA + Messenger Server + Logs Collector + Metrics Collector
NEO site with UNA backend NEO + UNA API (Messenger as needed) + Logs Collector + Metrics Collector

Grafana and phpMyAdmin can be run only when needed.

Clone this wiki locally