CLI Commands
Synclet is distributed as a single binary. All operations — running the server, managing migrations, and executing syncs — are subcommands of synclet.
Commands
Section titled “Commands”| Command | Description |
|---|---|
synclet server | Start the API server. |
synclet server --standalone | Start the API server with background jobs and sync executor in a single process. |
synclet jobs | Run background jobs (scheduler, workers) as a separate process. |
synclet docker-executor | Run the Docker sync executor daemon. |
synclet k8s-executor | Run the Kubernetes sync executor daemon. |
synclet migrate up | Apply all pending database migrations. |
synclet migrate down | Roll back the last applied migration. |
synclet migrate status | Show migration status. |
synclet migrate create <module> <name> | Create a new migration file. |
synclet generate dotenv | Generate a .env file with all available environment variables and their defaults. |
Global Flags
Section titled “Global Flags”| Flag | Description |
|---|---|
--dotenv <path> | Load environment variables from the specified .env file(s). Can be repeated. |
--version | Print the Synclet version. |
Server
Section titled “Server”synclet server starts the HTTP API. In standalone mode (--standalone), it also starts background jobs (scheduler, workers) and the sync executor in the same process — this is the simplest way to run Synclet.
# Start in standalone mode (API + jobs + executor in one process)DB_DSN=postgres://user:pass@localhost:5432/synclet \AUTH_JWT_SECRET=your-secret \SECRET_ENCRYPTION_KEY=your-base64-key \synclet server --standalone
# Load config from a .env filesynclet server --standalone --dotenv .envIn standalone mode, the executor is automatically selected: Docker on regular hosts, Kubernetes when running inside a K8s pod (detected via the in-cluster environment).
The public HTTP server binds to 0.0.0.0:8080 by default (configurable via PUBLIC_HTTP_SERVER_ADDR). See Environment Variables for the full list of configuration options.
Distributed Mode
Section titled “Distributed Mode”For larger deployments, you can run the API server, background jobs, and executor as separate processes:
# Process 1: API server onlysynclet server
# Process 2: Background jobssynclet jobs
# Process 3: Docker executorsynclet docker-executor
# Or Kubernetes executorsynclet k8s-executorThe docker-executor and k8s-executor commands also accept a --standalone flag to use direct DB access instead of connecting to the API server via RPC.
Migrations
Section titled “Migrations”Database migrations run automatically when the server starts. You can also run them manually:
# Apply all pending migrationssynclet migrate up
# Roll back the last migrationsynclet migrate down
# Check migration statussynclet migrate status
# Create a new migration filesynclet migrate create auth add_api_tokensThe --module flag can be used with up, down, and status to target a specific module.
Migrations are idempotent — running migrate up on an already up-to-date database is a no-op.
Generate
Section titled “Generate”synclet generate dotenv
Section titled “synclet generate dotenv”Generates a .env file containing all available environment variables with their default values. If a .env file already exists, new variables are appended without overwriting existing values.
Aliases: synclet gen dotenv, synclet generate env
# Generate a .env file with all variablessynclet generate dotenvThis is useful when setting up a new environment or after upgrading to discover newly added configuration options.
Airbyte is a trademark of Airbyte, Inc. Synclet is not affiliated with, endorsed by or sponsored by Airbyte, Inc. Connector images keep their own licenses: see Connector licenses.