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¶
2. Start Development Services¶
This starts:
- TrikuSec development server
- Database (src/trikusec-dev.sqlite3)
- (Optional) Test services
4. Access Development Server¶
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 settingssrc/trikusec/settings/development.py- Development settingssrc/trikusec/settings/production.py- Production settingssrc/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=Truefor detailed error pages - Database - SQLite is used by default for development
- Logs - Check container logs:
docker compose logs trikusec
Next Steps¶
- Testing Guide - Learn about testing
- Contributing - Contribution guidelines