Makefile 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. ################################################################################
  2. # Build & release helpers
  3. ################################################################################
  4. DOCKER_IMAGE_TAG_GO_RELEASER := goreleaser/goreleaser:v2.13.1
  5. DOCKER_RUN_GO_RELEASER := @docker run \
  6. --env CGO_ENABLED=0 \
  7. --env GITHUB_TOKEN=$(GITHUB_TOKEN) \
  8. --rm \
  9. --volume `pwd`:/go/src/open-oscar-server \
  10. --workdir /go/src/open-oscar-server \
  11. $(DOCKER_IMAGE_TAG_GO_RELEASER)
  12. OSCAR_HOST ?= ras.dev
  13. .PHONY: config-basic config-ssl config
  14. config-basic: ## Generate basic config file template
  15. go run ./cmd/config_generator unix config/settings.env basic
  16. config-ssl: ## Generate SSL config file template
  17. go run ./cmd/config_generator unix config/ssl/settings.env ssl
  18. config: config-basic config-ssl ## Generate all config file templates from Config struct
  19. .PHONY: release
  20. release: ## Run a clean, full GoReleaser run (publish + validate)
  21. $(DOCKER_RUN_GO_RELEASER) --clean
  22. .PHONY: release-dry-run
  23. release-dry-run: ## GoReleaser dry-run (skips validate & publish)
  24. $(DOCKER_RUN_GO_RELEASER) --clean --skip=validate --skip=publish
  25. .PHONY: docker-image-ras
  26. docker-image-ras: ## Build Open OSCAR Server image
  27. docker build -t ras:latest -f Dockerfile .
  28. .PHONY: docker-image-stunnel
  29. docker-image-stunnel: ## Build stunnel image pinned to v5.75 / OpenSSL 1.0.2u
  30. docker build -t ras-stunnel:5.75-openssl-1.0.2u -f Dockerfile.stunnel .
  31. .PHONY: docker-image-certgen
  32. docker-image-certgen: ## Build minimal helper image with openssl & nss tools
  33. docker build -t ras-certgen:latest -f Dockerfile.certgen .
  34. .PHONY: docker-images
  35. docker-images: docker-image-ras docker-image-stunnel docker-image-certgen
  36. .PHONY: docker-run
  37. docker-run:
  38. OSCAR_HOST=$(OSCAR_HOST) docker compose up open-oscar-server stunnel
  39. .PHONY: docker-run-bg
  40. docker-run-bg: ## Run Open OSCAR Server in background with docker-compose
  41. OSCAR_HOST=$(OSCAR_HOST) docker compose up -d open-oscar-server stunnel
  42. .PHONY: docker-run-stop
  43. docker-run-stop: ## Stop Open OSCAR Server docker-compose services
  44. OSCAR_HOST=$(OSCAR_HOST) docker compose down
  45. ################################################################################
  46. # SSL Helpers
  47. ################################################################################
  48. .PHONY: docker-cert
  49. docker-cert: clean-certs ## Create SSL certificates for server
  50. mkdir -p certs/
  51. OSCAR_HOST=$(OSCAR_HOST) docker compose run --no-TTY --rm cert-gen
  52. .PHONY: docker-nss
  53. docker-nss: ## Create NSS certificate database for AIM 6.x clients
  54. OSCAR_HOST=$(OSCAR_HOST) docker compose run --no-TTY --rm nss-gen
  55. .PHONY: clean-certs
  56. clean-certs: ## Remove all generated certificates & NSS DB
  57. rm -rf certs/*
  58. ################################################################################
  59. # Web API Tools
  60. ################################################################################
  61. .PHONY: webapi-keygen
  62. webapi-keygen: ## Build the Web API key generator tool
  63. go build -o webapi_keygen ./cmd/webapi_keygen
  64. .PHONY: webapi-keygen-install
  65. webapi-keygen-install: ## Install the Web API key generator tool system-wide
  66. go install ./cmd/webapi_keygen