Skip to content

Run it yourself

A space you own, on a machine you choose.

Free to run on your own computer, for just you, or on a server for your whole team.

This page is for people who like setting things up themselves: there’s no installer to download yet. A server runs from a Docker image or from the source code, and the desktop app is built from the source code.

  • Fewer services

    A server needs nothing else to run. It serves its own web app, keeps its own accounts and works with no Hub at all.

  • Your data, in one place

    Everything it keeps sits in one data folder. Your records are in an encrypted database, with the key in your keychain on the desktop, or your own database key on a server. The files folder holds ordinary files.

  • You’re the owner

    Whoever claims the server first creates the owner’s account, and decides who joins and what they may do.

A server, with Docker

For a team on an always-on machine, such as a VPS at your own domain. Pin a commit tag, so a redeploy doesn’t pick up code you didn’t choose. /data has to be a volume, or a redeploy loses your data. To try it without a proxy, leave out SPACEMIX_PUBLIC_URL and open http://localhost:8080.

$ docker run -d --name spacemix \
    -p 127.0.0.1:8080:8080 \
    -v spacemix-data:/data \
    -e SPACEMIX_DB_KEY=<output of openssl rand -hex 32> \
    -e SPACEMIX_PUBLIC_URL=https://spacemix.example.com \
    ghcr.io/signalbotapp/spacemix-server:<commit sha>

# the claim code
$ docker logs spacemix 2>&1 | grep 'claim this server'

A server, from a clone

The same server, built from the source code. You need Rust, Node.js 24 and a C toolchain. Build the web app before the binary. It listens on http://127.0.0.1:1421 and prints the claim code.

# in a clone of the spacemix repository
$ npm install
$ npm run build
$ (cd apps/desktop/src-tauri && cargo build --release --bin spacemix-server --no-default-features)

# keep a copy of the key: lose it, and the data can't be read
$ export SPACEMIX_DB_KEY=$(openssl rand -hex 32)
$ export SPACEMIX_DATA_DIR=$HOME/spacemix-data
$ export SPACEMIX_WEB_DIR=$PWD/apps/desktop/dist
$ apps/desktop/src-tauri/target/release/spacemix-server

Rather build the image yourself? spacemix/scripts/build-server-image.sh --load --tag spacemix-server builds it from committed files, with a checkout of spacemix-auth beside the clone.

The first run makes the owner’s account

Open the server’s address, enter the claim code it printed, and create the owner’s account with your name, an email and a password of at least 8 characters. The code then stops working. With the Hub on, you can use Continue with SpaceMIX ID instead.

Everyone else joins with an invite link, from Settings, Members, Invite someone. There’s no open sign-up, and SpaceMIX sends no email, so you send the link yourself. Links last 7 days and work once.

Before people rely on it

The server speaks plain HTTP, so anything on the internet goes through a proxy that ends TLS. Tell the server its address with SPACEMIX_PUBLIC_URL and name the proxy with SPACEMIX_TRUSTED_PROXY. The deploy guide has Caddy and nginx setups.

Back up the data folder and SPACEMIX_DB_KEY, and keep them as safe as each other: together they are all your data.

With or without the Hub

A server works with no Hub at all.

SpaceMIX Hub is our own service, closed source: SpaceMIX IDs, the Marketplace and billing. Use it if you want them.

On your server, without the Hub

  • Your data, the assistant, extensions, widgets, Projects and the API, all on your server
  • Accounts with an email and password, invite links, permissions and password resets
  • Installing an extension from a package file, always
  • Any model you connect: OpenAI-compatible endpoints and CLI agents

Only with a SpaceMIX ID

  • One sign-in across servers, and the desktop app’s list of them
  • Buying paid extensions from the Marketplace. Selling is coming soon.
  • Sharing what you build in the Marketplace
  • Hub models, which we run and the server’s credit pays for. Coming soon.

In between is the public registry on the Hub: free extensions, with no SpaceMIX ID. By default a server knows our Hub’s address, https://spacemix.ai, and asks it nothing until someone uses a Hub feature, such as browsing the registry. Set SPACEMIX_HUB_URL=off for no Hub at all, and install extensions from a package file.

The desktop app

For one person or a small team. Build it with Node.js and Rust, plus your platform’s WebView libraries, listed in the README. It’s its own server, and keeps its records encrypted with a key in your OS keychain. By default it’s reachable only from its own computer. It enters its own claim code, so on the first run you only create the owner’s account.

# in a clone of the spacemix repository
$ npm install
$ npm run tauri dev     # run the app
$ npm run tauri build   # installers for your OS

The README and the deploy guide in the source repository cover every setting.

Rather not run a machine? Managed hosting is coming soon: we’ll run the server for you or your team. You can create your SpaceMIX ID now.

Create your account

The big idea

Yours to own. Everyone’s to build.

A space you own, and a community building everything it can be.

That community is still to come. People will build things here that we can’t picture yet.

Run it on your own terms.

Run it yourself and change what you need. Or create your SpaceMIX ID, and soon we can host it for you.