🚢 inboard 🐳
Docker images and utilities to power your Python APIs and help you ship faster.
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 the Python package with a minor version constraint. You can also pull the corresponding Docker image by specifying the minor version in the Docker tag (
FROM ghcr.io/br3ndonland/inboard:<version>
). - 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.
- 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.