48 lines
1.3 KiB
Makefile
48 lines
1.3 KiB
Makefile
BINARY=cpone-dashboard
|
|
SERVER=one@devcpone.aplikasi.web.id
|
|
DEPLOY_DIR=/home/one/project/cpone-dashboard
|
|
GO ?= go
|
|
|
|
.PHONY: run build deploy local stop start restart
|
|
|
|
run:
|
|
$(GO) run .
|
|
|
|
local:
|
|
GOCACHE=/tmp/cpone-gocache $(GO) run .
|
|
|
|
start:
|
|
@if lsof -nP -iTCP:3307 -sTCP:LISTEN >/dev/null 2>&1; then \
|
|
echo "tunnel 3307 already running"; \
|
|
else \
|
|
echo "starting tunnel 3307 -> devcpone"; \
|
|
ssh -f -N -L 3307:127.0.0.1:3306 one@devcpone.aplikasi.web.id; \
|
|
fi
|
|
@echo "starting dashboard on http://localhost:8080/dashboard"
|
|
GOCACHE=/tmp/cpone-gocache $(GO) run .
|
|
|
|
stop:
|
|
@pids="$$(lsof -t -iTCP:8080 -sTCP:LISTEN 2>/dev/null) $$(lsof -t -iTCP:3307 -sTCP:LISTEN 2>/dev/null)"; \
|
|
if [ -z "$$pids" ]; then \
|
|
echo "nothing to stop"; \
|
|
else \
|
|
echo "$$pids" | tr ' ' '\n' | sort -u | xargs kill; \
|
|
echo "stopped local dashboard and tunnel"; \
|
|
fi
|
|
|
|
restart: stop start
|
|
|
|
build:
|
|
GOOS=linux GOARCH=amd64 $(GO) build -o $(BINARY)-linux .
|
|
|
|
deploy: build
|
|
scp $(BINARY)-linux $(SERVER):$(DEPLOY_DIR)/$(BINARY)
|
|
ssh $(SERVER) "chmod +x $(DEPLOY_DIR)/$(BINARY) && systemctl --user restart cpone-dashboard"
|
|
@echo "deployed → https://devcpone.aplikasi.web.id/cpone-dashboard"
|
|
|
|
logs:
|
|
ssh $(SERVER) "journalctl --user -u cpone-dashboard -f --no-pager"
|
|
|
|
status:
|
|
ssh $(SERVER) "systemctl --user status cpone-dashboard --no-pager"
|