githubEdit

Environment setup

Clone Defguard Core repositoryarrow-up-right recursively (including Git submodules like protos and UI):

git clone --recursive [email protected]:DefGuard/defguard.git

With docker-compose

Using Docker Composearrow-up-right you can setup a simple stack with:

This way you'll have some live stats data to work with.

To do so follow these steps:

  1. Migrate database and insert test network and device:

docker compose run core init-dev-env
  1. Run the application:

docker compose up

Switching images

To use different versions of Defguard images, edit docker-compose.yaml file, replacing image: sections. Consult Defguard Packagearrow-up-right versions to browse for available image tags.

For example, to use current development version, change this section in docker-compose.yaml:

Running local code

To run local code you will need to build core image from local changes:

Then just run the compose normally.

Cargo

To run Defguard Core without Docker, you'll need:

The procedure to start Defguard Core:

  1. Launch PostgreSQL database, for example using Dockerarrow-up-right:

or use another method described in pnpm installationarrow-up-right.

  1. Build front-end

  1. Start Defguard Core in development mode

You'll find environment variables in .env file. Source them however you like (we recommend direnvarrow-up-right).

Once that's done, you can run backend with:

  1. Use a web browser to connect to Defguard. For example, when using the default configuration the web site should be accessible under this address:

http://localhost:8000/

Minimum required settings

Consult Configuration manual for a list of all available configuration settings.

  • DEFGUARD_COOKIE_INSECURE=true - running HTTP server locally does not need secured cookies

  • DEFGUARD_SECRET_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx - 64-character long security key

  • DEFGUARD_LOG_LEVEL=debug - increase logging level

Frontend

circle-info

The domain used to access the frontend instance has to match with the cookie domain address (which can be set using DEFGUARD_COOKIE_DOMAIN).

For example, if the cookie domain is set to the default value of localhost, you should access frontend using localhost domain.