Make native mode default, auto-download pre-compiled binaries

- Flip --native to --docker on up/down commands (native is now default)
- Add ensure_wasm_plugins() and ensure_brightstaff_binary() to auto-download from GitHub releases
- Add _find_config_dir() to support pip-installed usage without repo checkout
- Bundle config templates in wheel via pyproject.toml force-include
- Add publish-binaries.yml CI workflow for release binary uploads
- Update docs to reflect native-first experience
This commit is contained in:
Adil Hafeez 2026-03-03 14:50:28 -08:00
parent 39a5c21209
commit edfd237111
No known key found for this signature in database
GPG key ID: 9B18EF7691369645
7 changed files with 299 additions and 91 deletions

View file

@ -3,7 +3,47 @@
Deployment
==========
Plano can be deployed in two ways: as a **Docker container** (default) or **natively** on the host without Docker.
Plano can be deployed in two ways: **natively** on the host (default) or inside a **Docker container**.
Native Deployment (Default)
---------------------------
Plano runs natively by default. Pre-compiled binaries (Envoy, WASM plugins, brightstaff) are automatically downloaded on the first run and cached at ``~/.plano/``.
Supported platforms: Linux (x86_64, aarch64), macOS (Apple Silicon).
Start Plano
~~~~~~~~~~~~
.. code-block:: bash
planoai up plano_config.yaml
Options:
- ``--foreground`` — stay attached and stream logs (Ctrl+C to stop)
- ``--with-tracing`` — start a local OTLP trace collector
Runtime files (rendered configs, logs, PID file) are stored in ``~/.plano/run/``.
Stop Plano
~~~~~~~~~~
.. code-block:: bash
planoai down
Build from Source (Developer)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you want to build from source instead of using pre-compiled binaries, you need:
- `Rust <https://rustup.rs>`_ with the ``wasm32-wasip1`` target
- OpenSSL dev headers (``libssl-dev`` on Debian/Ubuntu, ``openssl`` on macOS)
.. code-block:: bash
planoai build --native
Docker Deployment
-----------------
@ -53,47 +93,12 @@ Check container health and logs:
docker compose ps
docker compose logs -f plano
Native Deployment
-----------------
Run Plano directly on the host without Docker. This is useful for development, platforms without Docker, or environments where you want to avoid container overhead.
Prerequisites
~~~~~~~~~~~~~
- `Rust <https://rustup.rs>`_ with the ``wasm32-wasip1`` target
- OpenSSL dev headers (``libssl-dev`` on Debian/Ubuntu, ``openssl`` on macOS)
- Supported platforms: Linux (x86_64, aarch64), macOS (Apple Silicon)
Build from Source
~~~~~~~~~~~~~~~~~
Compile the WASM plugins and brightstaff binary:
You can also use the CLI with Docker mode:
.. code-block:: bash
planoai build --native
Start Plano
~~~~~~~~~~~~
.. code-block:: bash
planoai up plano_config.yaml --native
Envoy is automatically downloaded on first run and cached at ``~/.plano/bin/``. Runtime files (rendered configs, logs, PID file) are stored in ``~/.plano/run/``.
Options:
- ``--foreground`` — stay attached and stream logs (Ctrl+C to stop)
- ``--with-tracing`` — start a local OTLP trace collector
Stop Plano
~~~~~~~~~~
.. code-block:: bash
planoai down --native
planoai up plano_config.yaml --docker
planoai down --docker
Runtime Tests
-------------