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 – Upcoming Events – Public Announcements – News – 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 – Yet Always Recognizable** < br />
Change the Logo – Put your own Title – Publish Pictures – Create Event Lists – Customize the News Ticker Appearance – Adjust Item Rotation Speed
- **Responsive Design** < br />
2022-09-21 23:50:18 +00:00
OVDashboard is made for the big screen – 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 – 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 check "dietpi-wifi.txt"
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:
1. `mkdir /tmp/ovdashboard && cd /tmp/ovdashboard`
2023-11-15 14:15:31 +00:00
1. `wget 'https://code.yavook.de/OEKZident.de/ovdashboard/raw/branch/master/deploy/install.sh'`
2023-11-15 10:27:09 +00:00
1. `less install.sh` and/or edit with `nano install.sh`
1. `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.
>
> - DietPi might ask if you want to change your GPU split. Choose **Yes**.
> - DietPi will ask if you want to configure autostart options. **Cancel** that, this choice does not matter as it is changed by the installer.
> - The installer will ask for the connected display's resolution. The default values should be fine, you can likely just hit **Return** here.
> - The installer will ask for "display languages". This determines internationalization on the kiosk (connected display). For German, enter `de-DE,de,en-US,en`.
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