- Binary output changed from 'receiptnext' to 'app' - Release assets renamed to app-linux-amd64 / app-linux-arm64 - install.sh, Makefile, README.md updated to reference 'app' - contrib/receiptnext.service uses /opt/receiptnext/app - Systemd service updated to ExecStart=/opt/receiptnext/app
85 lines
2.3 KiB
Makefile
85 lines
2.3 KiB
Makefile
# ReceiptNext — AI-Powered Expense Tracker
|
|
# Makefile for build, install, and deployment
|
|
|
|
BINARY = app
|
|
OUTDIR = dist
|
|
VERSION = v1.0.0
|
|
LDFLAGS = -s -w
|
|
|
|
.PHONY: all build clean install uninstall run stop restart logs
|
|
|
|
all: build
|
|
|
|
# -------------------------------------------------------------------
|
|
# Build
|
|
# -------------------------------------------------------------------
|
|
|
|
build:
|
|
go build -ldflags="$(LDFLAGS)" -o $(BINARY) .
|
|
|
|
build-linux-amd64:
|
|
GOOS=linux GOARCH=amd64 go build -ldflags="$(LDFLAGS)" -o $(OUTDIR)/$(BINARY)-linux-amd64 .
|
|
|
|
build-linux-arm64:
|
|
GOOS=linux GOARCH=arm64 CGO_ENABLED=1 CC=aarch64-linux-gnu-gcc go build -ldflags="$(LDFLAGS)" -o $(OUTDIR)/$(BINARY)-linux-arm64 .
|
|
|
|
build-all: build-linux-amd64 build-linux-arm64
|
|
|
|
# -------------------------------------------------------------------
|
|
# Install (systemd service)
|
|
# -------------------------------------------------------------------
|
|
|
|
install: build
|
|
@echo "==> Installing ReceiptNext..."
|
|
cp $(BINARY) /usr/local/bin/$(BINARY)
|
|
@if [ ! -f /etc/$(BINARY)/.env ]; then \
|
|
mkdir -p /etc/$(BINARY); \
|
|
cp .env.example /etc/$(BINARY)/.env; \
|
|
echo "==> Created /etc/$(BINARY)/.env — edit it with your credentials"; \
|
|
fi
|
|
@if [ ! -f /etc/systemd/system/$(BINARY).service ]; then \
|
|
cp contrib/$(BINARY).service /etc/systemd/system/; \
|
|
systemctl daemon-reload; \
|
|
systemctl enable $(BINARY); \
|
|
echo "==> Systemd service installed"; \
|
|
fi
|
|
@echo "==> Run 'systemctl start $(BINARY)' to start"
|
|
@echo "==> Run 'systemctl status $(BINARY)' to check status"
|
|
|
|
uninstall:
|
|
-systemctl stop $(BINARY) 2>/dev/null
|
|
-systemctl disable $(BINARY) 2>/dev/null
|
|
-rm -f /etc/systemd/system/$(BINARY).service
|
|
-systemctl daemon-reload
|
|
-rm -f /usr/local/bin/$(BINARY)
|
|
@echo "==> ReceiptNext uninstalled"
|
|
|
|
# -------------------------------------------------------------------
|
|
# Service management
|
|
# -------------------------------------------------------------------
|
|
|
|
run:
|
|
./$(BINARY)
|
|
|
|
start:
|
|
systemctl start $(BINARY)
|
|
|
|
stop:
|
|
systemctl stop $(BINARY)
|
|
|
|
restart:
|
|
systemctl restart $(BINARY)
|
|
|
|
logs:
|
|
journalctl -u $(BINARY) -f
|
|
|
|
status:
|
|
systemctl status $(BINARY)
|
|
|
|
# -------------------------------------------------------------------
|
|
# Clean
|
|
# -------------------------------------------------------------------
|
|
|
|
clean:
|
|
rm -f $(BINARY)
|
|
rm -rf $(OUTDIR)
|