Repository navigation
v3.2.5
What's new
Custom domains + unassigned-host sites (#1213)
Sites can now connect a real custom domain from the dashboard or the publish dialog.
- Connect-a-domain flow — enter a domain, get the exact DNS records to create at your registrar (routing CNAME + Railway ownership TXT), and the dialog polls until the certificate is live. Live domains collapse to a read-only view with a "Change domain" option.
- Providers — Railway (hosted) attaches + verifies + issues certs automatically via its API. A manual fallback (default, self-host) returns generic DNS guidance; routing/TLS is the operator's reverse proxy. Re-entering a domain already attached to the instance now adopts it instead of erroring.
- Unassigned-host sites — multi-site instances can create a site with no domain yet (editor-only until one is assigned); assign a domain later from the dashboard.
- Changing a site's domain regenerates it under the new host and tears down the old host's files.
Speed up publishing with incremental compiling — server fields (#1205)
Adds compiled_html_hash / compiled_js_hash so the compiler can skip unchanged pages/symbols. No-op until the primo-mcp compiler side lands; existing rows recompile once to populate the hash.
Plan limits enforcement (#1204)
Hosted instances now enforce their tier's site and editor allowances.
- Site cap (instance-wide) on site creation — covers dashboard,
primo push/import, and clone. - Editor cap (per-site) on adding another
editor-role collaborator. - Caps read from
config_values, falling back toPRIMO_SITE_CAP/PRIMO_EDITOR_CAP. A cap of 0 / unset means unlimited — self-host is never restricted.
Fixes
- Fix broken Railway deploy links in the README (#1211)
Note for operators: running instances pick this up on their next redeploy/restart onto the new :latest image.