Deployment guide
Deploy Nona on Google Cloud
The simplest Google Cloud deployment for Nona is a Compute Engine VM with Docker and a persistent disk. That fits Nona's local storage model better than Cloud Run.
Recommended GCP shape
- Use Google Compute Engine as the starting point.
- Choose Ubuntu and use the boot disk or an attached persistent disk for
/var/lib/nona. - Expose ports
22and18080for the initial smoke test. - Add TLS and DNS after the first deployment is working.
Why not start with Cloud Run
Nona keeps state locally under /var/lib/nona. Google documents that Cloud Run's writable container file system is in-memory and that data written there does not persist when the instance stops, which makes it the wrong default for a stateful primary Nona node.
Cloud Run file system behavior: Cloud Run container runtime contract
GCP steps
- Create a new Compute Engine VM instance.
- Select Ubuntu and a small general-purpose machine type.
- Allow inbound ports
22and18080for the first smoke test. - Use the boot disk to start or attach a larger persistent disk if you want separate data storage.
- SSH into the VM, install Docker for your distro, and then run the Nona container commands below.
Official Compute Engine guide: Create and start a Compute Engine instance
Run Nona with Docker
Install Docker from the official Docker Engine documentation for your distro, then run Nona with the command below.
1. Run Nona
sudo docker run -d \
--name nona \
--restart unless-stopped \
-p 18080:8080 \
-v nona-data:/var/lib/nona \
rywaredev/nona:latestOptional: use a mounted persistent disk
If you mount a separate persistent disk, bind that path into /var/lib/nona.
sudo mkdir -p /mnt/nona
sudo docker run -d \
--name nona \
--restart unless-stopped \
-p 18080:8080 \
-v /mnt/nona:/var/lib/nona \
rywaredev/nona:latestAfter the GCP deployment works
- Put TLS in front of the VM before using it seriously.
- Back up the boot disk or mounted persistent disk path.
- Keep Cloud Run in mind for future stateless edges or helpers, not as the default stateful primary.
Need the overview? Go back to the deploy hub.