555e282cc4
ci / changelog_check (push) Waiting to run
ci / check_changes (push) Waiting to run
ci / build_mem0 (3.10) (push) Blocked by required conditions
ci / build_mem0 (3.11) (push) Blocked by required conditions
ci / build_mem0 (3.12) (push) Blocked by required conditions
CLI Node CI / lint (push) Waiting to run
CLI Node CI / test (20) (push) Waiting to run
CLI Node CI / test (22) (push) Waiting to run
CLI Node CI / build (push) Waiting to run
CLI Python CI / lint (push) Waiting to run
CLI Python CI / test (3.10) (push) Waiting to run
CLI Python CI / test (3.11) (push) Waiting to run
CLI Python CI / test (3.12) (push) Waiting to run
CLI Python CI / build (push) Waiting to run
openclaw checks / lint (push) Waiting to run
openclaw checks / test (20) (push) Waiting to run
openclaw checks / test (22) (push) Waiting to run
openclaw checks / build (push) Waiting to run
opencode-plugin checks / build (push) Waiting to run
pi-agent-plugin checks / lint (push) Waiting to run
pi-agent-plugin checks / test (20) (push) Waiting to run
pi-agent-plugin checks / test (22) (push) Waiting to run
pi-agent-plugin checks / build (push) Waiting to run
TypeScript SDK CI / check_changes (push) Waiting to run
TypeScript SDK CI / changelog_check (push) Blocked by required conditions
TypeScript SDK CI / build_ts_sdk (20) (push) Blocked by required conditions
TypeScript SDK CI / build_ts_sdk (22) (push) Blocked by required conditions
TypeScript SDK CI / integration_ts_sdk (20) (push) Blocked by required conditions
TypeScript SDK CI / integration_ts_sdk (22) (push) Blocked by required conditions
63 lines
2.2 KiB
Makefile
63 lines
2.2 KiB
Makefile
.PHONY: up down clean logs seed wait-api wait-dashboard bootstrap health build run_local reset-admin-password prune-logs
|
|
|
|
OUTPUT ?= text
|
|
API_URL ?= http://localhost:8888
|
|
DASHBOARD_URL ?= http://localhost:3000
|
|
|
|
up:
|
|
@for port in 3000 8888; do \
|
|
if lsof -iTCP:$$port -sTCP:LISTEN >/dev/null 2>&1; then \
|
|
echo "error: port $$port is already in use."; \
|
|
echo "find the owning process with: lsof -iTCP:$$port -sTCP:LISTEN"; \
|
|
exit 1; \
|
|
fi; \
|
|
done
|
|
docker compose up -d --build
|
|
@$(MAKE) --no-print-directory wait-api
|
|
@$(MAKE) --no-print-directory wait-dashboard
|
|
@echo ""
|
|
@echo "Stack is ready."
|
|
@echo " Dashboard: $(DASHBOARD_URL) <- open this to run the setup wizard"
|
|
@echo " API: $(API_URL)"
|
|
|
|
down:
|
|
docker compose down
|
|
|
|
clean:
|
|
docker compose down -v
|
|
|
|
logs:
|
|
docker compose logs -f
|
|
|
|
seed:
|
|
@API_URL="$(API_URL)" DASHBOARD_URL="$(DASHBOARD_URL)" EMAIL="$(EMAIL)" PASSWORD="$(PASSWORD)" NAME="$(NAME)" OUTPUT="$(OUTPUT)" ./scripts/seed.sh
|
|
|
|
wait-api:
|
|
@echo "Waiting for API..."
|
|
@until curl -fsS "$(API_URL)/auth/setup-status" >/dev/null 2>&1; do sleep 2; done
|
|
|
|
wait-dashboard:
|
|
@echo "Waiting for dashboard..."
|
|
@until curl -fsS "$(DASHBOARD_URL)/api/health" >/dev/null 2>&1; do sleep 2; done
|
|
|
|
bootstrap: up wait-api wait-dashboard seed
|
|
|
|
health:
|
|
@echo "API: $$(curl -s -o /dev/null -w '%{http_code}' "$(API_URL)/docs")"
|
|
@echo "Dashboard: $$(curl -s -o /dev/null -w '%{http_code}' "$(DASHBOARD_URL)/api/health")"
|
|
@echo "Postgres: $$(docker compose exec -T postgres pg_isready -q && echo 'ok' || echo 'down')"
|
|
|
|
reset-admin-password:
|
|
@test -n "$(EMAIL)" || (echo "usage: make reset-admin-password EMAIL=<email> PASSWORD=<password>" && exit 2)
|
|
@test -n "$(PASSWORD)" || (echo "usage: make reset-admin-password EMAIL=<email> PASSWORD=<password>" && exit 2)
|
|
@docker compose exec -T -e EMAIL="$(EMAIL)" -e PASSWORD="$(PASSWORD)" -e PYTHONPATH=/app mem0 python scripts/reset_admin_password.py
|
|
|
|
prune-logs:
|
|
@docker compose exec -T -e REQUEST_LOG_RETENTION_DAYS="$(REQUEST_LOG_RETENTION_DAYS)" -e PYTHONPATH=/app mem0 python scripts/prune_request_logs.py
|
|
|
|
build:
|
|
docker build -t mem0-api-server .
|
|
|
|
run_local:
|
|
docker run -p 8000:8000 -v $(shell pwd):/app mem0-api-server --env-file .env
|