Sign inSign up

monzal/swgoh-tracker

By monzal

•Updated 12 months ago

Optimized SWGOH Fleet & Arena Tracker for Discord - Raspberry Pi ARM64, Alpine ARM64, 161MB

Image
API management
Internet of things
Monitoring & observability
0

2.1K

monzal/swgoh-tracker repository overview

⁠SWGOH Fleet & Arena Tracker (Optimized)

Optimized Docker image for tracking Star Wars: Galaxy of Heroes fleet and arena rankings with Discord notifications.

⁠Features

  • ✅ Alpine Linux based - Only 161 MB compressed image
  • ✅ ARM64 native - Raspberry Pi 4/5, Apple Silicon, AWS Graviton compatible
  • ✅ .NET 5.0 Runtime - Latest stable runtime
  • ✅ Discord webhook integration - Real-time notifications
  • ✅ Automatic rank tracking - Monitor fleet and arena positions
  • ✅ Security hardened - Non-root user, minimal attack surface

⁠Quick Start

⁠Fleet Tracking
docker pull monzal/swgoh-tracker:latest

docker run -d --name fleet_member --restart always \
  -e DISCORD_WEB_HOOK="https://discord.com/api/webhooks/YOUR_WEBHOOK" \
  -e ARENA_TYPE=FLEET \
  -e ALLY_CODES_URL="https://gist.githubusercontent.com/YOUR_GIST/raw/" \
  -e CUSTOM_MESSAGE_STATUS="[%PLAYER_NAME%] is at %CURRENT_RANK%" \
  -e DISABLE_STATUS_MESSAGE=FALSE \
  -e TAG_ON_DROP_PO_LIMIT=1440 \
  monzal/swgoh-tracker:latest
⁠Arena Tracking
docker run -d --name arena_member --restart always \
  -e DISCORD_WEB_HOOK="https://discord.com/api/webhooks/YOUR_WEBHOOK" \
  -e ARENA_TYPE=ARENA \
  -e ALLY_CODES_URL="https://gist.githubusercontent.com/YOUR_GIST/raw/" \
  -e CUSTOM_MESSAGE_STATUS="[%PLAYER_NAME%] is at %CURRENT_RANK%" \
  -e DISABLE_STATUS_MESSAGE=FALSE \
  -e TAG_ON_DROP_PO_LIMIT=1440 \
  monzal/swgoh-tracker:latest

⁠Available Tags

TagDescription
latestLatest stable release (recommended)
optimizedSame as latest, explicitly optimized
alpine-arm64Alpine Linux + ARM64
piRaspberry Pi optimized

All tags point to the same optimized ARM64 image.

⁠Environment Variables

⁠Required
VariableDescriptionExample
DISCORD_WEB_HOOKDiscord webhook URLhttps://discord.com/api/webhooks/...
ARENA_TYPEType of arena to trackARENA or FLEET
ALLY_CODES_URLURL to ally codes JSONhttps://gist.githubusercontent.com/.../raw/
⁠Optional
VariableDescriptionDefault
CUSTOM_MESSAGE_STATUSStatus message format[%PLAYER_NAME%] is at %CURRENT_RANK%
CUSTOM_MESSAGE_CLIMBRank climb message format[%PLAYER_NAME%] %PREVIOUS_RANK% → %CURRENT_RANK%
CUSTOM_MESSAGE_DROPRank drop message format[%PLAYER_NAME%] %CURRENT_RANK% ← %PREVIOUS_RANK%
DISABLE_STATUS_MESSAGEDisable status updatesFALSE
TAG_ON_DROP_PO_LIMITTime limit for notifications (minutes)1440
TAG_ON_CLIMB_RANK_LIMITRank limit for climb notifications1000
TAG_ON_DROP_RANK_LIMITRank limit for drop notifications0
⁠Message Format Variables

You can use these placeholders in custom messages:

  • %PLAYER_NAME% - Player name
  • %ALLY_CODE% - Ally code
  • %CURRENT_RANK% - Current rank position
  • %PREVIOUS_RANK% - Previous rank position
  • %TIME_TO_PO% - Time until payout
  • %USER_ICON% - Discord user icon
  • %TAG_ON_CLIMB% - Tag when climbing
  • %TAG_ON_DROP% - Tag when dropping

⁠Docker Compose Example

version: '3.8'

services:
  arena_tracker:
    image: monzal/swgoh-tracker:latest
    container_name: arena_member
    restart: always
    environment:
      - DISCORD_WEB_HOOK=https://discord.com/api/webhooks/YOUR_WEBHOOK
      - ARENA_TYPE=ARENA
      - ALLY_CODES_URL=https://gist.githubusercontent.com/YOUR_GIST/raw/
      - CUSTOM_MESSAGE_STATUS=%USER_ICON% [%PLAYER_NAME%](<https://swgoh.gg/p/%ALLY_CODE%/>) is at %CURRENT_RANK%
      - DISABLE_STATUS_MESSAGE=FALSE
      - TAG_ON_DROP_PO_LIMIT=1440

  fleet_tracker:
    image: monzal/swgoh-tracker:latest
    container_name: fleet_member
    restart: always
    environment:
      - DISCORD_WEB_HOOK=https://discord.com/api/webhooks/YOUR_WEBHOOK
      - ARENA_TYPE=FLEET
      - ALLY_CODES_URL=https://gist.githubusercontent.com/YOUR_GIST/raw/
      - DISABLE_STATUS_MESSAGE=FALSE

⁠Supported Architectures

  • ARM64 - Raspberry Pi 4/5, Apple Silicon (M1/M2/M3), AWS Graviton, Oracle Cloud Ampere
  • Tested on: Raspberry Pi 4 Model B (ARM64)

⁠Image Details

  • Base Image: Alpine Linux 3.15 (security updates applied)
  • Runtime: .NET 5.0 ASP.NET Core Runtime
  • Architecture: ARM64 native
  • Size: 161 MB (compressed)
  • User: Non-root (appuser:1000)
  • Security: Minimal dependencies, no unnecessary packages

⁠Performance

  • Memory Usage: ~50-100 MB per container
  • CPU Usage: Minimal (<1% idle)
  • Startup Time: ~2-3 seconds
  • Recommended: Can run 5+ trackers on Raspberry Pi 4 (4GB)

⁠Credits

Optimized version of robpurcell/swgoh-fleet-tracker⁠

⁠Optimizations
  • Migrated to Alpine Linux for smaller footprint
  • Updated system packages and security patches
  • Implemented non-root user
  • Multi-stage build for minimal footprint
  • ARM64 native build

⁠Support

  • Issues: Report on GitHub or Docker Hub
  • Original Project: Check robpurcell's repository
  • Community: SWGOH Discord servers

⁠License

Same license as the original project.

⁠Changelog

⁠v1.0 - Optimized Release
  • Initial optimized release
  • Alpine Linux base
  • ARM64 native support
  • Security hardening
  • Compact 161 MB image

Tag summary

Content type

Image

Digest

sha256:6c68cfd06…

Size

59.8 MB

Last updated

12 months ago

docker pull monzal/swgoh-tracker