Skip to main content

Introduction

Service Lasso is a small runtime for acquiring, configuring, starting, stopping, monitoring, and updating local services from declarative service.json manifests.

The core idea is simple: an app commits a services/ folder, each service folder contains a service.json, and Service Lasso uses those manifests to install release artifacts, prepare runtime config, launch managed services, expose state through API/CLI surfaces, and report what is healthy or needs attention.

What this repo owns

The service-lasso/service-lasso repo owns:

  • the Service Lasso CLI and runtime API
  • the canonical service.json contract documentation
  • baseline core service manifests under services/
  • release artifact and npm package build definitions
  • Docusaurus docs for runtime, operator, and service-authoring behavior
  • validation scripts for clean-clone and reference-app scenarios

It does not own every service implementation. Each release-backed service should live in its own service-lasso/lasso-* repo and publish its own GitHub release artifacts.

Current related repos:

RepoProvides
service-lasso/lasso-echoservicecontrollable harness service used for lifecycle, logs, health, state, SQLite, and runtime validation
service-lasso/lasso-serviceadminoperator/admin UI service served as @serviceadmin
service-lasso/lasso-noderelease-backed Node runtime provider
service-lasso/lasso-pythonrelease-backed Python runtime provider
service-lasso/lasso-javarelease-backed Java runtime provider
service-lasso/lasso-archiveoptional release-backed 7-Zip archive utility provider for services that need external archive tooling
service-lasso/lasso-localcertrelease-backed local certificate provider
service-lasso/lasso-nginxrelease-backed NGINX service used by the baseline Traefik setup
service-lasso/lasso-traefikrelease-backed Traefik edge/router service
service-lasso/lasso-postgresapp-owned PostgreSQL service repo for local relational database dependencies
service-lasso/lasso-mongoapp-owned MongoDB service repo for local document database dependencies
service-lasso/lasso-typedbapp-owned TypeDB daemon repo that runs through @java and exports TypeDB connection globals
service-lasso/lasso-filesapp-owned file-manager service repo with React UI and filesystem-backed API
service-lasso/lasso-fastapiapp-owned TypeRefinery FastAPI service repo for Python API surfaces
service-lasso/lasso-jupyterlabapp-owned JupyterLab service repo for local notebooks and notebook API surfaces
service-lasso/lasso-totaljs-messageserviceapp-owned Total.js messaging service repo that exports message-service global env values
service-lasso/lasso-totaljs-flowapp-owned Total.js Flow service repo that depends on totaljs-messageservice
service-lasso/lasso-websight-cmsapp-owned Websight CMS service repo that depends on @java, mongo, nginx, totaljs-flow, and totaljs-messageservice
service-lasso/lasso-bpmn-serverapp-owned BPMN modeling and execution service repo that depends on mongo
service-lasso/lasso-zitadelapp-owned ZITADEL service repo for identity setups
service-lasso/lasso-daguapp-owned Dagu service repo for workflow orchestration setups
service-lasso/service-templatetemplate for creating new release-backed lasso-* service repos
service-lasso/service-lasso-app-nodeNode host reference app template using Service Lasso
service-lasso/service-lasso-app-webweb host reference app template using Service Lasso
service-lasso/service-lasso-app-electronElectron host reference app template using Service Lasso
service-lasso/service-lasso-app-tauriTauri host reference app template using Service Lasso
service-lasso/service-lasso-app-packager-pkgNode packaging reference template for pkg packaged app outputs
service-lasso/service-lasso-app-packager-seaNode packaging reference template for SEA packaged app outputs
service-lasso/service-lasso-app-packager-nexeNode packaging reference template for nexe packaged app outputs

Baseline runtime model

Service Lasso separates service definitions from runtime working data:

  • servicesRoot is where service manifests and service payloads live.
  • workspaceRoot is where Service Lasso writes runtime-managed state, logs, archives, and working files.

The default baseline services are checked into services/ and are started by the Quick Start flow.

How services are acquired

Release-backed services use artifact metadata in service.json.

At install time Service Lasso:

  1. reads the manifest
  2. resolves the platform asset from the configured GitHub release
  3. downloads and extracts the archive
  4. records install metadata
  5. runs config/start/health behavior according to the manifest and command invoked

Bundled application artifacts are produced by running the Service Lasso package flow ahead of time so service archives are already present in the application artifact. In that mode, first run should not need to download those services again.

Core releases publish both service-lasso-<version>.tar.gz for the lean runtime and service-lasso-bundled-<version>.tar.gz for the same runtime plus the baseline services/ folder and pre-acquired baseline service archives.

Where to start

For a new user running the project, start with Quick Start.

For a service author, start with Service Authoring Overview.

For manifest details, start with service.json Reference.