make deploy — full pipeline (push, pull, rebuild) make deploy-status / deploy-logs for monitoring
69 lines
1.6 KiB
Makefile
69 lines
1.6 KiB
Makefile
.PHONY: dev prod build up down logs clean local static deploy deploy-pull deploy-rebuild
|
|
|
|
# Development mode with hot reload
|
|
dev:
|
|
MODE=development DEV_MOUNT=./src docker compose up --build
|
|
|
|
# Production mode (local)
|
|
prod:
|
|
MODE=production docker compose up -d --build
|
|
|
|
# Build only
|
|
build:
|
|
docker compose build
|
|
|
|
# Start containers
|
|
up:
|
|
docker compose up -d
|
|
|
|
# Stop containers
|
|
down:
|
|
docker compose down
|
|
|
|
# View logs
|
|
logs:
|
|
docker compose logs -f
|
|
|
|
# Clean up
|
|
clean:
|
|
docker compose down -v --rmi local
|
|
|
|
# Local development without Docker
|
|
local:
|
|
npm run dev
|
|
|
|
# Build static site
|
|
static:
|
|
npm run build
|
|
|
|
# --- Production Deployment (forrest.warehack.ing) ---
|
|
# Remote: warehack.ing (149.28.126.25)
|
|
# User: warehack-ing (requires SSH agent forwarding for git pull)
|
|
# Path: /home/warehack-ing/forrest-mims-library/site
|
|
|
|
PROD_HOST = warehack-ing@warehack.ing
|
|
PROD_PATH = /home/warehack-ing/forrest-mims-library
|
|
|
|
# Full deploy: push, pull remote, rebuild container
|
|
deploy: deploy-push deploy-pull deploy-rebuild
|
|
|
|
# Push local commits to Gitea
|
|
deploy-push:
|
|
git push origin main
|
|
|
|
# Pull latest on production server
|
|
deploy-pull:
|
|
ssh -A $(PROD_HOST) "cd $(PROD_PATH) && git pull origin main"
|
|
|
|
# Rebuild and restart production container
|
|
deploy-rebuild:
|
|
ssh -A $(PROD_HOST) "cd $(PROD_PATH)/site && MODE=production docker compose up -d --build"
|
|
|
|
# Check production container status
|
|
deploy-status:
|
|
ssh $(PROD_HOST) "docker ps --filter name=mims-library --format 'table {{.Names}}\t{{.Status}}\t{{.Image}}'"
|
|
|
|
# View production logs
|
|
deploy-logs:
|
|
ssh $(PROD_HOST) "docker logs mims-library --tail 20"
|