72 lines
2.6 KiB
Makefile
72 lines
2.6 KiB
Makefile
SHELL :=/bin/bash
|
|
|
|
.PHONY: clean check setup docker-build docker-up docker-down docker-logs docker-restart docker-backup
|
|
.DEFAULT_GOAL=help
|
|
VENV_DIR = .venv
|
|
PYTHON_VERSION = python3
|
|
|
|
check: # Ruff check
|
|
@ruff check .
|
|
@echo "✅ Check complete!"
|
|
|
|
fix: # Fix auto-fixable linting issues
|
|
@ruff check app.py --fix
|
|
|
|
clean: # Clean temporary files
|
|
@rm -rf __pycache__ .pytest_cache
|
|
@find . -name '*.pyc' -exec rm -r {} +
|
|
@find . -name '__pycache__' -exec rm -r {} +
|
|
@rm -rf build dist
|
|
@find . -name '*.egg-info' -type d -exec rm -r {} +
|
|
|
|
run: # Run the application
|
|
@PYTHONPATH=src streamlit run app.py
|
|
|
|
setup: # Initial project setup
|
|
@echo "Creating virtual env at: $(VENV_DIR)"
|
|
@$(PYTHON_VERSION) -m venv $(VENV_DIR)
|
|
@echo "Installing dependencies..."
|
|
@source $(VENV_DIR)/bin/activate && pip install -r requirements/requirements-dev.txt && pip install -r requirements/requirements.txt
|
|
@echo -e "\n✅ Done.\n🎉 Run the following commands to get started:\n\n ➡️ source $(VENV_DIR)/bin/activate\n ➡️ export OPENAI_API_KEY=your_api_key_here\n ➡️ make run\n"
|
|
|
|
|
|
docker-build: # Build Docker image
|
|
@echo "Building Docker image..."
|
|
@docker compose build
|
|
@echo "✅ Docker image built!"
|
|
|
|
docker-up: # Start the application with Docker Compose
|
|
@echo "Starting RAG application with Docker Compose..."
|
|
@docker compose up -d
|
|
@echo "✅ Application started! Access at http://localhost:8501"
|
|
|
|
docker-down: # Stop the application
|
|
@echo "Stopping RAG application..."
|
|
@docker compose down
|
|
@echo "✅ Application stopped!"
|
|
|
|
docker-logs: # View application logs
|
|
@docker compose logs -f rag-app
|
|
|
|
docker-restart: # Restart the application
|
|
@echo "Restarting RAG application..."
|
|
@docker compose restart rag-app
|
|
@echo "✅ Application restarted!"
|
|
|
|
docker-backup: # Backup persistent data
|
|
@echo "Creating backup directory..."
|
|
@mkdir -p backups
|
|
@echo "Backing up ChromaDB data..."
|
|
@docker run --rm -v drakkenheim_chroma_data:/data -v $(PWD)/backups:/backup alpine tar czf /backup/chroma_data_$$(date +%Y%m%d_%H%M%S).tar.gz -C /data .
|
|
@echo "Backing up processed files..."
|
|
@docker run --rm -v drakkenheim_processed_files:/data -v $(PWD)/backups:/backup alpine tar czf /backup/processed_files_$$(date +%Y%m%d_%H%M%S).tar.gz -C /data .
|
|
@echo "✅ Backup completed! Check the backups/ directory"
|
|
|
|
docker-clean: # Clean up Docker resources
|
|
@echo "Cleaning up Docker resources..."
|
|
@docker compose down
|
|
@docker system prune -f
|
|
@echo "✅ Docker cleanup completed!"
|
|
|
|
help: # Show this help
|
|
@egrep -h '\s#\s' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?# "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
|