Skip to content

Local setup

Running the Benefits application in a local, non-production environment requires Docker.

The following commands should be run in a terminal program like bash.

Clone the repository

git clone https://github.com/cal-itp/benefits

Create an environment file

The application is configured with defaults to run locally, but an .env file is required to run with Docker Compose. Start from the existing sample:

cp .env.sample .env

E.g. to change the localhost port from the default 8000 to 9000, add the following line to your .env file:

DJANGO_LOCAL_PORT=9000

See Configuration for more details on supported environment variables and their settings.

Run the build script

This builds the runtime and devcontainer images:

bin/build.sh

If you need all layers to rebuild, use:

docker compose build --no-cache client

Start the client

The optional -d flag will start in detatched mode and allow you to continue using the terminal session.

docker compose up -d client

Otherwise attach your terminal to the container’s terminal, showing the startup and runtime output:

docker compose up client

After initialization, the client is running running on http://localhost:8000 by default.

The backend administrative interface can be accessed at the /admin route using the superuser account you setup as part of initialization.

By default, sample values are used to initialize Django. Alternatively you may:

  • Set environment variable values to use instead of the default sample values

Stop the running services with:

docker compose down