Skip to content

Setup

Development Setup

Set up your development environment for TrikuSec.

Prerequisites

  • Docker and Docker Compose
  • Git
  • (Optional) A code editor

No local Python installation required!

Setup Steps

1. Clone Repository

git clone https://github.com/trikusec/trikusec.git
cd trikusec

2. Start Development Services

docker compose -f docker-compose.dev.yml up

This starts: - TrikuSec development server - Database (src/trikusec-dev.sqlite3) - (Optional) Test services

4. Access Development Server

http://localhost:8000

Development Workflow

Running Tests

All tests run in Docker:

# Run all tests
docker compose -f docker-compose.dev.yml --profile test run --rm test

# Run specific test file
docker compose -f docker-compose.dev.yml --profile test run --rm test pytest api/tests.py -v

# Run with coverage
docker compose -f docker-compose.dev.yml --profile test run --rm test pytest --cov=api --cov-report=html

Accessing Shell

# Django shell
docker compose -f docker-compose.dev.yml exec trikusec python manage.py shell

# Test container shell
docker compose -f docker-compose.dev.yml --profile test run --rm test /bin/bash

Database Migrations

# Create migration
docker compose -f docker-compose.dev.yml exec trikusec-manager python manage.py makemigrations

# Apply migrations
docker compose -f docker-compose.dev.yml exec trikusec-manager python manage.py migrate

Code Organization

Settings

Settings are organized by environment:

  • src/trikusec/settings/base.py - Common settings
  • src/trikusec/settings/development.py - Development settings
  • src/trikusec/settings/production.py - Production settings
  • src/trikusec/settings/testing.py - Testing settings

Apps

  • src/api/ - API application (models, views, forms, tests)
  • src/frontend/ - Frontend application (views, templates, static files)

Utilities

  • src/api/utils/ - Utility modules (compliance, lynis_report, policy_query)
  • src/conftest.py - Pytest fixtures

Development Tips

  • Hot Reload - Django development server auto-reloads on code changes
  • Debug Mode - Enable DJANGO_DEBUG=True for detailed error pages
  • Database - SQLite is used by default for development
  • Logs - Check container logs: docker compose logs trikusec

Next Steps