No description
Find a file
2023-11-16 15:32:02 +01:00
api optimization: image size 2023-11-16 14:55:02 +01:00
deploy deploy scripts QoL changes 2023-11-16 15:32:02 +01:00
doc main README 2022-10-08 02:44:29 +02:00
ui node: v18 -> v20 2023-10-27 00:46:43 +02:00
.dockerignore main Dockerfile, CI config 2022-09-20 00:55:52 +02:00
.drone.yml main Dockerfile, CI config 2022-09-20 00:55:52 +02:00
Dockerfile rename "install" -> "deploy" 2023-11-15 15:21:46 +01:00
LICENSE empty "api" python project 2022-09-05 23:26:21 +02:00
README.md README overhaul 2023-11-16 15:31:07 +01:00

OVDashboard

A fancy dashboard for use in a THW-Ortsverband (OV).

Screenshot

Key Features

  • Clean Look
    All that matters, at one glance!
    Date and Time Upcoming Events Public Announcements News Pictures

  • Easy Install
    Set up a RaspberryPi, run the installer script, done!

  • DAV Server Interface
    Update your content anytime, from anywhere! Basic Markdown is enough!
    Already have a Nextcloud instance? OVDashboard will take it from there!

  • Customizable Yet Always Recognizable
    Change the Logo Put your own Title Publish Pictures Create Event Lists Customize the News Ticker Appearance Adjust Item Rotation Speed

  • Responsive Design
    OVDashboard is made for the big screen but it also shines in your visitors' mobile browsers!

  • Locale Aware
    No localized strings anywhere formats generated using Luxon, which respects your browsers' settings!

  • Hackable
    The Dashboard UI is created using Vue and the Vuetify UI library.
    Like my layout, but want it for something completely different? Fork me!

Quick Start

Prerequisites

Make sure you have a WebDAV and CalDAV account available. For an all-in-one solution, consider setting up an account on a Nextcloud instance!
On your WebDAV account, create a resource (directory) named ovdashboard1.

Your target device should be a Raspberry Pi Model 3 or later2. 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

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.

Install Base System

OVDashboard is designed to run on a DietPi installation. Full installation documentation is available at dietpi.com. To quickly get up and running:

  1. Download Image from dietpi.com/#download
  2. Uncompress Image and flash onto SD card you might need "7zip", "balenaEtcher" and/or other tools
  3. Check the SD card, open "dietpi.txt" and change some options (full documentation here):
    • 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'
    • 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
  4. 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!
  5. Log into your device using SSH. By default, that's user name root and password dietpi

Install OVDashboard

Download (and review) the OVDashboard install script, then run it from a terminal.

This can all be done after logging into your prepared device:

  • The safe way:
    1. download: wget 'https://code.yavook.de/OEKZident.de/ovdashboard/raw/branch/master/deploy/install.sh'
    2. read/edit: nano install.sh
    3. execute: sh install.sh
  • 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' )

There will be some prompts during installation.

  • 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.
    For German, enter de-DE,de,en-US,en.
  • The installer will ask you to "review the Docker Compose file" before starting the services. You will want to edit WEBDAV__HOST, WEBDAV__USERNAME and WEBDAV__PASSWORD at least.
    Refer to the "Settings" for the full list of options.

Afterwards, reboot your device (reboot in the terminal).

If the install was successful, your OVDashboard should be showing up on the connected screen after rebooting.

You will also be able to view your OVDashboard on any webbrowser in your network using http://<device-ip>.
The device IP is displayed in the lower right region of the OVDashboard.

For a better understanding of your newly created OVDashboard, refer to the about section.

Configuration

"Config" in your WebDAV share: config.txt

"Settings" on your Device: /opt/ovdashboard/docker-compose.yml

Updating your Device

Setup for development and contribution

Refer to the specific README files for the API and the UI to contribute to one of those sub-projects.

About the "default" OVDashboard deployment

Running the installer script carries out the following actions:

  • install Chromium-Browser, Docker and Docker Compose
  • create the OVDashboard project at /opt/ovdashboard
  • start the OVDashboard project, this deploys the ovdashboard service from code.yavook.de and a redis instance to your device
  • set up your device to auto-boot into Chromium "kiosk" mode to display the local OVDashboard

  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 ↩︎