a dead-simple backplane for Dockerized applications
Project description
backplane
A simple backplane for your containerized applications.
Get started
pip install backplane
backplane install
backplane start
You can now visit the dashboards of both services in your browser:
Configure your containers
To expose one of your services through Traefik, your service needs to be part of the backplane
Docker network and carry a few Traefik-relevant labels:
docker
docker run \
--network backplane \
--label "traefik.enable=true" \
--label "traefik.http.routers.whoami.rule=Host(\`whoami.here.ns0.co\`)" \
--label "traefik.http.routers.whoami.entrypoints=http" \
--rm traefik/whoami
Visit http://whoami.here.ns0.co to verify it worked.
docker-compose
version: "3.3"
services:
whoami:
image: "traefik/whoami"
container_name: "simple-service"
networks:
- backplane
labels:
- "traefik.enable=true"
- "traefik.http.routers.whoami.rule=Host(`whoami.here.ns0.co`)"
- "traefik.http.routers.whoami.entrypoints=http"
- "traefik.docker.network=backplane"
networks:
backplane:
name: backplane
external: true
Visit http://whoami.here.ns0.co to verify it worked.
Use in production
backplane can be used on public cloud hosts, too:
backplane --environment production install --domain mydomain.com --mail letsencrypt@mydomain.com
backplane start
This enables the following additional features:
- access your backplane services through
mydomain.com
(NOTE: if you do not specify a domain, backplane will use a wildcard domain based on the IP of your server, like 127-0-0-1.nip.io) - automatic SSL for your containers through LetsEncrypt
- configurable HTTP to HTTPS redirect
- sane security defaults
docker
docker run \
--network backplane \
--label "traefik.enable=true" \
--label "traefik.http.routers.whoami.rule=Host(\`whoami.here.ns0.co\`)" \
--label "traefik.http.routers.whoami.entrypoints=http" \
--label "traefik.http.routers.whoami.middlewares=compress@docker" \
--label "traefik.http.routers.whoami.middlewares=https-redirect@docker" \
--label "traefik.http.routers.whoami-secure.entrypoints=https" \
--label "traefik.http.routers.whoami-secure.rule=Host(\`whoami.mydomain.com\`)" \
--label "traefik.http.routers.whoami-secure.tls=true" \
--label "traefik.http.routers.whoami-secure.tls.certresolver=letsencrypt" \
--label "traefik.http.routers.whoami-secure.middlewares=secured@docker" \
--label "traefik.http.routers.whoami-secure.middlewares=compress@docker" \
--rm traefik/whoami
docker-compose
version: "3.3"
services:
whoami:
image: "traefik/whoami"
container_name: "simple-service"
networks:
- backplane
labels:
- "traefik.enable=true"
- "traefik.http.routers.whoami.entrypoints=http"
- "traefik.http.routers.whoami.rule=Host(`whoami.mydomain.com`)"
- "traefik.http.routers.whoami.middlewares=compress@docker"
- "traefik.http.routers.whoami.middlewares=https-redirect@docker"
- "traefik.http.routers.whoami-secure.entrypoints=https"
- "traefik.http.routers.whoami-secure.rule=Host(`whoami.mydomain.com`)"
- "traefik.http.routers.whoami-secure.tls=true"
- "traefik.http.routers.whoami-secure.tls.certresolver=letsencrypt"
- "traefik.http.routers.whoami-secure.middlewares=secured@docker"
- "traefik.http.routers.whoami-secure.middlewares=compress@docker"
- "traefik.docker.network=backplane"
networks:
backplane:
name: backplane
external: true
Development
Dependencies
pip install poetry
poetry shell
poetry install
npm i -g standard-version
Build
poetry build
Publish
poetry publish
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
backplane-0.1.20.tar.gz
(12.3 kB
view hashes)
Built Distribution
backplane-0.1.20-py3-none-any.whl
(11.8 kB
view hashes)
Close
Hashes for backplane-0.1.20-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5e1e4faa8c689705021de602f2c1814563aad88f5996de4eeba5f74c730ec3d9 |
|
MD5 | 5466f4b5e87c9c09115f3d509b5aef30 |
|
BLAKE2b-256 | ffbe57563bd7f893a705dd6a9af6f493b65488937db47653b5b6b8b5625e4d70 |