Viktor Petersson 8dbf4eabdb refactor(packaging): adopt src/ layout with split server/viewer packages
Move all Python source under src/ following modern packaging conventions.
Server, viewer, host-agent, and shared common code now live as four
top-level packages with clear excision boundaries — anthias_viewer can
be removed wholesale when the rewrite-out-of-Python lands without
touching the server.

  src/anthias_common/         shared: errors, utils, internal_auth, device_helper
  src/anthias_server/         Django app, REST API, Celery tasks, manage.py
    lib/                      server-only: auth, backup_helper, diagnostics, github, telemetry
  src/anthias_viewer/         player runtime (was viewer/)
  src/anthias_host_agent/     systemd-driven host shim (was host_agent.py)
  tools/raspberry_pi_imager/  moved from repo root
  tests/conftest.py           moved from repo root

pyproject.toml gets [build-system], setuptools src/ discovery, and an
anthias-manage console script. Django AppConfigs keep label='anthias_app'
and label='api' so existing migration dependency tuples don't move.
BASE_DIR computed from parents[3] to keep templates/static at repo root.
mypy_path set to ["src", "stubs"] with explicit_package_bases.

Dockerfile templates set PYTHONPATH=/usr/src/app/src; bin/start_*.sh
and CI workflows use python -m anthias_server.manage / python -m
anthias_viewer instead of bare ./manage.py and python -m viewer.
Ansible host-agent unit invokes python -m anthias_host_agent.

Verified end-to-end in the docker test container:
  - 430 unit tests pass (matches baseline)
  - 7 integration tests pass, 5 skipped (matches baseline)
  - ruff, mypy clean

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-03 06:35:19 +00:00
2025-05-26 21:04:19 -07:00

Anthias · Open Source Digital Signage Solution for Raspberry Pi and PC

Run Unit Tests CodeQL Run Python Linter
GitHub release (latest by date)


Anthias Logo


About Anthias

Anthias is a digital signage platform for Raspberry Pi devices and PCs. Formerly known as Screenly OSE, it was rebranded to clear up the confusion between Screenly (the paid version) and Anthias. More details can be found in this blog post.

Want to help Anthias thrive? Support us using GitHub Sponsor.

🚀 Getting Started

See this page for options on how to install Anthias.

Compatibility

balenaOS

Note

See this page for instructions on how to install Anthias on balenaOS. You can either use the images from balenaHub or download the images from the releases.

Raspberry Pi OS

  • Raspberry Pi 5 Model B - 64-bit Trixie, 64-bit Bookworm
  • Raspberry Pi 4 Model B - 64-bit Trixie, 64-bit Bookworm
  • Raspberry Pi 3 Model B+ - 64-bit Trixie, 64-bit Bookworm
  • Raspberry Pi 3 Model B - 64-bit Trixie, 64-bit Bookworm
  • Raspberry Pi 2 Model B - 32-bit Trixie, 32-bit Bookworm
  • PC (x86) - 64-bit Trixie, 64-bit Bookworm

Note

We're still fixing the Raspberry Pi OS installer so that it'll work with Raspberry Pi Zero and Raspberry Pi 1. Should you encounter any issues, please file an issue either in this repository or in the forums.

Star History

Star History Chart

🐞 Issues and Bugs

Note

We are still in the process of knocking out some bugs. You can track the known issues here. You can also check the discussions in the Anthias forums.

Description
No description provided
Readme GPL-2.0 70 MiB
Languages
Python 70.7%
HTML 8.5%
Shell 5.6%
C++ 3.8%
CSS 3.2%
Other 8.1%