A high performance Go WebSocket server for Metrolist's "Listen Together" feature.
Utilizes protobuf and gzip compression for fast and efficient communication between clients.
You need to install go, protobuf, and protoc-gen-go
git clone https://github.com/MetrolistGroup/metroserver cd metroserver # Generate protobuf files (required first time) chmod +x generate_proto.sh ./generate_proto.sh # Download dependencies go mod download # Build the server go build -o main . # Run on default port 8080 ./main # Run on custom port PORT=9000 ./main# Clone the repository git clone https://github.com/MetrolistGroup/metroserver cd metroserver # Build locally docker build -t MetrolistGroup:latest . # Run on port 8080 docker run -d \ -p 8080:8080 \ -e PORT=8080 \ --name metroserver \ metroserver:latest # Run on custom port docker run -d \ -p 9000:9000 \ -e PORT=9000 \ --name metroserver \ metroserver:latest--- services: metroserver: image: ghcr.io/MetrolistGroup/metroserver:latest ports: - "8080:8080" environment: - PORT=8080 healthcheck: test: [ "CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8080/health", ] interval: 30s timeout: 3s retries: 3 start_period: 5s restart: unless-stopped