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 and run the Docker setup below.
Official Compute Engine guide: Create and start a Compute Engine instance
Install Docker and run Nona
1. Install Docker
sudo apt-get update
sudo apt-get install -y docker.io
sudo systemctl enable --now docker2. 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.