Everything in Grixel lives on a server called grixeld.
Most people are handed a server address by whoever runs it — but if
that's you, this page gets one running. You can do all of this on your
own machine; a single server on one host is a perfectly good setup to
start with.
grixeld was installed alongside grixel when
you installed Grixel.
#1. Start the server
The server keeps everything in one folder, called the data root. Pick a location and start it:
grixeld serve -data-root ~/grixel-data
That's it — the server is now running and listening for clients (by
default on localhost:8090). On startup it prints a short
banner with the exact command a client uses to connect, for example:
grixeld ready — data root: /home/you/grixel-data
connect a client: grixel login -server grpc://127.0.0.1:8090 -token <token>
create a token: grixeld user add -data-root /home/you/grixel-data -name <name>
listening: grpc://127.0.0.1:8090 (gRPC, primary) http://127.0.0.1:8080 (HTTP fallback)
Copy that -server URL when you connect clients. It runs
in the foreground; press Ctrl-C to stop it. To keep it
running properly in the background, see Hosting and backup.
The data root is created on first use and holds all your files, history, and settings. Back it up (see the hosting page); losing it loses everything.
#2. Create users and hand out tokens
People sign in with a token. Create a user and mint
one. These are offline commands, so stop the server
first (Ctrl-C), run them, then start it again:
grixeld user add -data-root ~/grixel-data -name alice
This prints a token once — copy it and give it to
that person; it can't be shown again. Give yourself an administrator
account too (any name; system is a common choice for the
operator).
Useful options:
grixeld user add -data-root ~/grixel-data -name ci-bot -scope ro -ttl 90d
-scope romakes a read-only token (good for bots that only need to read).-ttl 90dmakes the token expire after a while (e.g.12h,30m,90d).
List users, or roll a token if one leaks:
grixeld user list -data-root ~/grixel-data
grixeld user rotate -data-root ~/grixel-data -name alice
#3. Decide who can see what
A fresh server starts locked down: the operator (system)
can see everything, and everyone else has no access
until you grant it. So a brand-new user you just created will see
nothing — that's expected, not a bug. You grant access from the command
line, no file editing required (these are offline commands, so stop the
server first, then start it again):
# grant a user read+write on a path
grixeld acl grant -data-root ~/grixel-data alice rw /companies/acme/games/seasonal
# read-only, or full admin, on a path
grixeld acl grant -data-root ~/grixel-data ci-bot read /companies/acme
grixeld acl grant -data-root ~/grixel-data alice admin /companies/acme/games/seasonal
Even simpler — create a user and grant them access in one step (perfect for onboarding a tester):
grixeld user add -data-root ~/grixel-data -name tester -grant /companies/acme
To take access away, grixeld acl revoke with the same
arguments. Check how a path resolves for someone:
grixeld acl explain -data-root ~/grixel-data -as alice /companies/acme/games/seasonal
How the rules work: access is read,
write, or admin; the most specific
path wins (a rule on
/companies/acme/games/seasonal beats one on
/companies/acme), and a deny overrides an
allow at the same specificity. Anyone with no matching rule
sees the path as not found — they can't even tell it
exists. (See Sharing and
visibility.)
The grants live in ~/grixel-data/.grixel/acl/main.yaml.
You can edit that file by hand for advanced setups —
groups (grant many people at once) and
deny rules — then apply it with
grixeld acl reload or by restarting:
groups:
art-team: [alice, maya]
rules:
- { subject: "group:art-team", action: write, path: /companies/acme/games/seasonal/art, effect: allow }
#4. Connect a client
On any machine (including this one), sign in with a token from step 2 and start working:
grixel login -server grpc://your-server-host:8090 -token <token>
grixel whoami
If the server is on the same machine,
grpc://localhost:8090 is the address.
#Next
- Getting started — create your first project against the server you just started.
- Hosting and backup — keep it running, secure it for use beyond your own machine, and back it up.