-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
158 lines (130 loc) · 4.08 KB
/
Makefile
File metadata and controls
158 lines (130 loc) · 4.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
.PHONY: help install dev prod test clean docker-build docker-up docker-down lint format docs
help:
@echo "Obsidian - AI Sonar Cavity Detection"
@echo ""
@echo "Available commands:"
@echo " make install - Install dependencies"
@echo " make dev - Start development servers"
@echo " make prod - Start production servers"
@echo " make test - Run tests"
@echo " make lint - Run code linting"
@echo " make format - Format code"
@echo " make docs - Generate documentation"
@echo " make docker-build - Build Docker images"
@echo " make docker-up - Start Docker containers"
@echo " make docker-down - Stop Docker containers"
@echo " make clean - Clean generated files"
# Installation
install:
@echo "Installing dependencies..."
cd backend && pip install -r requirements.txt
cd frontend && npm install
@echo "Installation complete!"
# Development
dev:
@echo "Starting development servers..."
@echo "Frontend: http://localhost:5173"
@echo "Backend: http://localhost:8000"
@echo "API Docs: http://localhost:8000/api/docs"
docker-compose up
dev-backend:
cd backend && uvicorn main:app --reload --host 0.0.0.0 --port 8000
dev-frontend:
cd frontend && npm run dev
# Production
prod:
@echo "Starting production servers..."
docker-compose -f docker-compose.prod.yml up -d
# Testing
test:
@echo "Running tests..."
cd backend && pytest tests/ -v
cd frontend && npm test
test-backend:
cd backend && pytest tests/ -v --cov=.
test-frontend:
cd frontend && npm test -- --coverage
# Linting
lint:
@echo "Running linters..."
cd backend && pylint backend/
cd frontend && npm run lint
lint-backend:
cd backend && pylint backend/ --disable=all --enable=E,F
lint-frontend:
cd frontend && npm run lint
# Formatting
format:
@echo "Formatting code..."
cd backend && black backend/
cd frontend && npm run format
format-backend:
cd backend && black backend/
format-frontend:
cd frontend && npx prettier --write "src/**/*.{js,jsx,json,css}"
# Documentation
docs:
@echo "Building documentation..."
@echo "Documentation is in docs/ directory"
# Docker
docker-build:
@echo "Building Docker images..."
docker-compose build
docker-up:
@echo "Starting Docker containers..."
docker-compose up -d
@echo "Services started:"
@echo " Frontend: http://localhost:5173"
@echo " Backend: http://localhost:8000"
@echo " Database: localhost:5432"
@echo " PgAdmin: http://localhost:5050"
docker-down:
@echo "Stopping Docker containers..."
docker-compose down
docker-logs:
docker-compose logs -f backend
docker-shell-backend:
docker-compose exec backend bash
docker-shell-frontend:
docker-compose exec frontend sh
# Cleaning
clean:
@echo "Cleaning generated files..."
find . -type d -name __pycache__ -exec rm -rf {} + 2>/dev/null || true
find . -type d -name .pytest_cache -exec rm -rf {} + 2>/dev/null || true
find . -type d -name node_modules -exec rm -rf {} + 2>/dev/null || true
find . -type d -name dist -exec rm -rf {} + 2>/dev/null || true
find . -type d -name build -exec rm -rf {} + 2>/dev/null || true
find . -type d -name .egg-info -exec rm -rf {} + 2>/dev/null || true
find . -type f -name "*.pyc" -delete
find . -type f -name ".DS_Store" -delete
@echo "Clean complete!"
# Setup
setup:
@echo "Setting up development environment..."
mkdir -p logs uploads checkpoints
cd backend && cp .env.example .env 2>/dev/null || true
make install
@echo "Setup complete! Run 'make dev' to start."
# Status
status:
@echo "Service status:"
@docker-compose ps
# Backup
backup:
@echo "Backing up database..."
@mkdir -p backups
@docker-compose exec -T db pg_dump -U obsidian obsidian > backups/obsidian_$(shell date +%Y%m%d_%H%M%S).sql
@echo "Backup complete!"
# Update
update:
@echo "Updating dependencies..."
cd backend && pip install --upgrade pip setuptools wheel
cd backend && pip install --upgrade -r requirements.txt
cd frontend && npm update
@echo "Update complete!"
# Kill ports
kill-ports:
@echo "Killing processes on ports 5173, 8000, 5432..."
lsof -ti:5173,8000,5432 | xargs kill -9 2>/dev/null || true
@echo "Done!"