Skip to content

🚢 Docker images and utilities to power your Python APIs and help you ship faster. With support for Uvicorn, Gunicorn, Starlette, and FastAPI.

License

Notifications You must be signed in to change notification settings

br3ndonland/inboard

Repository files navigation

🚢 inboard 🐳

inboard logo

Docker images and utilities to power your Python APIs and help you ship faster.

PyPI GitHub Container Registry Imports: isort Code style: black coverage builds

Mentioned in Awesome FastAPI

Description

This repository provides Docker images and a PyPI package with useful utilities for Python web servers. It runs Uvicorn with Gunicorn, and can be used to build applications with Starlette and FastAPI.

Justification

Why use this project? You might want to try out inboard because it:

  • Offers a Python package and Docker images that work together. Python packages and Docker images don't automatically share the same versioning systems, but inboard can help with this. You might install a minor release of the Python package with pip install 'inboard>=0.28,<0.29[fastapi]' or poetry add inboard@'^0.28' -E fastapi. You can also pull the corresponding Docker image FROM ghcr.io/br3ndonland/inboard:0.28.
  • Tests everything. inboard performs unit testing of 100% of the Python code, and also runs smoke tests of the Docker images each time they are built.
  • Sets sane defaults, but allows configuration. Configure a variety of settings with environment variables. Or run it as-is and it just works.
  • Configures logging extensibly. inboard simplifies logging by handling all its Python log streams with a single logging config. It also offers the ability to filter health check endpoints out of the access logs. Don't like it? No problem. You can easily extend or override the logging behavior.

Quickstart

Get started with Docker, pull and run an image, and try an API endpoint.

docker pull ghcr.io/br3ndonland/inboard
docker run -d -p 80:80 ghcr.io/br3ndonland/inboard
http :80  # HTTPie: https://httpie.io/

Documentation

Documentation is built with Material for MkDocs, deployed on Vercel, and available at inboard.bws.bio and inboard.vercel.app.

Vercel build configuration:

  • Build command: python3 -m pip install 'mkdocs-material>=8,<9' && mkdocs build --site-dir public
  • Output directory: public (default)

Vercel site configuration is specified in vercel.json.