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)
-
Download the desktop app with local server from the Releases page:
System File Windows 10 / 11 (x64) TeamCraft-with-local-server_<version>_x64-setup.exemacOS (Apple silicon) TeamCraft-with-local-server_<version>_aarch64.dmgLinux (x86_64) TeamCraft-with-local-server_<version>_amd64.AppImageThe 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). -
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.
-
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.
-
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.
| Option | Default | Meaning |
|---|---|---|
--port <port> | 8080 | port of the web server on 127.0.0.1 |
--data-dir <dir> | per-user data folder (below) | database, vault and logs |
--pg-bin <dir> | searched | folder with initdb, pg_ctl and postgres |
--exit-with-stdin | off | stop 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:
| System | Folder |
|---|---|
| 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(mode0600on Linux and macOS), and checked withscram-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 localon 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.login the data folder has PostgreSQL’s side. The app replaces a port that another program took with a free one;teamcraft localnames 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.