63 lines
2.0 KiB
Makefile
63 lines
2.0 KiB
Makefile
SUDO ?= sudo
|
|
SERVICE ?= skd
|
|
SERVICE_USER ?= skd
|
|
SERVICE_GROUP ?= $(SERVICE_USER)
|
|
INSTALL_DIR ?= /opt/sk
|
|
ENV_DIR ?= /etc/$(SERVICE)
|
|
ENV_FILE ?= $(ENV_DIR)/env
|
|
SYSTEMD_PATH ?= /etc/systemd/system/$(SERVICE).service
|
|
BRANCH ?= main
|
|
HOST ?= 127.0.0.1
|
|
PORT ?= 80
|
|
HEALTH_URL ?= http://$(HOST):$(PORT)/health
|
|
TOKEN ?= $(shell awk -F= '/^SKD_AUTH_TOKEN=/{print $$2}' $(ENV_FILE) 2>/dev/null)
|
|
KEEP_INSTALL_DIR ?= 1
|
|
|
|
.PHONY: install up down uninstall healthcheck update token
|
|
|
|
install:
|
|
$(SUDO) env SERVICE_NAME=$(SERVICE) SERVICE_USER=$(SERVICE_USER) SERVICE_GROUP=$(SERVICE_GROUP) INSTALL_DIR=$(INSTALL_DIR) ./scripts/install.sh
|
|
|
|
up:
|
|
$(SUDO) systemctl start $(SERVICE).service
|
|
|
|
down:
|
|
$(SUDO) systemctl stop $(SERVICE).service
|
|
|
|
uninstall:
|
|
-$(SUDO) systemctl stop $(SERVICE).service
|
|
-$(SUDO) systemctl disable $(SERVICE).service
|
|
$(SUDO) rm -f $(SYSTEMD_PATH)
|
|
$(SUDO) systemctl daemon-reload
|
|
@if [ "$(KEEP_INSTALL_DIR)" != "1" ]; then \
|
|
echo "Removing $(INSTALL_DIR)..."; \
|
|
$(SUDO) rm -rf "$(INSTALL_DIR)"; \
|
|
else \
|
|
echo "Keeping install dir $(INSTALL_DIR); set KEEP_INSTALL_DIR=0 to remove."; \
|
|
fi
|
|
|
|
healthcheck:
|
|
@if [ -z "$(TOKEN)" ]; then \
|
|
echo "No token set; set TOKEN=... or populate $(ENV_FILE) with SKD_AUTH_TOKEN."; \
|
|
exit 1; \
|
|
fi
|
|
curl -fsS -H "X-API-Token: $(TOKEN)" "$(HEALTH_URL)" || (echo "Health check failed" && exit 1)
|
|
|
|
update:
|
|
$(SUDO) env PROJECT_ROOT=$(INSTALL_DIR) SERVICE_NAME=$(SERVICE) SERVICE_USER=$(SERVICE_USER) BRANCH=$(BRANCH) bash -c 'cd $(INSTALL_DIR) && ./scripts/update.sh'
|
|
|
|
token:
|
|
@if [ -z "$(TOKEN)" ]; then \
|
|
TOKEN=$$(head -c 32 /dev/urandom | base64 | tr -d '\n'); \
|
|
else \
|
|
TOKEN="$(TOKEN)"; \
|
|
fi; \
|
|
$(SUDO) mkdir -p "$(ENV_DIR)"; \
|
|
tmp="$(ENV_FILE).tmp"; \
|
|
$(SUDO) sh -c 'grep -v "^SKD_AUTH_TOKEN=" "$(ENV_FILE)" 2>/dev/null > "$$tmp" || true'; \
|
|
$(SUDO) sh -c 'echo "SKD_AUTH_TOKEN='"'"'$$TOKEN'"'"'" >> "$$tmp"'; \
|
|
$(SUDO) mv "$$tmp" "$(ENV_FILE)"; \
|
|
$(SUDO) chown root:$(SERVICE_GROUP) "$(ENV_FILE)"; \
|
|
$(SUDO) chmod 640 "$(ENV_FILE)"; \
|
|
echo "Token written to $(ENV_FILE)"
|