Initial DocsMCP stack

This commit is contained in:
george
2026-06-05 23:02:55 +01:00
commit 421b6f973a
51 changed files with 7414 additions and 0 deletions
+106
View File
@@ -0,0 +1,106 @@
# Makefile for local-context7
# Common development and deployment commands
.PHONY: help install deps test lint docs docker-up docker-down clean
.DEFAULT_GOAL := help
## Help - Show available commands
help:
@echo "Available commands:"
@echo " make install - Install all Python dependencies (backend + tests)"
@echo " make deps - Upgrade all dependencies to latest versions"
@echo " make test - Run all tests with pytest"
@echo " make test-unit - Run only unit tests (no external dependencies)"
@echo " make lint - Run linters (if configured)"
@echo " make docker-up - Start Docker containers for development"
@echo " make docker-down - Stop Docker containers"
@echo " make clean - Remove generated files, databases, and caches"
## Install all dependencies (backend + tests)
install:
pip install -r backend/requirements.txt
pip install pytest pytest-mock pytest-asyncio
## Upgrade all dependencies to latest versions
deps:
pip install --upgrade pip setuptools wheel
pip install -U -r backend/requirements.txt
pip install -U pytest pytest-mock pytest-asyncio
## Run all tests
test:
@echo "Running all tests..."
pytest -v --tb=short
## Run only unit tests (no external dependencies like Qdrant, FastEmbed)
# These tests can run without Docker containers being started
test-unit:
@echo "Running unit tests only..."
pytest -v --tb=short \
-m unit \
--ignore=tests/test_search.py
## Run linting (if flake8 is configured)
lint:
flake8 backend/
flake8 tests/
## Start Docker containers for full development environment
docker-up:
docker-compose up -d
## Stop Docker containers
docker-down:
docker-compose down
## Clean generated files, databases, and caches
clean:
@echo "Cleaning up..."
rm -rf backend/data/*.sqlite
rm -rf .embed_cache
rm -rf __pycache__
find . -type d -name "__pycache__" -exec rm -rf {} + 2>/dev/null || true
find . -type f -name "*.pyc" -delete 2>/dev/null || true
find . -type f -name "*.pyo" -delete 2>/dev/null || true
## Install development dependencies (linting, typing)
install-dev: install
pip install flake8 mypy black # Optional linting tools
## Show test summary with coverage
test-coverage:
pytest -v --cov=backend/app --cov-report=html --cov-report=term-missing
## Run specific test file
test-file:
pytest -v $(file)
## Backup SQLite database
backup-db:
@echo "Backing up SQLite database..."
mkdir -p backups
docker compose exec docs-api sh -c "sqlite3 /data/db.sqlite '.dump' | gzip > ${BACKUP_PATH:-backups/db-$(date +%Y%m%d-%H%M%S).sql.gz}"
@echo "Backup complete: ${BACKUP_PATH:-backups/db-$(date +%Y%m%d-%H%M%S).sql.gz}"
## Reset all data (Qdrant and SQLite)
reset:
@echo "WARNING: This will delete all data in Qdrant and the SQLite database!"
read -p "Type 'yes' to confirm: " confirm && [ "$$confirm" = "yes" ] && \
docker compose down -v && \
rm ./data/db.sqlite && \
rm -rf ./data/qdrant && \
docker compose up -d --build && \
echo "Reset complete. Services restarted." || echo "Reset cancelled."
## Show logs for all services
logs:
docker compose logs -f
## Show logs for specific service
log-backend:
docker compose logs -f docs-api
## Show health status
health:
docker compose ps