There is nothing to install first — not Ring, not Node, not a web server. The binary you download is the whole stack. This page takes you from an empty folder to a running API, then shows you where each next step lives.
$ ringpm install ringserv from mayouni $ ringpm run ringservWithout Ring — and you do not need it — pick your platform on the releases page, put the file somewhere on your path, and on Linux or macOS make it executable (
chmod +x ringserv). That is the entire installation either way.calc.ring —
containing nothing but functions:
func add a, b return a + b func hello name return "Ahlan, " + name + "!"
ringserv serve calc.ring — and every function in
the file is callable over the web, its parameters matched to your payload
by name:
$ curl -X POST localhost:8080/api/v1 \ -d '{"service":"calc","action":"hello", "payload":{"name":"Sara"}}' {"code":0,"message":"OK","data":"Ahlan, Sara!"}
Not sure what you just published? ringserv serve --explain
calc.ring prints exactly which functions became callable — and which stayed
private (any name starting with _) — then exits without serving anything.
The tool states it, so you never have to guess.
Two scaffolds, for two moods. ringserv new myapp --gesture
creates the pair you just met — a file of functions and a small
ringserv.yaml for the port and workers. Plain
ringserv new myapp creates the fuller shape: an app.ring with
a declared service and a table, a web page that calls its own API, and a test that
already passes.
$ ringserv new myapp $ cd myapp $ ringserv dev # serve, watch, reload on save $ ringserv test # run its tests against a scratch database
ringserv dev is the daily loop: edit, save, and the server
reloads itself. When you want to see everything you are running in one place,
ringserv panel . opens a small admin page in your browser that starts,
stops and watches your applications.
The tutorial arc sequences the whole journey — six runnable steps with a time on each. In brief:
.js file and it runs
inside the same binary, under the same rules, calling your Ring services by name —
the JS guest.One rule, enforced by the server itself: for HTTPS, put a proxy in front — Caddy, nginx or Traefik handle certificates in a few lines. RingServ speaks plain HTTP on purpose and refuses to start on a public address until you confirm a proxy is there, so traffic cannot go out in the clear by accident. The reasoning, and the two ways forward, are in docs/TLS.md.