Repository navigation
Deployment
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.
- 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.
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
On the project profile, the Deployment block shows Deploy Your Project. That opens the deploy popup.
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.
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.
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.
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.
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/— loginadmin, password = UNA admin password
- 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.
Change instance size, containers, and NEO branding (logo, splash, accent). After editing allow 7+ minuted for NEO to be rebuild.
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.
Raw job output.
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.
| 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.
IMPORTANT NOTE: documentation was moved here - https://una.io/wiki/Introduction