Skip to main content

baya — FabricStudio, self-hosted

Installs and operates FabricStudio on your own Linux server: one command brings up the whole platform, and each engineer works in their own workspace, on their own home directory, signed in through a browser.

Published as bayafs; the command is baya.

Requirements

  • Linux x86-64 — RHEL/Oracle 9, Debian 13, Ubuntu 22.04+, or SLES 15
  • 4+ CPUs, 16 GB+ RAM, 100 GB+ free disk
  • Python 3.9 or newer
  • root: the installer manages docker, Kubernetes, and ports 80/443
  • Inbound 80 and 443 from your users; outbound HTTPS to Baya and to Google Artifact Registry
  • A licence key from Baya

Install

sudo python3 -m venv /opt/baya
sudo /opt/baya/bin/pip install bayafs
sudo ln -sf /opt/baya/bin/baya /usr/local/bin/baya

sudo baya doctor                      # check this host first; every failure names its fix
sudo baya license set <licence-key>
sudo baya storage set --base /home    # where your engineers' home directories live
sudo baya init --hostname fs.yourcompany.com

A virtual environment rather than a plain pip install: several distributions mark their system Python externally managed and refuse, and a user-level install puts baya where sudo cannot see it.

init installs what is missing, starts a single-node Kubernetes cluster, pulls the images your licence entitles you to, and brings up the platform — about ten minutes. It is safe to re-run: a failed step resumes rather than repeats.

--hostname is the address your users will type. It goes into the certificate, the login redirect, and the tokens, so changing it later means re-running init.

Give people access

sudo baya user map you@yourcompany.com --linux-user "$USER" --name "Your Name" --admin
# prompts for a password, twice, without showing it
sudo baya verify

user map binds a login to a local account and starts that person's workspace on their real home directory — files their designs produce are owned by them, exactly as if they had run the tools from a shell. The account must already exist and own that directory, or the mapping is refused rather than half-applied.

It also creates the account they sign in with, prompting for a password twice without displaying it. Map yourself first, with --admin: nobody can sign in to a fresh install until someone is mapped, and the admin role is what opens the admin console inside the GUI. No identity provider is needed for this — the bundled Keycloak holds the account.

A password is never accepted as a command-line argument: that would put it in shell history and in the process list, where every user on the machine can read it. For automation, pipe it in:

echo "$PASSWORD" | sudo baya user map alice@yourcompany.com --linux-user alice --password-stdin

Add --require-change to make someone choose their own at first sign-in, and reset one later with sudo baya user password <email>.

verify proves the install works end to end — every service, the TLS front door, the login page, the identity provider, and each person's workspace — and names the command to run for anything that does not.

Then open https://<hostname> and sign in. The certificate is self-signed until you supply your own, so browsers will warn.

Everyday commands

sudo baya status                 # version, health, licence, storage
sudo baya verify                 # end-to-end check; run it after every change
sudo baya user list              # every mapping and the state of its workspace
sudo baya user describe <email>  # one mapping, re-verified against the filesystem
sudo baya storage describe       # the base, its filesystem, and every mapping
sudo baya admin list             # everyone's roles, and who can administer
sudo baya admin grant <email>    # give someone the admin role
sudo baya user password <email>  # set or reset a password, never shown
sudo baya release list           # versions your licence allows
sudo baya start | stop | restart # the whole install
sudo baya uninstall --yes        # removes the install; never touches your users' files

sudo baya selftest runs an offline check of the tool itself, with no cluster and no credential — safe to run any time, including before you have a licence key.

Not yet available

These are specified and coming; this release does not have them:

  • baya idp add — federate your own identity provider (Entra, Google, GitHub, OIDC). Until then, sign-in accounts are held by the bundled Keycloak and created by user map, which is a complete way to run the install, not a workaround.
  • baya tls set — install your own certificate. Until then the self-signed certificate generated at install is what browsers see.
  • baya update / baya rollback — move between versions.
  • baya workspace — per-engineer pod operations.
  • baya logs — service logs without kubectl.
  • baya support-bundle — a redacted diagnostic bundle for Baya.

Licensed software. baya itself is freely installable; running FabricStudio requires a licence key issued by Baya Systems.

Metadata

Release files for bayafs 0.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bayafs 0.1.4
File Size Uploaded
bayafs-0.1.4.tar.gz 61.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for bayafs 0.1.4
File Interpreter ABI Platform
bayafs-0.1.4-py3-none-any.whl Python 3 none any Details

Total release size: 126.9 kB

Release files / bayafs-0.1.4.tar.gz

Download URL bayafs-0.1.4.tar.gz
Size 61.1 kB
Tags Source
SHA-256 checksum
How to use checksums
394afc923132b9267272b8303ac1539a772a457fe30ce0cdbc1afb53939d5ff2
BLAKE2b-256 checksum
How to use checksums
3283361454b3d90a88c37d090d68aac44ac1d11abb376672535c16353fd94e47
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / bayafs-0.1.4-py3-none-any.whl

Download URL bayafs-0.1.4-py3-none-any.whl
Size 65.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
63a9dfb2e79c24cae1196565f779120b859d5d949d419d1a9c4a554b9a1bd404
BLAKE2b-256 checksum
How to use checksums
ade034029ab94602ef4f485a2fabae675767aa151537a4ca729b9f1d2daf6d6f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

0.1.31

2 release files

0.1.30

2 release files

0.1.29

2 release files

0.1.28

2 release files

0.1.23

2 release files

0.1.21

2 release files

0.1.20

2 release files

0.1.16

2 release files

0.1.14

2 release files

0.1.13

2 release files

0.1.12

2 release files

0.1.11

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

This release

0.1.4 This release

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page