Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 6 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,6 @@

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](https://www.screenly.io/blog/2022/12/06/screenly-ose-now-called-anthias/).

:tada: **NEW: Now with Raspberry Pi 5 Support!** :tada:

Want to help Anthias thrive? Support us using [GitHub Sponsor](https://github.com/sponsors/Screenly).

## :rocket: Getting Started
Expand All @@ -33,10 +31,6 @@ See [this](/docs/installation-options.md) page for options on how to install Ant

## :white_check_mark: Compatibility

> [!WARNING]
> Anthias does not currently support devices running Debian Trixie.
> Please use Debian Bookworm or Raspberry Pi OS Bookworm for the best experience.

### balenaOS

> [!NOTE]
Expand All @@ -46,12 +40,12 @@ See [this](/docs/installation-options.md) page for options on how to install Ant

### Raspberry Pi OS

* Raspberry Pi 5 Model B - 64-bit Bookworm **(NEW!)**
* Raspberry Pi 4 Model B - 32-bit and 64-bit Bullseye, 64-bit Bookworm
* Raspberry Pi 3 Model B+ - 32-bit and 64-bit Bullseye, 64-bit Bookworm
* Raspberry Pi 3 Model B - 64-bit Bookworm and Bullseye
* Raspberry Pi 2 Model B - 32-bit Bookworm and Bullseye
* PC (x86 Devices) - 64-bit Bookworm
* 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 Devices) - 64-bit Trixie, 64-bit Bookworm
* These devices can be something similar to a NUC.
* See [this](/docs/x86-installation.md) page for instructions on how to install Debian in a specific way
before running the [installation script](/docs/installation-options.md#installing-on-raspberry-pi-os-lite-or-debian).
Expand Down
30 changes: 27 additions & 3 deletions ansible/roles/network/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -68,14 +68,18 @@
regexp: '^Identity=.*'
replace: "Identity=unix-group:netdev;unix-group:sudo:{{ lookup('env', 'USER') }}"
dest: /var/lib/polkit-1/localauthority/10-vendor.d/org.freedesktop.NetworkManager.pkla
when: manage_network|bool
when:
- manage_network|bool
- ansible_distribution_major_version|int <= 12

- name: Set ResultAny to yes
ansible.builtin.replace:
regexp: '^ResultAny=.*'
replace: 'ResultAny=yes'
dest: /var/lib/polkit-1/localauthority/10-vendor.d/org.freedesktop.NetworkManager.pkla
when: manage_network|bool
when:
- manage_network|bool
- ansible_distribution_major_version|int <= 12

- name: Get stat of org.freedesktop.NetworkManager.pkla
ansible.builtin.stat:
Expand All @@ -87,9 +91,29 @@
mkdir -p /etc/polkit-1/localauthority/50-local.d
cp -f /var/lib/polkit-1/localauthority/10-vendor.d/org.freedesktop.NetworkManager.pkla \
/etc/polkit-1/localauthority/50-local.d
when: manage_network|bool
when:
- manage_network|bool
- ansible_distribution_major_version|int <= 12
changed_when: not nm_pkla_path.stat.exists

- name: Create polkit rules for NetworkManager (Trixie+)
ansible.builtin.copy:
dest: /etc/polkit-1/rules.d/50-network-manager.rules
owner: root
group: root
mode: "0644"
content: |
polkit.addRule(function(action, subject) {
if (action.id.indexOf("org.freedesktop.NetworkManager.") === 0 &&
(subject.isInGroup("netdev") || subject.isInGroup("sudo") ||
subject.user === "{{ lookup('env', 'USER') }}")) {
return polkit.Result.YES;
}
});
when:
- manage_network|bool
- ansible_distribution_major_version|int >= 13

- name: Disable dhcpcd
ansible.builtin.systemd:
state: stopped
Expand Down
40 changes: 26 additions & 14 deletions ansible/roles/system/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -257,20 +257,21 @@
- docker-compose
state: absent

- name: Add Docker apt key (x86)
ansible.builtin.apt_key:
url: https://download.docker.com/linux/debian/gpg
state: present
when: ansible_architecture == "x86_64"
- name: Create keyrings directory
ansible.builtin.file:
path: /etc/apt/keyrings
state: directory
owner: root
group: root
mode: "0755"

- name: Add Docker apt key (Raspberry Pi)
ansible.builtin.apt_key:
url: https://download.docker.com/linux/raspbian/gpg
state: present
when: |
ansible_architecture == "aarch64" or
ansible_architecture == "armv7l" or
ansible_architecture == "armv6l"
- name: Add Docker apt key
ansible.builtin.get_url:
url: https://download.docker.com/linux/debian/gpg
dest: /etc/apt/keyrings/docker.asc
owner: root
group: root
mode: "0644"

- name: Get Debian name
ansible.builtin.command: lsb_release -cs
Expand Down Expand Up @@ -306,7 +307,7 @@
ansible.builtin.lineinfile:
path: /etc/apt/sources.list.d/docker.list
create: true
line: "deb [arch={{ architecture }}] https://download.docker.com/linux/debian {{ debian_name.stdout }} stable"
line: "deb [arch={{ architecture }} signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian {{ debian_name.stdout }} stable"
state: present
owner: root
group: root
Expand All @@ -321,6 +322,17 @@
update_cache: true
install_recommends: false

- name: Check if /etc/timezone exists
ansible.builtin.stat:
path: /etc/timezone
register: etc_timezone

- name: Create /etc/timezone from /etc/localtime if missing
ansible.builtin.shell: |
readlink -f /etc/localtime | sed 's|.*/zoneinfo/||' > /etc/timezone
when: not etc_timezone.stat.exists
changed_when: not etc_timezone.stat.exists

- name: Add user to Docker group (all platforms)
ansible.builtin.user:
name: "{{ lookup('env', 'USER') }}"
Expand Down
6 changes: 1 addition & 5 deletions docs/installation-options.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,17 +61,13 @@ Starting with [v0.19.0](https://github.com/Screenly/Anthias/releases/tag/v0.19.0

If you'd like more control over your digital signage instance, try installing it on Raspberry Pi OS Lite or Debian.

> [!WARNING]
> Anthias does not currently support devices running Debian Trixie.
> Please use Debian Bookworm or Raspberry Pi OS Bookworm for the best experience.

> [!IMPORTANT]
> When installing on PC (x86) devices, make sure do follow the steps in the [x86 installation guide](/docs/x86-installation.md)
> so that the installation script will work.

> [!NOTE]
> For Raspberry Pi 5:
> * We recommend using the 64-bit version of Raspberry Pi OS Lite (Bookworm)
> * We recommend using the 64-bit version of Raspberry Pi OS Lite (Trixie or Bookworm)
> * 32-bit Raspberry Pi OS is not supported on Pi 5
> * If you experience any issues, please report them either:
> * On our [forums](https://forums.screenly.io)
Expand Down
6 changes: 1 addition & 5 deletions docs/raspberry-pi5-ssd-install-instructions.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@
# How to install on a Raspberry Pi 5 with PCI-e SSD

> [!WARNING]
> Anthias does not currently support devices running Debian Trixie.
> Please use Raspberry Pi OS Bookworm for the best experience.

## Hardware

The following guide has been tested using a Raspberry Pi 5 with 8GB RAM and a [GeeekPi P33 PoE+PCI-e HAT](https://pipci.jeffgeerling.com/hats/geeekpi-p33-m2-nvme-poe-hat.html).
Expand All @@ -18,7 +14,7 @@ Early Pi 5's do not support PCIe boot as part of the factory bootloader configur

## Installation

Using the Raspberry Pi Imager and appropriate USB adapters, write the 64-bit version of **Raspberry Pi OS Lite (Bookworm)** to the microSD card. Depending on your deployment preference, you can either write the same OS or you can deploy the **BalenaOS** image to the SSD.
Using the Raspberry Pi Imager and appropriate USB adapters, write the 64-bit version of **Raspberry Pi OS Lite (Trixie or Bookworm)** to the microSD card. Depending on your deployment preference, you can either write the same OS or you can deploy the **BalenaOS** image to the SSD.

There are a few alternative ways to install:
- Network boot (if enabled on the Pi)
Expand Down
17 changes: 8 additions & 9 deletions docs/x86-installation.md
Original file line number Diff line number Diff line change
@@ -1,25 +1,25 @@
# Installing on x86

Anthias currently supports installing on x86 devices running Debian 12 (Bookworm) via the installation script,
which means that pre-built BalenaOS disk images are not yet available.
To make sure that the script will work, you need to install Debian 12 in a specific way.
Anthias supports installing on x86 devices running Debian 13 (Trixie) or Debian 12 (Bookworm) via the
installation script, which means that pre-built BalenaOS disk images are not yet available.
To make sure that the script will work, you need to install Debian in a specific way.

## Preparing the Disk Image

You can download the disk image [here](https://cdimage.debian.org/mirror/cdimage/archive/12.11.0/amd64/iso-cd/).
The file name should look something like `debian-12.x.x-amd64-netinst.iso`.
You can download the disk image from the [official Debian website](https://www.debian.org/download).
The file name should look something like `debian-13.x.x-amd64-netinst.iso`.

## Flashing the Disk Image to a USB Drive

You can use [Balena Etcher](https://www.balena.io/etcher/) or Raspberry Pi Imager (via the `Use custom` option)
to flash the disk image to a USB drive.

## Installing Debian 12
## Installing Debian

* Make sure that the USB drive is plugged into the x86 device.
* Make sure that the boot order is set to prioritize the USB drive.
* Boot up the x86 device.
* Follow the on-screen instructions to install Debian 12, while making sure to select the following options:
* Follow the on-screen instructions to install Debian, while making sure to select the following options:
* Do not set the root password so that the the non-root user will have `sudo` privileges.
* Use the entire disk.
* For **Software selection**, only leave the **SSH server** and **standard system utilities** selected.
Expand Down Expand Up @@ -53,5 +53,4 @@ to flash the disk image to a USB drive.

## References

* [The Official Debian 12 Installation Guide](https://www.debian.org/releases/bookworm/amd64)
* [Step By Step Debian 12 Installation (with Screenshots) &middot; Sangoma](https://sangomakb.atlassian.net/wiki/spaces/FP/pages/295403538/Step+By+Step+Debian+12+Installation)
* [The Official Debian Installation Guide](https://www.debian.org/releases/trixie/amd64)
Loading