auditforge / docs /installation.md
Kaballas's picture
initialize project structure with essential configurations and components
56b6519

Installation

AuditForge uses 4 containers: the backend, the frontend, the database and the AI model.

Production

All 4 containers can be run at once using the docker-compose file in the root directory.

!> For production usage make sure to change the certificates in backend/ssl and cwe_api/ssl folders and optionally to set the JWT secret in backend/src/lib/auth.js (jwtSecret and jwtRefreshSecret in backend/src/config/config.json) if you don't want to use random ones.

Build and run Docker containers

docker-compose up -d --build

Display backend container logs

docker-compose logs -f auditforge-backend

Stop/Start containers

docker-compose stop
docker-compose start

Remove containers

docker-compose down

Update

docker-compose down
git pull
docker-compose up -d --build

Application is accessible through https://localhost:8443
API is accessible through https://localhost:8443/api

Development

For development purposes, specific docker-compose file can be used in each folder (backend/frontend).

Source code can be modified live and application will automatically reload on changes.

Build and run backend and database containers

docker-compose -f backend/docker-compose.dev.yml up -d --build

Display backend container logs

docker-compose -f backend/docker-compose.dev.yml logs -f auditforge-backend

Stop/Start container

docker-compose -f backend/docker-compose.dev.yml stop
docker-compose -f backend/docker-compose.dev.yml start

Remove containers

docker-compose -f backend/docker-compose.dev.yml down

Application is accessible through https://localhost:8081
API is accessible through https://localhost:8081/api

Tests

For now only backend tests have been written (it's a continuous work in progress)

Test files are located in backend/tests using Jest testing framework

Script run_tests.sh at the root folder can be used to launch tests :

Usage:        ./run_tests.sh -q|-f [-h, --help]

Options:
  -h, --help  Display help
  -q          Run quick tests (No build)
  -f          Run full tests (Build with no cache)

!> Don't use it in production as it will delete the production Database

Backup

It's possible, even recommended, to regularly backup the backend/mongo-data folder. It contains all the database.

To restore :

  • Stop containers
  • Replace the current backend/mongo-data folder with the backed up one
  • Start containers