Files
hassio-addons/portainer_be/config.yaml
Alexandre 0ead28a7bf feat: add Portainer Business Edition add-on (#873) (#2916)
* feat(portainer_be): add Portainer Business Edition add-on

Adds a new `portainer_be` add-on based on the existing Portainer (CE)
add-on, requested in #873.

Business Edition has no public GitHub release tarball like CE, so the
binary and web assets are pulled from the official multi-arch
`portainer/portainer-ee` image via a multi-stage build and placed under
/opt/portainer, mirroring CE's layout exactly. All runtime scripts,
nginx/ingress config, options schema, SSL and password handling are
unchanged from CE, so behaviour is identical apart from the edition.

Users obtain a free (up to 3 nodes) Business Edition license key by
registering with Portainer and enter it in the web UI on first launch.

- config.yaml: slug portainer_be, BE image name, BE description/name
- Dockerfile: multi-stage COPY from portainer/portainer-ee (no CE tarball)
- updater.json: dockerhub source tracking portainer/portainer-ee
- apparmor.txt: unique profile name (portainer_be_addon)
- CHANGELOG/README/DOCS: BE-specific, documents the license-key step

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* fix(portainer_be): address PR review feedback

- nginx finish: move shebang to byte 0 (leading blank line prevented S6 from
  recognising the interpreter, so the finish hook could fail to tear down the
  supervision tree) [Codex P2]
- ingress: tighten CSP to `frame-ancestors 'self'` to match the adjacent
  X-Frame-Options SAMEORIGIN; HA ingress embeds same-origin so the panel keeps
  working [CodeRabbit]
- README: correct login note (password is the configured option value, never
  printed to logs); drop MD012 consecutive blank lines [CodeRabbit]
- DOCS: fix "environement" -> "environment" typo [CodeRabbit]

Skipped: nginx SSL "idempotency" finding — /etc/nginx lives in the read-only
image layer and cont-init re-renders from the pristine template on every
container start, so in-place sed edits never accumulate or need restoring.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* revert(portainer_be): keep CSP frame-ancestors * for ingress compatibility

Reverts the frame-ancestors 'self' change from the previous commit. The
wildcard is required for the Home Assistant ingress iframe to embed the
Portainer UI; tightening it breaks the ingress panel. Matches the CE add-on.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-27 22:08:17 +02:00

46 lines
923 B
YAML

arch:
- aarch64
- amd64
backup_exclude:
- backups
- docker_config/cli-plugins
description: Manage your Docker environment with ease (Business Edition)
docker_api: true
hassio_api: true
image: ghcr.io/alexbelgium/portainer_be-{arch}
ingress: true
ingress_port: 1337
ingress_stream: true
init: false
map:
- addon_config:rw
- share:rw
- ssl
name: Portainer Business Edition
options:
env_vars: []
certfile: fullchain.pem
keyfile: privkey.pem
password: homeassistant
ssl: false
panel_admin: false
panel_icon: mdi:docker
ports:
8000/tcp: null
9099/tcp: 9000
ports_description:
8000/tcp: Edge Agent Api (Enable when managing remote edge agents)
9099/tcp: Web UI port
schema:
env_vars:
- name: match(^[A-Za-z0-9_]+$)
value: str?
certfile: str
keyfile: str
password: str?
ssl: bool
slug: portainer_be
udev: true
url: https://github.com/alexbelgium/hassio-addons
version: "2.43.0"