Environment setup
Last updated
Was this helpful?
Clone Defguard Core repository recursively (including Git submodules like protos and UI):
git clone --recursive git@github.com:DefGuard/defguard.gitUsing Docker Compose you can setup a simple stack with:
Defguard Core
PostgreSQL database
Defguard Gateway
example device connected to the gateway
This way you'll have some live stats data to work with.
To do so follow these steps:
Migrate database and insert test network and device:
docker compose run core init-dev-envRun the application:
docker compose upTo use different versions of Defguard images, edit docker-compose.yaml file, replacing image: sections. Consult Defguard Package versions to browse for available image tags.
For example, to use current development version, change this section in docker-compose.yaml:
To run local code you will need to build core image from local changes:
Then just run the compose normally.
To run Defguard Core without Docker, you'll need:
PostgreSQL database
Protobuf compiler (protoc)
environment variables set
The procedure to start Defguard Core:
Launch PostgreSQL database, for example using Docker:
Install pnpm
or use another method described in pnpm installation.
Build front-end
Start Defguard Core in development mode
You'll find environment variables in .env file. Source them however you like (we recommend direnv).
Once that's done, you can run backend with:
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/
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
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.
Last updated
Was this helpful?
Was this helpful?
core:
image: ghcr.io/defguard/defguard:devdocker compose build coredocker compose updocker-compose up -d dbsudo npm i -g pnpmpushd web
pnpm install
pnpm build
popdcargo run