Makefile 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. ################################################################################
  2. # Build & release helpers
  3. ################################################################################
  4. DOCKER_IMAGE_TAG_GO_RELEASER := goreleaser/goreleaser:v2.9.0
  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/retro-aim-server \
  10. --workdir /go/src/retro-aim-server \
  11. $(DOCKER_IMAGE_TAG_GO_RELEASER)
  12. OSCAR_HOST ?= ras.dev
  13. .PHONY: config
  14. config: ## Generate config file template from Config struct
  15. go generate ./config
  16. .PHONY: release
  17. release: ## Run a clean, full GoReleaser run (publish + validate)
  18. $(DOCKER_RUN_GO_RELEASER) --clean
  19. .PHONY: release-dry-run
  20. release-dry-run: ## GoReleaser dry-run (skips validate & publish)
  21. $(DOCKER_RUN_GO_RELEASER) --clean --skip=validate --skip=publish
  22. .PHONY: docker-image-ras
  23. docker-image-ras: ## Build Retro AIM Server image
  24. docker build -t ras:latest -f Dockerfile .
  25. .PHONY: docker-image-stunnel
  26. docker-image-stunnel: ## Build stunnel image pinned to v5.75 / OpenSSL 1.0.2u
  27. docker build -t ras-stunnel:5.75-openssl-1.0.2u -f Dockerfile.stunnel .
  28. .PHONY: docker-image-certgen
  29. docker-image-certgen: ## Build minimal helper image with openssl & nss tools
  30. docker build -t ras-certgen:latest -f Dockerfile.certgen .
  31. .PHONY: docker-images
  32. docker-images: docker-image-ras docker-image-stunnel docker-image-certgen
  33. .PHONY: docker-run
  34. docker-run:
  35. OSCAR_HOST=$(OSCAR_HOST) docker compose up -d retro-aim-server stunnel
  36. ################################################################################
  37. # SSL Helpers
  38. ################################################################################
  39. .PHONY: docker-cert
  40. docker-cert: clean-certs ## Create SSL certificates for server
  41. mkdir -p certs/
  42. OSCAR_HOST=$(OSCAR_HOST) docker compose run --no-TTY --rm cert-gen
  43. .PHONY: docker-nss
  44. docker-nss: ## Create NSS certificate database for AIM 6.x clients
  45. OSCAR_HOST=$(OSCAR_HOST) docker compose run --no-TTY --rm nss-gen
  46. .PHONY: clean-certs
  47. clean-certs: ## Remove all generated certificates & NSS DB
  48. rm -rf certs/*