rmm2/Makefile
cynfo3000 8116b71b48 feat: Windows Agent v1.0.0
- Windows-Dienst (golang.org/x/sys/windows/svc)
- Collector: CPU (GetSystemTimes), RAM (GlobalMemoryStatusEx), Disks (GetDiskFreeSpaceEx)
- WS-Client: gleiche Verbindungslogik wie Linux/BSD Agent
- Commands: exec, winget list/install/upgrade/upgrade-all, Windows Updates check/install, reboot
- install.ps1: automatische Service-Installation mit Parametern
- make agent-windows VERSION=x.x.x
2026-03-10 01:22:19 +01:00

94 lines
3.8 KiB
Makefile

.PHONY: all backend agent agent-linux agent-windows updater-freebsd updater-linux plugin clean certs release deploy-backend deploy-frontend
VERSION ?= 0.0.0
BACKEND_BIN = build/rmm-backend
AGENT_BIN = build/rmm-agent
AGENT_LINUX_BIN = build/rmm-agent-linux
AGENT_WINDOWS_BIN = build/rmm-agent-windows.exe
UPDATER_FREEBSD_BIN = build/rmm-updater-freebsd
UPDATER_LINUX_BIN = build/rmm-updater-linux
BACKEND_HOST = 192.168.85.13
SSH_USER = root
all: backend agent agent-linux updater-freebsd updater-linux
backend:
@echo "==> Building Backend (linux/amd64)..."
cd backend && GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o ../$(BACKEND_BIN) .
@echo "==> $(BACKEND_BIN) erstellt"
agent:
@echo "==> Building Agent (freebsd/amd64)..."
cd agent-bsd && GOOS=freebsd GOARCH=amd64 CGO_ENABLED=0 go build -ldflags "-X main.Version=$(VERSION)" -o ../$(AGENT_BIN) .
@echo "==> $(AGENT_BIN) erstellt"
agent-linux:
@echo "==> Building Agent Linux (linux/amd64)..."
cd agent-linux && GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -ldflags "-X main.Version=$(VERSION)" -o ../$(AGENT_LINUX_BIN) .
@echo "==> $(AGENT_LINUX_BIN) erstellt"
agent-windows:
@echo "==> Building Agent Windows (windows/amd64)..."
cd agent-windows && GOOS=windows GOARCH=amd64 CGO_ENABLED=0 go build -ldflags "-X main.Version=$(VERSION)" -o ../$(AGENT_WINDOWS_BIN) .
@echo "==> $(AGENT_WINDOWS_BIN) erstellt"
updater-freebsd:
@echo "==> Building Updater (freebsd/amd64)..."
cd updater && GOOS=freebsd GOARCH=amd64 CGO_ENABLED=0 go build -o ../$(UPDATER_FREEBSD_BIN) .
@echo "==> $(UPDATER_FREEBSD_BIN) erstellt"
updater-linux:
@echo "==> Building Updater (linux/amd64)..."
cd updater && GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o ../$(UPDATER_LINUX_BIN) .
@echo "==> $(UPDATER_LINUX_BIN) erstellt"
# Release: Baut alles und erzeugt ZIP-Bundles pro Plattform
release: agent agent-linux updater-freebsd updater-linux
@echo "==> Creating release bundles v$(VERSION)..."
@mkdir -p build/release
@# FreeBSD Bundle (Agent + Updater + install.sh)
@cp opnsense-plugin/install.sh build/install-freebsd.sh
@cd build && zip -j release/rmm-freebsd-$(VERSION).zip rmm-agent rmm-updater-freebsd install-freebsd.sh
@echo "==> build/release/rmm-freebsd-$(VERSION).zip erstellt"
@# Linux Bundle (Agent + Updater + install.sh)
@cp agent-linux/install.sh build/install-linux.sh
@cd build && zip -j release/rmm-linux-$(VERSION).zip rmm-agent-linux rmm-updater-linux install-linux.sh
@echo "==> build/release/rmm-linux-$(VERSION).zip erstellt"
@echo ""
@echo "Release v$(VERSION) fertig:"
@ls -lh build/release/rmm-*-$(VERSION).zip
plugin:
@echo "==> Building OPNsense Plugin Package..."
cd opnsense-plugin && ./build.sh $(VERSION)
@echo "==> Plugin Package erstellt in opnsense-plugin/"
clean:
rm -rf build/ opnsense-plugin/stage/
certs:
@echo "==> Generiere self-signed TLS-Zertifikate..."
mkdir -p certs
openssl req -x509 -newkey ec -pkeyopt ec_paramgen_curve:P-256 \
-keyout certs/server.key -out certs/server.crt \
-days 3650 -nodes \
-subj "/CN=rmm-backend/O=RMM" \
-addext "subjectAltName=IP:192.168.85.13,IP:127.0.0.1,DNS:localhost"
@echo "==> Zertifikate in certs/ erstellt"
deploy-frontend:
cd frontend && npm run build
ssh root@192.168.85.20 "rm -rf /var/www/html/assets/*"
scp -r frontend/dist/assets frontend/dist/index.html root@192.168.85.20:/var/www/html/
ssh root@192.168.85.20 "chown -R www-data:www-data /var/www/html/ && chmod -R 755 /var/www/html/"
@echo "==> Frontend deployed"
deploy-backend: backend
@echo "==> Deploying Backend to $(BACKEND_HOST)..."
ssh $(SSH_USER)@$(BACKEND_HOST) "systemctl stop rmm-backend || true"
scp $(BACKEND_BIN) $(SSH_USER)@$(BACKEND_HOST):/home/cynfo/rmm/rmm-backend
ssh $(SSH_USER)@$(BACKEND_HOST) "systemctl start rmm-backend"
@echo "==> Backend deployed und gestartet"