Compare commits
29 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| ecc253d055 | |||
| 1697bb7032 | |||
| ce57d9afca | |||
| 8e6fc93f3b | |||
| 60c4770404 | |||
| 2b7d6eb788 | |||
| f56f8e5487 | |||
| 69ec5f18a6 | |||
| be361a6e76 | |||
| c93ee24641 | |||
| ebe4e34047 | |||
| 2551f8748d | |||
| 7b7733d202 | |||
| 0d4181fd9a | |||
| cb387e8d12 | |||
| 79fdbc4687 | |||
| 5fabd035c2 | |||
| 3e7cc11e08 | |||
| 58f7fb11a3 | |||
| 3f62661ed7 | |||
| b271c15267 | |||
| 3a3d46119a | |||
| 0b16218ce9 | |||
| 248c33ed80 | |||
| 933fa8f257 | |||
| 883ef20ced | |||
| ed4397b21b | |||
| da188ea290 | |||
| 42a50037ab |
@@ -0,0 +1 @@
|
|||||||
|
buy_me_a_coffee: adsbit
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
version: 2
|
||||||
|
updates:
|
||||||
|
# Keep GitHub Actions pinned versions current.
|
||||||
|
- package-ecosystem: github-actions
|
||||||
|
directory: "/"
|
||||||
|
schedule:
|
||||||
|
interval: weekly
|
||||||
|
commit-message:
|
||||||
|
prefix: "ci"
|
||||||
|
|
||||||
|
# Keep Python dependencies current.
|
||||||
|
- package-ecosystem: pip
|
||||||
|
directory: "/"
|
||||||
|
schedule:
|
||||||
|
interval: weekly
|
||||||
|
commit-message:
|
||||||
|
prefix: "deps"
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
name: CodeQL
|
||||||
|
|
||||||
|
# Static security analysis (free for public repositories). Scans the Python
|
||||||
|
# backend and the vanilla-JS frontend on pushes, PRs, and weekly.
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [main]
|
||||||
|
pull_request:
|
||||||
|
branches: [main]
|
||||||
|
schedule:
|
||||||
|
- cron: "23 5 * * 1"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
analyze:
|
||||||
|
name: Analyze (${{ matrix.language }})
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
security-events: write
|
||||||
|
contents: read
|
||||||
|
actions: read
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
language: [python, javascript]
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: Initialize CodeQL
|
||||||
|
uses: github/codeql-action/init@v3
|
||||||
|
with:
|
||||||
|
languages: ${{ matrix.language }}
|
||||||
|
- name: Analyze
|
||||||
|
uses: github/codeql-action/analyze@v3
|
||||||
|
with:
|
||||||
|
category: "/language:${{ matrix.language }}"
|
||||||
@@ -7,6 +7,12 @@ name: Release
|
|||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
tags: ["v*"]
|
tags: ["v*"]
|
||||||
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
version:
|
||||||
|
description: "Image tag to publish (e.g. 1.1.2); leave blank for just :latest"
|
||||||
|
required: false
|
||||||
|
default: ""
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
@@ -40,6 +46,7 @@ jobs:
|
|||||||
tags: |
|
tags: |
|
||||||
type=semver,pattern={{version}}
|
type=semver,pattern={{version}}
|
||||||
type=semver,pattern={{major}}.{{minor}}
|
type=semver,pattern={{major}}.{{minor}}
|
||||||
|
type=raw,value=${{ inputs.version }},enable=${{ github.event_name == 'workflow_dispatch' && inputs.version != '' }}
|
||||||
type=raw,value=latest
|
type=raw,value=latest
|
||||||
|
|
||||||
- name: Build and push
|
- name: Build and push
|
||||||
|
|||||||
+3
-2
@@ -17,8 +17,9 @@ __pycache__/
|
|||||||
.claude/
|
.claude/
|
||||||
CLAUDE.md
|
CLAUDE.md
|
||||||
|
|
||||||
# Gitea token
|
# Local secrets / tokens
|
||||||
.gitea-token
|
*.token
|
||||||
|
.git-credentials
|
||||||
|
|
||||||
# OS
|
# OS
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
# Pre-commit hooks for ADS-Bit.
|
||||||
|
#
|
||||||
|
# Setup (once):
|
||||||
|
# pip install pre-commit
|
||||||
|
# pre-commit install
|
||||||
|
#
|
||||||
|
# Thereafter gitleaks scans every commit for secrets (tokens, keys,
|
||||||
|
# password hashes) before they can reach gitea or the public GitHub mirror.
|
||||||
|
# Run manually across the whole tree with: pre-commit run --all-files
|
||||||
|
repos:
|
||||||
|
- repo: https://github.com/gitleaks/gitleaks
|
||||||
|
rev: v8.18.4
|
||||||
|
hooks:
|
||||||
|
- id: gitleaks
|
||||||
+16
-3
@@ -4,6 +4,18 @@ All notable changes to this project are documented here. The format is based
|
|||||||
on [Keep a Changelog](https://keepachangelog.com/), and this project adheres to
|
on [Keep a Changelog](https://keepachangelog.com/), and this project adheres to
|
||||||
[Semantic Versioning](https://semver.org/).
|
[Semantic Versioning](https://semver.org/).
|
||||||
|
|
||||||
|
## [1.1.2] - 2026-06-10
|
||||||
|
|
||||||
|
First release with a published container image and security tooling. No
|
||||||
|
application behavior changes from 1.1.1.
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- Prebuilt multi-arch (amd64 + arm64) container image published to GitHub
|
||||||
|
Container Registry: `ghcr.io/allennpit/ads-bit`.
|
||||||
|
- CodeQL code-scanning workflow (Python + JavaScript) and Dependabot updates
|
||||||
|
for GitHub Actions and pip.
|
||||||
|
- `workflow_dispatch` trigger on the release workflow for manual image builds.
|
||||||
|
|
||||||
## [1.1.1] - 2026-06-10
|
## [1.1.1] - 2026-06-10
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
@@ -43,6 +55,7 @@ on [Keep a Changelog](https://keepachangelog.com/), and this project adheres to
|
|||||||
pixel-art sprites, directional backgrounds, weather, sun/moon, admin panel,
|
pixel-art sprites, directional backgrounds, weather, sun/moon, admin panel,
|
||||||
first-run setup wizard, and Docker/Podman support.
|
first-run setup wizard, and Docker/Podman support.
|
||||||
|
|
||||||
[1.1.1]: https://github.com/OWNER/ADS-Bit/releases/tag/v1.1.1
|
[1.1.2]: https://github.com/AllenNPIT/ADS-Bit/releases/tag/v1.1.2
|
||||||
[1.1.0]: https://github.com/OWNER/ADS-Bit/releases/tag/v1.1.0
|
[1.1.1]: https://github.com/AllenNPIT/ADS-Bit/releases/tag/v1.1.1
|
||||||
[1.0]: https://github.com/OWNER/ADS-Bit/releases/tag/v1.0
|
[1.1.0]: https://github.com/AllenNPIT/ADS-Bit/releases/tag/v1.1.0
|
||||||
|
[1.0]: https://github.com/AllenNPIT/ADS-Bit/releases/tag/v1.0
|
||||||
|
|||||||
@@ -1,14 +1,24 @@
|
|||||||
# ADS-Bit
|
# ADS-Bit
|
||||||
|
|
||||||
[](LICENSE)
|
[](LICENSE)
|
||||||
[](https://github.com/OWNER/ADS-Bit/releases)
|
[](https://github.com/AllenNPIT/ADS-Bit/releases)
|
||||||
[](https://github.com/OWNER/ADS-Bit/actions/workflows/ci.yml)
|
[](https://github.com/AllenNPIT/ADS-Bit/actions/workflows/ci.yml)
|
||||||
|
|
||||||
> **Setup note:** replace `OWNER` with your GitHub username/org throughout this README (badges and image names) after creating the repository.
|
|
||||||
|
|
||||||
A retro SNES-style side-view flight tracker that displays ADS-B aircraft data with custom pixel art sprites.
|
A retro SNES-style side-view flight tracker that displays ADS-B aircraft data with custom pixel art sprites.
|
||||||
|
|
||||||

|
## Screenshots
|
||||||
|
|
||||||
|
### Live viewer
|
||||||
|
|
||||||
|
Real-time ADS-B traffic rendered as pixel-art sprites over a directional background — here the East view, with a desert skyline on the horizon. Aircraft are labelled with callsign, altitude, and distance, and listed in the sidebar sorted by range.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
### In-app pixel editor
|
||||||
|
|
||||||
|
Draw and edit aircraft sprites directly in the browser: pencil, eraser, line/rectangle/ellipse shapes, fill bucket, select & move, zoom/pan, undo/redo, custom palettes, and an adjustable reference overlay. Saving uploads the sprite back to the running tracker — no external tools needed.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
@@ -29,7 +39,7 @@ A retro SNES-style side-view flight tracker that displays ADS-B aircraft data wi
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Clone the repository
|
# Clone the repository
|
||||||
git clone https://gitea.chops.one/allen/ADS-Bit.git
|
git clone https://github.com/AllenNPIT/ADS-Bit.git
|
||||||
cd ADS-Bit
|
cd ADS-Bit
|
||||||
|
|
||||||
# Install dependencies
|
# Install dependencies
|
||||||
@@ -56,7 +66,7 @@ is available from GitHub Container Registry:
|
|||||||
docker run -d --name ads-bit --network host --restart unless-stopped \
|
docker run -d --name ads-bit --network host --restart unless-stopped \
|
||||||
-e ADSBIT_CONFIG=/app/data/config.json \
|
-e ADSBIT_CONFIG=/app/data/config.json \
|
||||||
-v "$PWD/data:/app/data" \
|
-v "$PWD/data:/app/data" \
|
||||||
ghcr.io/OWNER/ads-bit:latest
|
ghcr.io/allennpit/ads-bit:latest
|
||||||
```
|
```
|
||||||
|
|
||||||
Then open http://localhost:2001 and complete the setup wizard.
|
Then open http://localhost:2001 and complete the setup wizard.
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 899 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 304 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 264 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 904 KiB |
@@ -17,7 +17,7 @@ from aiohttp import web, ClientSession, ClientTimeout
|
|||||||
import netifaces
|
import netifaces
|
||||||
import bcrypt
|
import bcrypt
|
||||||
|
|
||||||
VERSION = "1.1.1"
|
VERSION = "1.1.2"
|
||||||
|
|
||||||
WEB_DIR = Path(__file__).parent
|
WEB_DIR = Path(__file__).parent
|
||||||
# Config path is overridable (handy for containers persisting config on a
|
# Config path is overridable (handy for containers persisting config on a
|
||||||
|
|||||||
Reference in New Issue
Block a user