Environment setup
Clone Defguard Core repository recursively (including Git submodules like protos and UI):
With docker-compose
Using 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:
Run the application:
Switching images
To 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:
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:
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/
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 cookiesDEFGUARD_SECRET_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
- 64-character long security keyDEFGUARD_LOG_LEVEL=debug
- increase logging level
Frontend
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