Install
Before you start, check the requirements, and make sure the server’s DNS name already resolves to its public IP:
It must print the server’s public IP. The certificate step depends on it.
1. Add the apt sources
Two sources: the jambonz repository, and NodeSource for Node.js (Debian 12’s own Node is too old).
If the server already runs jambonz from our Debian package, the jambonz source is already there.
Pre-release testers only: until Studio is released, its packages are in the bookworm-staging distribution.
Replace bookworm main with bookworm-staging main in the echo line above. (This note is removed at release.)
2. Install the package
This installs Studio and its data stores, and ends by telling you to run studio configure. Studio itself is not
started yet. Debian starts MariaDB and Redis (on 127.0.0.1 only) and nginx with its default page on port 80;
studio configure sets them up.
3. Configure
--host is the server’s DNS name. --email is the email of the platform Admin, the user who manages
workspaces on this Studio, and the address Let’s Encrypt uses for expiry notices.
studio configure:
- generates the passwords and keys Studio needs into
/etc/jambonz-studio/studio.env, readable only by root and the Studio service; - sets up MariaDB, Redis, ClickHouse and Qdrant, each listening on
127.0.0.1only, with ClickHouse’s memory capped at about 20% of the server’s RAM; - gets a TLS certificate for
--hostand sets up nginx for HTTPS (below); - creates the databases, starts Studio and checks that every service is healthy;
- creates the platform Admin and prints a link to set its password.
It takes a minute or two. Copy the link printed at the end
(https://studio.example.com/activate/...): it is how the Admin signs in the first time.
studio configure is safe to run again, for example to change a setting. Options you leave out keep their previous
values, and the generated passwords and keys are never replaced. See Configuration
for every option.
The TLS certificate
By default, studio configure gets a certificate from Let’s Encrypt:
- nginx serves your hostname on port 80, and
certbotasks Let’s Encrypt for a certificate. Let’s Encrypt checks that you control the name by connecting tohttp://<host>/.well-known/acme-challenge/..., which is why DNS must point at the server and port 80 must be open. - The certificate is installed in
/etc/letsencrypt/live/<host>/, nginx switches to HTTPS, and port 80 redirects to 443. - It renews automatically:
certbot.timerrenews it before it expires and nginx reloads to use it. You can check the renewal setup at any time withsudo certbot renew --dry-run.
If the certificate can’t be issued, configure stops with:
Fix the cause and run studio configure again.
To use your own certificate instead, see Your own certificate.
4. Check it
Every line should show a ✓: the api, gw, rag and worker services, and MariaDB, Redis, ClickHouse and Qdrant.
studio status shows the version, processes, disk and certificate as well.
5. Sign in and add your first workspace
The platform Admin manages workspaces and their users. It does not build agents itself.
- Open the link
studio configureprinted, set the Admin’s password and sign in. - Under Admin, select New workspace. Enter a Workspace name, and the Name and Email of its First user, who becomes the workspace’s owner. The email must be different from the Admin’s.
- Studio shows that user’s activation link. Mail is off, so it is not emailed: select Copy link and give it to the user. It is shown once; Regenerate link issues a new one and the previous link stops working.
- The user opens the link, sets a password and signs in. From here, follow Getting started to connect your jambonz account and build an agent.
To add more people later, open the workspace under Admin and add them; each gets an activation link the same way.
Without mail, self sign-up and password-reset emails are off. To turn them on, see Mail.