Skip to content

manfredbjorlin/StatusApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

StatusApp

StatusApp is a terminal-based application written in Go, utilizing the Bubble Tea TUI (Terminal User Interface) framework. It provides a concise, real-time overview of various system statuses directly in your terminal.

The project has recently undergone a significant architectural refactoring to improve modularity, testability, and align with Go best practices.

Features

  • Digital Clock: Displays the current time using stylized ASCII art (Figlet).
  • Tailscale Status: Shows the connection status and details of your Tailscale devices, including key expiry.
  • TrueNAS Status: Monitors the status of applications running on a TrueNAS instance.
  • Weather Information: Presents current weather conditions and water temperature for a configured location.
  • Meeting Schedule: Displays upcoming meetings from a local schedule file.
  • HostHatch Status: Shows the status of your HostHatch servers.
  • UpCloud Status: Shows the status of your UpCloud servers.

Getting Started

Prerequisites

To run StatusApp, you need:

  • Go (version 1.25.5 or later)
  • Access to Tailscale API (for device status)
  • Access to WeatherAPI (for weather information)
  • Access to a TrueNAS instance with the API enabled.
  • Access to the HostHatch API.
  • Access to the UpCloud API.

The project follows a modern, domain-driven structure and now includes a comprehensive test suite to ensure reliability.

Configuration

StatusApp uses environment variables for configuration, loaded from a .env file in the project root. Create a .env file with the following variables:

TAILSCALE_TAILNET_ID=your_tailnet_id
TAILSCALE_API_KEY=your_tailscale_api_key
TAILSCALE_API_KEY_ID=your_tailscale_api_key_id
WEATHERAPI_API_KEY=your_weatherapi_key
WEATHERAPI_LOCATION=your_location
WATERTEMPERATURE_LOCATION_ID=your_watertemp_location_id
TRUENAS_BASE_URL=https://your-truenas-instance
TRUENAS_API_KEY=your_truenas_api_key
SCHEDULE_FILE_PATH=file_path
HOSTHATCH_API_KEY=your_hosthatch_api_key
UPCLOUD_API_KEY=your_upcloud_api_key

# Weather Provider Configuration
# WEATHER_PROVIDER can be "weatherapi" (default) or "yr".
# The following variables are conditional based on WEATHER_PROVIDER:
WEATHER_PROVIDER=weatherapi # or yr

# If WEATHER_PROVIDER is "weatherapi":
WEATHER_ICON_PATH=path/to/weather.json # e.g., assets/weather.json

# If WEATHER_PROVIDER is "yr":
WEATHER_LAT=your_latitude
WEATHER_LON=your_longitude
WEATHER_ICON_PATH_YR=path/to/weather_yr.csv # e.g., assets/weather_yr.csv

File Structure: Schedule

Delimiter: ## One meeting per line, on the format:

start_time##Title##Room##end_time

Example

08:00##Stand-up##Microsoft Teams Meeting##08:15

Note There are some very specific parsing of the meeting room, in loader.go that will have to be updated for other users

Installation and Running

  1. Clone the repository:

    git clone https://github.com/manfredbjorlin/StatusApp.git
    cd StatusApp
  2. Ensure dependencies are synced (if not already):

    go mod tidy
    go mod vendor
  3. Build and run the application:

    go build -o statusapp ./cmd
    ./statusapp

Documentation

For a more in-depth understanding of the project:

License

This project is licensed under the MIT License - see the LICENSE file for details.


This file was automatically generated by AI.

About

TUI Status GUI

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors