Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Try it on your computer

You can try TeamCraft on your own laptop without a server, Docker or a database administrator. Two ways lead to the same result: a private PostgreSQL database and the TeamCraft server, both running only on your computer, with all data in one folder of your user account.

This is for trying TeamCraft out. It is not a way to run TeamCraft for a team: nobody else can reach the server, there are no backups and no TLS. For a team, use the Docker install.

With the desktop app (no set-up)

  1. Download the desktop app with local server from the Releases page:

    SystemFile
    Windows 10 / 11 (x64)TeamCraft-with-local-server_<version>_x64-setup.exe
    macOS (Apple silicon)TeamCraft-with-local-server_<version>_aarch64.dmg
    Linux (x86_64)TeamCraft-with-local-server_<version>_amd64.AppImage

    The installers are not code-signed yet: on Windows, SmartScreen shows More info → Run anyway; on macOS, open the app the first time with right-click → Open; on Linux, make the AppImage executable (chmod +x).

  2. Start TeamCraft and click Try TeamCraft on this computer. The first start creates the database and takes a few seconds, at most about a minute on a slow disk.

  3. Your browser opens. Create the administrator – pick a username and a password (10+ characters) – and confirm the sign-in of the app. You are now signed in, in the browser and in the app.

  4. Continue with Getting started: create a project group, then an item with a STEP file, and open it in 3D.

The app starts the local server again each time you open it while it is the configured server, and stops it when you quit the app. change next to the server name on the sign-in screen (or File → Sign Out) connects the same app to any other TeamCraft server; the local data stays where it is.

The installer with local server is the regular desktop app plus two things: the server program (teamcraft-server) and PostgreSQL’s programs (postgresql/, with its licence in COPYRIGHT.txt). It installs over the regular desktop app. The regular installers stay small and do not show the button.

On the command line

With PostgreSQL 16 or newer installed (its server programs initdb, pg_ctl and postgres, not only the client), the server archive from the Releases page does the same:

teamcraft local

Open http://127.0.0.1:8080 and create the administrator. Ctrl+C stops the server and PostgreSQL.

OptionDefaultMeaning
--port <port>8080port of the web server on 127.0.0.1
--data-dir <dir>per-user data folder (below)database, vault and logs
--pg-bin <dir>searchedfolder with initdb, pg_ctl and postgres
--exit-with-stdinoffstop when standard input closes (the desktop app keeps a pipe open while it runs)

Without --pg-bin, TeamCraft looks for PostgreSQL’s programs in this order: postgresql/bin next to the teamcraft program (the desktop download with local server), PATH, /usr/lib/postgresql/<version>/bin (Debian, Ubuntu), Homebrew (postgresql@<version>), Postgres.app, and C:\Program Files\PostgreSQL\<version>\bin on Windows – the newest version first. PostgreSQL refuses to run as root (sudo): start teamcraft local as your normal user.

Where the data is

The desktop app and teamcraft local use the same folder, so both see the same data:

SystemFolder
Linux~/.local/share/teamcraft/local-server (or $XDG_DATA_HOME/teamcraft/local-server)
macOS~/Library/Application Support/TeamCraft/local-server
Windows%LOCALAPPDATA%\TeamCraft\local-server

Inside it:

postgres/         the database cluster
postgres.log      PostgreSQL's log
pg_ctl.log        output of the last `pg_ctl start` (why PostgreSQL did not start)
db-password       the generated database password (readable by you only)
vault/            the stored files

The desktop app writes the server’s own log to local-server.log in its settings folder. To start over, quit the app (or stop teamcraft local) and delete the folder. Nothing in it is backed up: for data you want to keep, use the Docker install with its backups.

How it is protected

  • PostgreSQL and the server listen only on 127.0.0.1; other computers cannot connect. PostgreSQL gets a free port at every start and no Unix socket.
  • The database password is random (32 characters), stored in db-password (mode 0600 on Linux and macOS), and checked with scram-sha-256, so other accounts on the same computer cannot use the database.
  • The page that creates the administrator is only offered while no account exists and the server listens on this computer – the same rule as for every other first start.
  • A second teamcraft local on the same folder refuses to start instead of stopping the running database.

When something goes wrong

  • The button is missing – this is the regular desktop app; download the one with local server.
  • “The local server stopped” / “did not start” – the message shows the end of the server’s log. postgres.log in the data folder has PostgreSQL’s side. The app replaces a port that another program took with a free one; teamcraft local names the port in use – choose another with --port.
  • macOS blocks the server or PostgreSQL – the app is not notarised yet. If right-click → Open on the app was not enough, remove the quarantine flag once: xattr -dr com.apple.quarantine /Applications/TeamCraft.app.
  • “TeamCraft already runs on …” – another teamcraft local (or the app in another window) serves the same folder; use that one, or stop it first.