YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
π main Branch β Live Deployment
Project: BAT_Master β main
HuggingFace Repo: https://huggingface.co/HawkEyesAI/BAT_Master
βοΈ Full Deployment Command
sudo apt update && sudo apt upgrade -y \
&& sudo apt-get install -y iproute2 libgl1 nano wget unzip nvtop git git-lfs \
&& git config --global credential.helper store \
&& git clone -b main https://huggingface.co/HawkEyesAI/BAT_Master \
&& cd BAT_Master \
&& chmod +x deploy.sh \
&& ./deploy.sh \
&& sleep 10 \
&& python test.py
π Redeploy Script
chmod +x reDeploy.sh && ./reDeploy.sh && sleep 10 && python test.py
π§ͺ Run API
cd BAT_Master && python BAT_API.py
β‘ Run with Hypercorn
hypercorn BAT_API:app --bind 127.0.0.1:8679 --workers 2
π Expose via ngrok
ngrok http --domain=hasb.nagadpulse.com 8679
π³ Run with Docker
An alternative to the bare-metal deploy.sh flow above β builds the same
FastAPI service into a container instead of installing dependencies
directly on the host. See Dockerfile and
docker-compose.yml for the full setup.
One-time setup
git lfs pull # pulls projectBAT/AI_Models/*.pt (~3GB) β mounted into the container, not baked into the image
cp .env.example .env # optional: override PORT / PUID / PGID / MEMORY_LIMIT
Build and run β auto-detects GPU vs CPU
./scripts/docker-run.sh up -d --build
scripts/docker-run.sh checks for an NVIDIA GPU +
NVIDIA Container Toolkit on this host and layers docker-compose.gpu.yml on
automatically when both are present, otherwise it runs the CPU-only
docker-compose.yml as-is β no flag to remember either way. It's a plain
passthrough to docker compose, so every subcommand below works the same
way through it (./scripts/docker-run.sh logs -f, ./scripts/docker-run.sh down, etc.). To pick explicitly instead:
docker compose up -d --build # force CPU
docker compose -f docker-compose.yml -f docker-compose.gpu.yml up -d --build # force GPU
Check it's alive
curl http://localhost:8679/BAT-Main/Status/
Logs
./scripts/docker-run.sh logs -f
Stop
./scripts/docker-run.sh down
Test the Docker setup itself
bash scripts/lint-docker.sh # Dockerfile + compose file lint (hadolint + compose config)
bash scripts/docker-smoke-test.sh # build, start, wait for healthy, tear down
Publish to Docker Hub
export IMAGE_NAME=<your-dockerhub-username>/bat-master
export IMAGE_TAG=1.0.0
docker login
docker compose build
docker compose push
docker compose build bakes the application source into the image (COPY . .
in the Dockerfile) β since this is proprietary HawkEyes AI code, push to a
private Docker Hub repository, not a public one. projectBAT/AI_Models/
(git-lfs weights) is excluded from the image via .dockerignore and stays a
volume mount β anyone pulling the image separately needs their own
git lfs pull of this repo alongside it.
π Citation
@misc{hawkeyes_digital_monitoring_ltd_2025,
author = { HawkEyes Digital Monitoring Ltd },
title = { BAT_Master (Revision c83273f) },
year = 2025,
url = { https://huggingface.co/HawkEyesAI/BAT_Master },
doi = { 10.57967/hf/7062 },
publisher = { Hugging Face }
}