refactor: deploy model — all files under /opt/pulse-lets-go
Single prefix deployment: /opt/pulse-lets-go/ contains bin/, data/, web/, log/ — no more split across /usr/local/bin, /etc, /usr/local/share, /var/log. * Makefile: install → deploy target with PREFIX=/opt/pulse-lets-go * deploy/pulse-lets-go.service: all paths under /opt/pulse-lets-go, removed stale nats.service dependency * main.go: default dataDir = parent of exeDir (PREFIX/bin → PREFIX/data) * README: updated all paths, step 1 uses make deploy
This commit is contained in:
@@ -1,12 +1,12 @@
|
||||
# pulse-lets-go — Telephone Load Balancer
|
||||
# Сборка Go backend + SvelteKit фронта в единый бинарник.
|
||||
|
||||
APP := pulse-lets-go
|
||||
BINDIR := bin
|
||||
APP := pulse-lets-go
|
||||
BINDIR := bin
|
||||
WEB_DIR := web
|
||||
DATA_DIR := data
|
||||
PREFIX := /opt/pulse-lets-go
|
||||
|
||||
.PHONY: all build build-go build-web clean run test install \
|
||||
.PHONY: all build build-go build-web clean run test deploy \
|
||||
emulate emulate-normal emulate-overload emulate-cpu-low emulate-fail-high \
|
||||
emulate-node-down emulate-stale emulate-chaos build-emulator \
|
||||
build-siptest siptest-uas siptest-uac siptest-full
|
||||
@@ -50,21 +50,23 @@ build-prod:
|
||||
rm -rf $(BINDIR)/web && cp -r $(WEB_DIR)/build $(BINDIR)/web
|
||||
CGO_ENABLED=0 go build -ldflags="-s -w" -o $(BINDIR)/$(APP) ./cmd/$(APP)
|
||||
|
||||
# Установка: копирует бинарник и статику в /usr/local
|
||||
install: build
|
||||
@echo "→ Установка в /usr/local"
|
||||
mkdir -p /usr/local/share/$(APP)/web
|
||||
cp -r $(WEB_DIR)/build /usr/local/share/$(APP)/web/
|
||||
cp $(BINDIR)/$(APP) /usr/local/bin/$(APP)
|
||||
chmod +x /usr/local/bin/$(APP)
|
||||
@echo "✓ Установлен в /usr/local/bin/$(APP)"
|
||||
# Деплой в PREFIX: бинарник + статика + data + log
|
||||
deploy: build-prod
|
||||
@echo "→ Деплой в $(PREFIX)"
|
||||
install -d $(PREFIX)/bin $(PREFIX)/data $(PREFIX)/web $(PREFIX)/log
|
||||
install -m 755 $(BINDIR)/$(APP) $(PREFIX)/bin/
|
||||
cp -r $(WEB_DIR)/build/. $(PREFIX)/web/
|
||||
@echo "✓ Готово: $(PREFIX)"
|
||||
@echo " $(PREFIX)/bin/$(APP)"
|
||||
@echo " $(PREFIX)/web/ (SvelteKit статика)"
|
||||
@echo " $(PREFIX)/data/ (config.json, trunks.json, users.json)"
|
||||
@echo " $(PREFIX)/log/ (ASCII-лог метрик)"
|
||||
|
||||
# Установка systemd unit
|
||||
install-systemd:
|
||||
@echo "→ Установка systemd unit"
|
||||
cp deploy/$(APP).service /etc/systemd/system/
|
||||
install -m 644 deploy/$(APP).service /etc/systemd/system/
|
||||
systemctl daemon-reload
|
||||
@echo "✓ systemd unit установлен. Запуск: systemctl start $(APP)"
|
||||
@echo "✓ systemd unit установлен. Запуск: sudo systemctl start $(APP)"
|
||||
|
||||
# ============================================================
|
||||
# Эмулятор метрик
|
||||
|
||||
Reference in New Issue
Block a user