diff --git a/README.md b/README.md index d7f78fb..fab7023 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,57 @@ This repository uses the Go standard layout described at https://github.com/gola https://github.com/gorcon/rcon is used to connect to the RCON. The system expects the user provide a RCON_ADDRESS, and RCON_PASSWORD environment flag. +## Usage + +### Environment Variables + +The mcgod application requires the following environment variables to be set: + +- `RCON_ADDRESS` - The address of the Minecraft server's RCON (e.g., "localhost:25575") +- `RCON_PASSWORD` - The password for RCON access +- `RCON_DEPLOYMENT` - Kubernetes deployment name for log monitoring (optional) +- `RCON_NAMESPACE` - Kubernetes namespace for log monitoring (optional) +- `RCON_POD` - Kubernetes pod name for log monitoring (optional) +- `RCON_CONTAINER` - Kubernetes container name for log monitoring (optional) + +### Running Locally + +To build and run locally: +```bash +make build +RCON_ADDRESS="localhost:25575" RCON_PASSWORD="your_rcon_password" ./mcgod +``` + +### Running with Docker + +To build and run with Docker: +```bash +make build-docker-local +docker run --rm -it \ + -e RCON_ADDRESS="localhost:25575" \ + -e RCON_PASSWORD="your_rcon_password" \ + docker.tipsy.codes/mcgod:latest +``` + +## Building + +### Local Build +```bash +make build +``` + +### Cross-platform Build +```bash +make build-amd64 # Build for AMD64 +make build-arm64 # Build for ARM64 +``` + +### Docker Build +```bash +make build-docker # Build multi-architecture Docker image +make build-docker-local # Build Docker image for current architecture +``` + # Handling updates Use `go mod tidy` to update go.mod; do not directly modify it. @@ -22,4 +73,4 @@ Use `go mod tidy` to update go.mod; do not directly modify it. ## Only capture environment/flags in main -To make testing easier, all utility packages should accept arguments that they need. These arguments sometimes get provided by the user, via flags or environment variables. Such variables should generally only be captured in the top-level package (i.e., main), and not helpers. +To make testing easier, all utility packages should accept arguments that they need. These arguments sometimes get provided by the user, via flags or environment variables. Such variables should generally only be captured in the top-level package (i.e., main), and not helpers. \ No newline at end of file