first commit
This commit is contained in:
76
Makefile
Normal file
76
Makefile
Normal file
@@ -0,0 +1,76 @@
|
||||
BINARY = website
|
||||
MODULE = ridgwaysystems.org/website
|
||||
CMD = ./cmd/server
|
||||
|
||||
# Default target
|
||||
.PHONY: build
|
||||
build:
|
||||
go build -o $(BINARY) $(CMD)
|
||||
|
||||
# Run locally in dev mode (template hot-reloading)
|
||||
.PHONY: run
|
||||
run:
|
||||
DEV=1 PORT=8080 go run $(CMD)
|
||||
|
||||
# Run with a .env file
|
||||
.PHONY: run-env
|
||||
run-env:
|
||||
@test -f .env || (echo "No .env file found. Copy .env.example and fill it in." && exit 1)
|
||||
env $$(cat .env | grep -v '^\#' | xargs) go run $(CMD)
|
||||
|
||||
# Cross-compile for OpenBSD amd64
|
||||
.PHONY: cross
|
||||
cross:
|
||||
GOOS=openbsd GOARCH=amd64 go build -ldflags="-s -w" -o $(BINARY)-openbsd-amd64 $(CMD)
|
||||
|
||||
# Generate an admin password hash
|
||||
.PHONY: genhash
|
||||
genhash:
|
||||
@read -p "Password: " pw && go run ./tools/genhash "$$pw"
|
||||
|
||||
# Download / tidy dependencies
|
||||
.PHONY: tidy
|
||||
tidy:
|
||||
go mod tidy
|
||||
|
||||
# Vet and lint
|
||||
.PHONY: vet
|
||||
vet:
|
||||
go vet ./...
|
||||
|
||||
# Run tests (when there are any)
|
||||
.PHONY: test
|
||||
test:
|
||||
go test ./...
|
||||
|
||||
# Clean build artifacts
|
||||
.PHONY: clean
|
||||
clean:
|
||||
rm -f $(BINARY) $(BINARY)-openbsd-amd64
|
||||
rm -f static/css/syntax.css
|
||||
|
||||
# Upload static files and binary to OpenBSD server
|
||||
# Set DEPLOY_HOST to your server (e.g. srv01 or user@10.0.10.10)
|
||||
DEPLOY_HOST ?= srv01
|
||||
DEPLOY_DIR ?= /var/www/ridgwaysystems
|
||||
|
||||
.PHONY: deploy
|
||||
deploy: cross
|
||||
scp $(BINARY)-openbsd-amd64 $(DEPLOY_HOST):/usr/local/bin/$(BINARY)
|
||||
rsync -av --delete templates/ $(DEPLOY_HOST):$(DEPLOY_DIR)/templates/
|
||||
rsync -av --delete static/ $(DEPLOY_HOST):$(DEPLOY_DIR)/static/
|
||||
rsync -av content/ $(DEPLOY_HOST):$(DEPLOY_DIR)/content/
|
||||
ssh $(DEPLOY_HOST) rcctl restart $(BINARY)
|
||||
|
||||
.PHONY: help
|
||||
help:
|
||||
@echo "Targets:"
|
||||
@echo " build Build binary for current OS"
|
||||
@echo " run Run locally in dev mode"
|
||||
@echo " run-env Run with .env file"
|
||||
@echo " cross Cross-compile for OpenBSD amd64"
|
||||
@echo " genhash Generate bcrypt hash for admin password"
|
||||
@echo " tidy go mod tidy"
|
||||
@echo " vet go vet"
|
||||
@echo " deploy Cross-compile and deploy to OpenBSD server"
|
||||
@echo " clean Remove build artifacts"
|
||||
Reference in New Issue
Block a user