Skip to main content

Logo

Vendorless is a Python-based templating engine for rendering Docker Compose projects. In vendorless, blueprints are Python modules that configures the services that make up an application, like databases and servers. A blueprint can be rendered to Docker Compose files that run an instance of the application. The basic functionality of vendorless is provided by the vendorless.core package, and other packages provide specific service templates and blueprints. For example, the vendorless.postgres package provides service templates for running a PostGreSQL database, and the vendorless.keycloak package provides a blueprint for running a Keycloak authentication server (which uses service templates provided by vendorless.postgres).

The goal of vendorless is to make it easier to build your application's backbone using free and open-source services. Vendorless is designed for small- to medium-sized projects that value self-containment over infinite scalability, and pragmatic tooling that prioritizes development efficency, and maintainability.

Key Features

  1. Python-based infrastructure-as-code (IaC). Blueprints are Python modules, which allows of the use of complex scriping, looping, and logic to configure service templates.
  2. Parameter linking allows the outputs of one service template to be linked to the inputs of other service templates. Service templates are effectively black boxes that are configured via their input parameters. Service templates also have output parameters, and these output parameters (e.g., ports, URLs, file paths, service names) can be linked to the input parameters of other service templates.
  3. Extensibility is provided by namespace packaging. Vendorless packages provide service templates (for use in blueprints), CLI commands (e.g., key generation), and/or blueprints (ready-made applications). You can leverage community maintained packages, or create your own.

Commands

vl is an extensible command-line tool that runs commands from vendorless packages. The functionality for working with vendorless blueprints and packages is provided by vendorless.core which includes:

  1. Rendering blueprints
  2. Developing new vendorless packages (creating, documenting, testing, and publishing)

Vendorless packages may add additional commands that are related to the package's services (e.g., key generation, certificate generation, secret generation, etc.).

The format of vl commands is

vl <package> <command> <arguments>...

where <package> is the vendorless package (e.g., core) that provides <command>. For example:

$ vl core render -m vendorless.keycloak.blueprints.auth_server

You can always use --help to see command documentation.

Commands via Docker

You can run vendorless commands via docker like so:

docker run ghcr.io/liambindle/vendorless:latest \
    vendorless.<packages>... \
    <package> <command> <arguments>...

This is useful if you're running vendorless in an environment that doesn't have Python (e.g., a production server). The first set of arguments (packages prefixed with vendorless.) is the list of vendorless packages that need to be installed. The subsequent arguments are the arguments to the vl command. For example

$ docker run ghcr.io/liambindle/vendorless:latest \
    vendorless.core vendorless.keycloak \
    core render -m vendorless.keycloak.blueprints.auth_server

Metadata

Release files for vendorless-core 0.1.5

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

Source distribution (sdist)

Source distribution for vendorless-core 0.1.5
File Size Uploaded Provenance Actions
vendorless_core-0.1.5.tar.gz 9.7 kB Without provenance Details for vendorless_core-0.1.5.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for vendorless-core 0.1.5
File Interpreter ABI Platform Actions
vendorless_core-0.1.5-py3-none-any.whl Python 3 none any Details for vendorless_core-0.1.5-py3-none-any.whl

Total release size: 24.6 kB

Release files / vendorless_core-0.1.5.tar.gz

Download URL vendorless_core-0.1.5.tar.gz
Size 9.7 kB
Tags Source
SHA-256 checksum
How to use checksums
0cce3962a2d5d376476132f9d4ed32b7a55339b478a742eeaa3935dd3090b2d9
BLAKE2b-256 checksum
How to use checksums
2d3aeaf9a3ced6459c75e27e0021667a2f753af5ac868fafbd9d43ec390857af
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.1.3 CPython/3.12.10 Linux/6.12.16

Release files / vendorless_core-0.1.5-py3-none-any.whl

Download URL vendorless_core-0.1.5-py3-none-any.whl
Size 14.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ed369c1ec9beb4009f690f9a99ac7760b8879d9c479844685638ea12a77d8875
BLAKE2b-256 checksum
How to use checksums
b011a1e9edb9451edd7dfe5caecb85d6f50b4f5f1c68a7ccdbe899fe1796b9b6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.1.3 CPython/3.12.10 Linux/6.12.16

Security for vendorless-core 0.1.5

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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