8 Commits

Author SHA1 Message Date
root 72b4d1393e Re-add viewer screenshot (receiver IP and location masked)
CI / Python checks (push) Has been cancelled
CI / Docker build (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
Re-added after history scrub. This capture shows neither the receiver
IP nor the location name (status bar reads "CONNECTED" / "ADS-Bit").

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 01:10:59 -07:00
root d649593239 Scrub location/IP from public assets; add gitleaks pre-commit hook
- README: replace real lat/lon in the config example with 0.0/0.0 and
  drop the city name from the screenshot caption
- viewer screenshot: re-captured with the receiver IP masked
- add .pre-commit-config.yaml running gitleaks to block secrets from
  reaching gitea or the public GitHub mirror

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 14:22:12 -07:00
root acce31ed3a Replace gitea references with GitHub
Point the Quick Start clone command at the GitHub repo and drop the
obsolete .gitea-token ignore rule in favour of a generic secrets pattern.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 13:35:45 -07:00
AllenNPIT 47320b24d1 Create FUNDING.yml 2026-06-15 13:31:04 -07:00
root 07df375d00 Add viewer + pixel editor screenshots and Screenshots section to README
New README "Screenshots" section showing the live viewer (East view with
aircraft over the Las Vegas skyline) and the in-app pixel sprite editor,
using freshly captured screenshots.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-14 12:08:22 -07:00
allen 6d1b178e85 Merge pull request 'Release v1.1.2: publish container image + security workflows' (#12) from release/v1.1.2 into main
Release / image (push) Has been cancelled
2026-06-10 15:36:03 -07:00
root babed47fe6 Release v1.1.2: publish container image + add security workflows
- Bump VERSION to 1.1.2 (no app behavior change from 1.1.1).
- release.yml: add workflow_dispatch so images can be published manually from
  the Actions tab in addition to on version tags.
- Add CodeQL code scanning (Python + JavaScript), free for public repos.
- Add Dependabot config for GitHub Actions and pip updates.

This is the first release to publish a multi-arch image to GHCR
(ghcr.io/allennpit/ads-bit).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-10 15:36:02 -07:00
allen f635c23027 Merge pull request 'Set GitHub namespace (AllenNPIT)' (#11) from chore/set-namespace into main 2026-06-10 10:26:48 -07:00
11 changed files with 105 additions and 5 deletions
+1
View File
@@ -0,0 +1 @@
buy_me_a_coffee: adsbit
+17
View File
@@ -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"
+35
View File
@@ -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
View File
@@ -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
View File
@@ -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
+14
View File
@@ -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
+13
View File
@@ -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.2]: https://github.com/AllenNPIT/ADS-Bit/releases/tag/v1.1.2
[1.1.1]: https://github.com/AllenNPIT/ADS-Bit/releases/tag/v1.1.1 [1.1.1]: https://github.com/AllenNPIT/ADS-Bit/releases/tag/v1.1.1
[1.1.0]: https://github.com/AllenNPIT/ADS-Bit/releases/tag/v1.1.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.0]: https://github.com/AllenNPIT/ADS-Bit/releases/tag/v1.0
+14 -2
View File
@@ -6,7 +6,19 @@
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.
![ADS-Bit Screenshot](screenshots/screenshot.png) ## 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.
![Live viewer with aircraft in view](screenshots/viewer.png)
### 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.
![In-browser pixel sprite editor](screenshots/pixel-editor.png)
## Features ## Features
@@ -27,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
Binary file not shown.

After

Width:  |  Height:  |  Size: 304 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 857 KiB

+1 -1
View File
@@ -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