Skip to main content

multi-start

GitHub Workflow Status Code style: black PyPI PyPI - Python Version License: BSD 3-Clause

This tool aims to help running multiple services inside a single docker container.

Sometimes you might want to have backend, frontend and nginx (or a combination of those) inside a single container. This tool may help with:

  • Prepare final Nginx configs using parse-template
  • Wait until backend and frontend start responding before running Nginx
  • Stop every process if one of them exits so the whole container stops gracefully

Installation

pip install multi-start

Usage

multi-start --help

Usage: multi-start [OPTIONS]

  Run multiple services at once. Set DEBUG environment variable to 1 for more
  verbose output when running.

Options:
  --backend / --no-backend        Enable backend service  [default: no-
                                  backend]
  --backend-cmd TEXT              Command to start backend service  [default:
                                  poetry run invoke serve]
  --backend-dir TEXT              Working directory for the backend  [default:
                                  backend]
  --backend-port INTEGER          Port number that backend is running at if
                                  port is used
  --backend-socket TEXT           UNIX socket path that backend is running at
                                  if socket is used  [default:
                                  /run/nginx/uvicorn.sock]
  --frontend / --no-frontend      Enable frontend service  [default: no-
                                  frontend]
  --frontend-port INTEGER         Port number that frontend is running at
                                  [default: 3000]
  --frontend-cmd TEXT             Command to start frontend service  [default:
                                  pnpm run start]
  --frontend-dir TEXT             Working directory for the frontend
                                  [default: frontend]
  --nginx / --no-nginx            Enable nginx  [default: no-nginx]
  --nginx-cmd TEXT                Command to start Nginx  [default: nginx -g
                                  "daemon off;"]
  --service-wait-time FLOAT       How long to wait for a service to be up an
                                  running (sec)  [default: 3.0]

Development

Make sure you install pre-commit and run:

pre-commit install

For testing you can use e.g.

poetry run multi-start \
  --backend \
  --backend-dir ../another-project/src \
  --backend-cmd "poetry run invoke dev" \
  --backend-port 8080

Metadata

Release files for multi-start 1.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for multi-start 1.3.0
File Size Uploaded
multi_start-1.3.0.tar.gz 5.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for multi-start 1.3.0
File Interpreter ABI Platform
multi_start-1.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 13.0 kB

Release files / multi_start-1.3.0.tar.gz

Download URL multi_start-1.3.0.tar.gz
Size 5.9 kB
Tags Source
SHA-256 checksum
How to use checksums
d2448f1a41030ba92b6a1242470aafe3c8e69f01ced3e6115a14b3722c76142d
BLAKE2b-256 checksum
How to use checksums
785b054750691f4ce117b572a0f19941c6c59b1dc05da7d633cae147953920f1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/4.0.2 CPython/3.11.14

Release files / multi_start-1.3.0-py3-none-any.whl

Download URL multi_start-1.3.0-py3-none-any.whl
Size 7.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
914ffdda4ccf5dd287af7c17c45cb91f1f20845270a4cbec440448e9dd6344a0
BLAKE2b-256 checksum
How to use checksums
5177b311273f834b7e22b3373515b91c7cd9535ad5c410d4184ad3a03bb60d7c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/4.0.2 CPython/3.11.14

Release history Release notifications | RSS feed

This release

1.3.0 This release

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page