KISS web media player
  • Dart 44.2%
  • Go 43%
  • JavaScript 7.3%
  • TypeScript 2.9%
  • CSS 1.4%
  • Other 1.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Paul Buetow b9de6316f5 Configure audio_service notification icon so playback does not crash
Android refuses to post a foreground-service notification without a
small-icon drawable; without androidNotificationIcon set, the very
first AudioPlayer.play() triggers a FATAL "Invalid notification
(no valid small icon)" the moment audio_service tries to publish
the media-session metadata, killing the app process.

Re-use drawable/ic_launcher — the project's existing launcher icon —
as the small notification icon.  A dedicated monochrome silhouette
would be more polished, but the launcher icon is good enough to
unblock playback today.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-23 01:07:12 +03:00
.claude/worktrees Add migration for missing playback_progress.finished column (5f) 2026-05-22 23:16:14 +03:00
.woodpecker Commit license-cleared test media; retire ./testmedia in tests 2026-05-19 09:28:23 +03:00
docs Commit license-cleared test media; retire ./testmedia in tests 2026-05-19 09:28:23 +03:00
player-android Configure audio_service notification icon so playback does not crash 2026-05-23 01:07:12 +03:00
player-server Ignore .claude/worktrees/ from agent sub-tasks 2026-05-22 23:17:05 +03:00
.gitignore Gitignore server-generated thumbnails inside testdata/media/ 2026-05-19 09:28:54 +03:00
AGENTS.md Add monorepo root orientation 2026-05-17 20:51:34 +03:00
Dockerfile.flutter-ci Add Dockerfile.flutter-ci and update android.yml to use project image 2026-05-18 18:59:14 +03:00
magefile.go Commit license-cleared test media; retire ./testmedia in tests 2026-05-19 09:28:23 +03:00
README.md Add monorepo root orientation 2026-05-17 20:51:34 +03:00

Player

Player is a self-hosted media player split into a Go server and a Flutter Android client. The server owns the web UI, media library, playback APIs, accounts, and storage; the Android project is the mobile client scaffold that targets the same REST API. This repository is the monorepo root after the split, so start here for orientation and then work in the component directory that matches the change.

Repository Layout

player-server/   Go server, web UI, API, docs, deployment files
player-android/  Flutter Android client scaffold

Server

The server lives in player-server/ and has its own README.

Build hint: cd player-server && mage build

Use the server README and docs for configuration, API behavior, keyboard shortcuts, Docker, Kubernetes, and development workflow.

Android

The Android client lives in player-android/ and has its own README.

Build hint: cd player-android && flutter analyze && flutter build apk --debug

The Flutter project is intentionally small for now. Keep Android client changes aligned with the server API documentation in player-server/docs/api.md.

Working From The Root

Root files provide monorepo orientation only. Component-specific commands, generated files, local databases, media samples, and build outputs belong under their component directories.

Keep local media and generated build artifacts out of git.