Skip to content

inkandswitch/backstitch-sync-server

Repository files navigation

Backstitch Sync Server

This is an Automerge-based TCP sync server, intended for use with the Godot version control plugin Backstitch.

Join our Discord for support & community!

Docker - Easiest Setup

An example Docker Compose configuration is available in compose.example.yml. It runs the image from the ghcr.io backstitch-sync-server package.

docker compose -f compose.example.yml up

Or, to run the published image without Docker Compose:

docker run --rm \
  -p 8085:8085 \
  -p 3000:3000 \
  -v backstitch-data:/data \
  ghcr.io/inkandswitch/backstitch-sync-server:latest

The container uses these defaults:

Variable Default Description
DATA_DIR /data Directory where sync data is stored. Mount this as a volume for persistence.
PORT 8085 TCP samod sync server port.
HTTP_PORT 3000 HTTP server port for testing and document inspection.

VPN Tunnel

By default, the server runs at localhost:PORT, and anyone on your local network will be able to access it. If you want to expose it to other team members, we highly recommend using a VPN tunneling service like Tailscale or ZeroTier.

Alternatively, you can directly port-forward with your server provider or home router. But since Backstitch Sync Server doesn't (yet) provide authentication, anyone who guesses your project ID will be able to access or edit your data.

Building & Manual Installation

Clone this repository locally. To build and run, first, install Rust and Cargo. Then, to install just, run:

cargo install just

Usage

To build and run the server with defaults, use just run:

just run [data_dir] [port] [http_port] [debug|release]

Data will be stored to ./data by default, but can be overridden.

The server will run a TCP samod connection at localhost:8085, as well as an HTTP server for testing at localhost:3000.

IMPORTANT: Security!

This server isn't set up for authentication. If someone guesses the ID of a project, they will be able to access all data associated with the project.

As such, before exposing this server to the internet, it is highly recommended to hide it behind a separate, secure VPN tunnel, or another method of connection authentication.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors