Groundwork for a Go web app to track bird sightings.
- SQLite-backed persistence for sightings
- Home page at
/with:- Lifetime sighting count
- Filter controls for year and location (
uk,global,western_palearctic) - Notable recent additions (most recently added first sightings per species)
- Species search via
/species?name=...showing all sightings for a species - Import BTO BirdTrack
.xlsxexports from theRecords#1worksheet
go run ./cmd/birdlistThen open http://localhost:8080.
Use a different port if needed:
go run ./cmd/birdlist -port 9090By default, data is stored in data/birds.db.
Override with BIRD_LIST_DB if needed.
The Docker configuration targets Linux arm64 systems, including Raspberry Pi
devices. It persists the SQLite database in ./data and restarts the
application after Docker starts at boot.
docker compose up --build -dOpen http://localhost:8080. To select another host port, set
BIRD_LIST_PORT before starting the container:
BIRD_LIST_PORT=8081 docker compose up --build -dRun the installer directly from a checkout:
./bird-list-install.shIt installs Git and Docker when needed, clones or updates the application in
~/bird-list, finds a free port starting at 8080, starts the arm64 Docker
container, and configures it to restart after system startup. The installer may
ask for your sudo password when installing system packages. If Docker was
just installed, sign out and back in before using Docker commands manually.
~/bird-list/bird-list-uninstall.shThe uninstaller stops and removes the container and application files. It asks
whether to remove sightings; if retained, it saves them in
~/.local/share/bird-list and restores them during a later installation.
Docker and Git are left installed for other applications.
