Infrastructure
The infrastructure layer is the containers the product runs in. The same product runs as a development stack on your machine and as a production stack from its deploy bundle.
Development
product:derive --dev builds and starts the product’s development containers: the web container with your editable features mounted and Flask’s development server, the database, and a stack of their own for each feature that ships a server, such as Redis. Each product gets its own host ports, so two products run side by side.
Production
product:build writes the deploy bundle deploy/ and builds the production image, with every feature installed at its pinned version. product:deploy runs the bundle on this machine. A server needs only Git and Docker.
git clone <the product's repository> && cd <product>/deploy
cp .env.example .env # then fill in the required values
docker compose up -d
How it relates to the other layers
- Product. Its
docker/files andpyproject.tomldecide the containers and what the image installs. - Features. A feature with a server brings its own Compose file, merged into the product’s stack.
- Framework. It is what runs inside the web container.
- Delivery. A release publishes the image the bundle runs.