ovdashboard/README.md

120 lines
6.2 KiB
Markdown
Raw Normal View History

2022-09-21 23:46:09 +00:00
# OVDashboard
A fancy dashboard for use in a [THW](https://en.wikipedia.org/wiki/Technisches_Hilfswerk)-Ortsverband (OV).
![Screenshot](./doc/ovdashboard_en.jpg)
2022-09-27 19:59:27 +00:00
2022-09-21 23:46:09 +00:00
## Key Features
- **Clean Look** <br />
All that matters, at one glance! <br />
2022-09-27 17:58:22 +00:00
*Date and Time &ndash; Upcoming Events &ndash; Public Announcements &ndash; News &ndash; Pictures*
2022-09-21 23:46:09 +00:00
- **Easy Install** <br />
2023-11-15 14:15:31 +00:00
Set up a RaspberryPi, run the [installer script](./deploy/install.sh), done!
2022-09-21 23:46:09 +00:00
- **DAV Server Interface** <br />
Update your content anytime, from anywhere!
Basic [Markdown](https://www.markdownguide.org/) is enough! <br />
Already have a [Nextcloud](https://nextcloud.com/) instance?
OVDashboard will take it from there!
- **Customizable &ndash; Yet Always Recognizable** <br />
Change the Logo &ndash; Put your own Title &ndash; Publish Pictures &ndash; Create Event Lists &ndash; Customize the News Ticker Appearance &ndash; Adjust Item Rotation Speed
- **Responsive Design** <br />
2022-09-21 23:50:18 +00:00
OVDashboard is made for the big screen &ndash; but it also shines in your visitors' mobile browsers!
2022-09-21 23:46:09 +00:00
- **Locale Aware** <br />
2022-10-05 14:42:42 +00:00
No localized strings anywhere &ndash; formats generated using [Luxon](https://moment.github.io/luxon/#/), which [respects your browsers' settings](./doc/ovdashboard_de.jpg)!
2022-09-21 23:46:09 +00:00
- **Hackable** <br />
The Dashboard UI is created using [Vue](https://vuejs.org/) and the [Vuetify](https://vuetifyjs.com/) UI library. <br />
2022-09-27 19:59:27 +00:00
*Like my layout, but want it for something completely different? Fork me!*
## Quick Start
2023-11-15 10:27:09 +00:00
### Prerequisites
2022-10-05 14:42:42 +00:00
Make sure you have a WebDAV and CalDAV account available.
For an all-in-one solution, consider setting up an account on a [Nextcloud](https://nextcloud.com/) instance! <br />
2023-11-15 10:27:09 +00:00
On your WebDAV account, create a resource (directory) named `ovdashboard`[^1].
2022-09-28 00:13:07 +00:00
2023-11-15 10:27:09 +00:00
Your target device should be a Raspberry Pi Model 3 or later[^2]. You will need some accessories:
- microSD card, class 10 or UHS (min. 8 GB)
- network connectivity (bring WiFi credentials if applicable)
- connection to a HDMI screen
2022-09-28 00:13:07 +00:00
2023-11-15 10:27:09 +00:00
It is also heavily advisable that you log into your device using SSH, so you should get another device (PC, tablet or smartphone) onto the same network as your OVDashboard.
2022-09-27 19:59:27 +00:00
2023-11-15 10:27:09 +00:00
[^1]: if named differently, you will need to adjust your compose file later on
[^2]: other devices will also work, but might require extra installation steps
2022-09-27 19:59:27 +00:00
2023-11-15 10:27:09 +00:00
### Install Base System
2022-10-05 14:42:42 +00:00
2023-11-15 14:15:31 +00:00
`OVDashboard` is designed to run on a `DietPi` installation. Full installation documentation is available [at dietpi.com](https://dietpi.com/docs/deploy/). To quickly get up and running:
2022-10-05 14:42:42 +00:00
2023-11-15 10:27:09 +00:00
1. Download Image from [dietpi.com/#download](https://dietpi.com/#download)
1. Uncompress Image and flash onto SD card you might need "7zip", "balenaEtcher" and/or other tools
1. Check the SD card, open "dietpi.txt" and change some options (full documentation [here](https://dietpi.com/docs/usage/#options-within-the-file)):
- For WiFi, use `AUTO_SETUP_NET_WIFI_ENABLED=1` and `AUTO_SETUP_NET_WIFI_COUNTRY_CODE=DE`, and also edit "dietpi-wifi.txt" like `aWIFI_SSID[0]='OV WLAN'` and `aWIFI_KEY[0]='Strong_pa55w0rd'`
2023-11-15 12:55:40 +00:00
- System options, e.g. `AUTO_SETUP_AUTOMATED=1`, `AUTO_SETUP_NET_HOSTNAME=OVDashboard`, `AUTO_SETUP_GLOBAL_PASSWORD=dietpi`, `AUTO_SETUP_LOCALE=de_DE.UTF-8`, `AUTO_SETUP_KEYBOARD_LAYOUT=de`, `AUTO_SETUP_TIMEZONE=Europe/Berlin`, `CONFIG_SERIAL_CONSOLE_ENABLE=0`
2023-11-15 10:27:09 +00:00
1. Be sure to at least change the password (and remember it 🙂️), then put the SD card into your device and boot it. Let the first time setup finish, it will take a bit. It will let you know when it is done!
1. Log into your device using SSH. By default, that's user name `root` and password `dietpi`
2022-09-27 19:59:27 +00:00
2023-11-15 10:27:09 +00:00
### Install OVDashboard
2022-09-28 00:13:07 +00:00
2023-11-15 14:15:31 +00:00
Download (and review) the [OVDashboard install script](//code.yavook.de/OEKZident.de/ovdashboard/raw/branch/master/deploy/install.sh), then run it from a terminal.
2022-09-28 00:13:07 +00:00
2023-11-15 10:27:09 +00:00
This can all be done after logging into your prepared device:
- The safe way:
2023-11-15 15:17:32 +00:00
1. download: `wget 'https://code.yavook.de/OEKZident.de/ovdashboard/raw/branch/master/deploy/install.sh'`
1. read/edit: `nano install.sh`
1. execute: `sh install.sh`
2023-11-15 14:15:31 +00:00
- If you feel adventurous and do not want to review the script, just run `sh <( curl --proto '=https' --tlsv1.2 -sSf 'https://code.yavook.de/OEKZident.de/ovdashboard/raw/branch/master/deploy/install.sh' )`
2022-09-28 00:13:07 +00:00
2023-11-15 12:55:40 +00:00
> There will be some prompts during installation.
>
2023-11-15 15:17:32 +00:00
> - DietPi might ask: "Would you like DietPi to apply the recommended GPU memory split?". Choose **Yes**.
> - DietPi will ask: "Would you like to configure the DietPi-AutoStart option?". **Cancel** that, this choice does not matter as it is changed by the installer.
> - DietPi will ask: "Would you like to join DietPi-Survey?". It's up to you, but I'd suggest to **opt OUT**.
> - The installer will ask for the connected screen's resolution. The default values should be fine, you can likely just hit **Return** here.
> - The installer will ask for "display languages". This will affect some details on the connected screen. <br />
For German, enter `de-DE,de,en-US,en`.
2023-11-15 12:55:40 +00:00
2023-11-15 10:27:09 +00:00
Afterwards, reboot your device (`reboot` in the terminal). Your OVDashboard should be working now.
2022-09-28 00:13:07 +00:00
2023-11-15 10:27:09 +00:00
For a better understanding of your newly created OVDashboard, refer to the [about section](#about-the-default-ovdashboard-deployment).
2022-09-28 00:13:07 +00:00
2023-11-15 10:27:09 +00:00
## Updates, upgrades
2022-09-28 00:13:07 +00:00
2023-11-15 12:55:40 +00:00
<!-- TODO `/opt/ovdashboard` -->
2022-09-28 00:13:07 +00:00
2023-11-15 10:27:09 +00:00
## Configuration
2022-09-28 00:13:07 +00:00
2023-11-15 10:31:49 +00:00
<!-- TODO -->
2022-09-28 00:13:07 +00:00
2023-11-15 10:27:09 +00:00
## Setup for development and contribution
2022-09-28 00:13:07 +00:00
2023-11-15 10:27:09 +00:00
Refer to the specific README files for [the API](./api/README.md) and [the UI](./ui/README.md) to contribute to one of those sub-projects.
## About the "default" OVDashboard deployment
2022-09-28 00:13:07 +00:00
2023-11-15 10:27:09 +00:00
The default deployment is made up of three parts: The **installer** runs once, prepares your device for OVDashboard usage and deploys the **server**.
2022-09-28 00:13:07 +00:00
2023-11-15 10:27:09 +00:00
The **server** will then run continuously and make OVDashboard available as a web application in your network.
2022-09-28 00:13:07 +00:00
2023-11-15 10:27:09 +00:00
Also, a browser is installed to display the OVDashboard using your device.
### The OVDashboard installer will:
2022-09-28 00:13:07 +00:00
2023-11-15 10:27:09 +00:00
- install and set up Docker, Docker Compose and Chromium-Browser
- create the OVDashboard Compose project at `/opt/ovdashboard`
- get a `docker` image from [`code.yavook.de`](https://code.yavook.de/OEKZident.de/-/packages/container/ovdashboard) containing the OVDashboard server
- set up your device to auto-run Chromium in "kiosk" mode to display the local OVDashboard
- auto-hide your mouse cursor