Skip to main content
Docker is the recommended way to run a longer-lived self-hosted AppBlips installation. A single docker compose up --build command builds the static client, packages it with the server, and starts everything together — no separate build step, no extra tools, and no Node.js installation required on your host machine. The server handles both the builder API and the optional generated-app AI relay, and it serves the built client directly, so there is nothing else to configure.

Prerequisites

Before you begin, make sure you have:
  • Docker and Docker Compose installed and running
  • A valid .env file with at minimum APPBLIPS_LLM_BASE_URL, APPBLIPS_LLM_API_KEY, and APPBLIPS_LLM_MODEL set — see Configuration for the full reference

Starting AppBlips

1

Clone the repository

Download the AppBlips source and move into the project directory:
2

Create your .env file

Copy the example configuration file and open it in your editor to fill in your LLM provider details:
At minimum, set these three variables:
3

Build and start the container

Run the following command from the project root:
Docker will build the client bundle, assemble the runtime image, and start the server. The first build takes a minute or two as it installs dependencies and compiles the front end. Subsequent builds are faster thanks to Docker’s layer cache.
4

Open AppBlips in your browser

Once you see AppBlips listening on port 3000 in the terminal output, navigate to:
You’re ready to start building apps.

Ports

By default AppBlips listens on port 3000 inside the container, mapped to port 3000 on your host. To use a different host port, either set the PORT environment variable in your .env file or edit the ports entry in docker-compose.yml:

Rebuilding After Config Changes

Most configuration variables are read at runtime when the server starts, so you can update them in .env and restart the container with docker compose restart to apply the change.
Two variables are baked into the client at build time: APPBLIPS_GENERATED_AI_MODE and APPBLIPS_APP_AI_RELAY_URL. A plain restart does not pick up new values for these — you must rebuild the image by running docker compose up --build again after changing either one.

Runtime vs Build-Time Variables

Understanding which variables take effect when helps you avoid surprising behaviour: Build-time variables are embedded into the compiled client bundle during the npm run build step inside Docker. Runtime variables are read by the Node server process on startup from the .env file.

Stopping and Updating

To stop AppBlips, press Ctrl+C in the terminal running docker compose up, or run the following from the project directory:
To update to a newer version of AppBlips, pull the latest code and rebuild:
The AppBlips server is a plain Node.js process that relies only on built-in Node modules — no node_modules directory is included in the runtime image. This keeps the final image small and eliminates a class of supply-chain risk from runtime dependencies.