Skip to content

Getting Started

Carter Perez edited this page Dec 9, 2025 · 1 revision

Getting Started

Prerequisites

General Requirements

  • Git 2.x+
  • Docker & Docker Compose
  • Python 3.11+ (3.13+ for newer projects)
  • Node.js 20+ (for frontend projects)

Cloning the Repository

This repo uses git submodules for the fullstack template. Clone with:

git clone --recurse-submodules https://github.com/CarterPerez-dev/Cybersecurity-Projects.git

If you already cloned without submodules:

cd Cybersecurity-Projects
git submodule update --init --recursive

Updating Submodules

To pull the latest changes from submodules:

git submodule update --remote

Running Projects

Each completed project in PROJECTS/ has its own setup. Most use Docker Compose for easy deployment.

Quick Start Pattern

Most projects follow this pattern:

cd PROJECTS/<project-name>

# Development mode
make dev
# or
docker compose -f dev.compose.yml up --build

# Production mode
make prod
# or
docker compose up --build

Project-Specific Instructions

Project Setup Command Access
API Security Scanner make dev http://localhost:3000
Encrypted P2P Chat make dev http://localhost:3000
Keylogger python keylogger.py CLI output

Development Environment

Recommended Tools

  • IDE: VS Code with Python, TypeScript, Docker extensions
  • API Testing: Bruno, Postman, or httpie
  • Database: DBeaver or pgAdmin for PostgreSQL
  • Network: Wireshark for packet analysis

Python Setup

# Create virtual environment
python -m venv .venv
source .venv/bin/activate  # Linux/Mac
.venv\Scripts\activate     # Windows

# Install dependencies
pip install -e ".[dev]"

Node.js Setup

# Install dependencies
npm install
# or
pnpm install

# Development server
npm run dev

Environment Variables

Each project has a .env.example file. Copy and configure:

cp .env.example .env
# Edit .env with your values

Never commit .env files with secrets.

Next Steps

  1. Pick a project from the Project Roadmap
  2. Read the project-specific wiki page
  3. Clone and run locally
  4. Explore the code and learn

Clone this wiki locally