Files
Nip-05-api/Makefile
2026-04-29 02:35:00 +00:00

42 lines
1.3 KiB
Makefile

.PHONY: build run test test-race lint clean docker tidy install-systemd
GO ?= go
VERSION ?= $(shell git describe --tags --always --dirty 2>/dev/null || echo dev)
LDFLAGS := -s -w -X main.version=$(VERSION)
build:
CGO_ENABLED=0 $(GO) build -ldflags "$(LDFLAGS)" -o bin/nip05api ./cmd/nip05api
run:
$(GO) run ./cmd/nip05api
test:
$(GO) test ./... -count=1
test-race:
$(GO) test ./... -race -count=1
lint:
golangci-lint run
tidy:
$(GO) mod tidy
clean:
rm -rf bin/ .data/
docker:
docker build --build-arg VERSION=$(VERSION) -t nip05api:$(VERSION) -t nip05api:latest .
# Install onto a Linux host running systemd. Run as root.
# Assumes the binary has already been built into ./bin/nip05api.
install-systemd:
id nip05 >/dev/null 2>&1 || useradd -r -s /usr/sbin/nologin -d /opt/nip05api nip05
install -d -m 0755 -o nip05 -g nip05 /opt/nip05api/.data
install -d -m 0755 -o nip05 -g nip05 /opt/nip05api/bin
install -m 0755 -o nip05 -g nip05 bin/nip05api /opt/nip05api/bin/nip05api
install -m 0644 -o nip05 -g nip05 messages.example.yaml /opt/nip05api/messages.yaml
install -m 0644 -o root -g root deploy/nip05api.service /etc/systemd/system/nip05api.service
systemctl daemon-reload
@echo "Installed. Now: copy your .env to /opt/nip05api/.env, then 'systemctl enable --now nip05api'."