Homed - Light-weight, easily configurable, dockerized homepage

Related tags

Miscellaneoushomed
Overview

homed

homed is a light-weight customizable portal primarily intended for the "self-hosted" crowd with built-in support for local authentication services (e.g. Authelia). The user configures options and which links to display using a yaml file, and also has ability to include custom CSS and JavaScript. All resources are hosted locally. Access to links is controlled via groups passed in by the authentication service using the Remote-Groups request header (which Authelia supports).

Light Mode: homed

Dark Mode: homed

Weather:

  • Displays current local radar and refreshes every 15 minutes
  • 12-hour forecast
  • 5-day forecast

homed

Features

  • Auth integration (e.g. Authelia)
  • Ability to provide custom CSS and JavaScript
  • Simple yaml configuration file
  • FontAwesome icon support
  • Light/Dark mode

Documentation

Please visit the wiki

Versioning

Semver will be followed. For version x.y.z

  • x Major version release, breaking changes
  • y Minor version release, no breaking changes, added features
  • z Bug release, no breaking changes, no new features
Comments
  • Exception when no auth configured

    Exception when no auth configured

    There is an exception when you try to access the page without configuring auth/user

    Traceback (most recent call last):
      File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 2073, in wsgi_app
        response = self.full_dispatch_request()
      File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1518, in full_dispatch_request
        rv = self.handle_user_exception(e)
      File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1516, in full_dispatch_request
        rv = self.dispatch_request()
      File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1502, in dispatch_request
        return self.ensure_sync(self.view_functions[rule.endpoint])(**req.view_args)
      File "/app/homed.py", line 25, in display_home
        app.logger.info("user={user}, path=/".format(user=user["username"]))
    KeyError: 'username'
    

    Very cool project otherwise, keep up the good work!

    bug 
    opened by zawwz 1
  • Split up code user has access to and what they don't

    Split up code user has access to and what they don't

    In creation of Dark Mode (#2) I am realizing that the upgrade path will be pretty difficult because of how the image puts the used code into place. Users will need to delete their current code in order for the new code to be used.

    This has to do with the image copying the initial code into the user mounted volume and likely puts too much onus on the average user to have to delete it in order to pick up updates.

    Multiple things should likely be done:

    1. Stop copying all of the app files and assets over to the user volume.
    2. Offer a custom.css and custom.js for the user to make adjustments they'd like in. It should contain only their changes, never core-app items and be stored on the user volume (/config in the container).
    3. Look at Making the HTML utilize modules of some sort is likely going to be needed.

    Need to think some more on this one and how best to tackle it. Open to ideas ... it's a pickle if giving the user direct access to the HTML is going to be kept as a feature.

    enhancement 
    opened by mwalters 1
  • Bump certifi from 2021.10.8 to 2022.12.7

    Bump certifi from 2021.10.8 to 2022.12.7

    Bumps certifi from 2021.10.8 to 2022.12.7.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • 1.3.0

    1.3.0

    • Add service status checks
      • Disabled by default, can be turned on per service
      • Dog-ear on each service indicates status (green = up / red = down / blue = check in progress)
    • Add support for user-defined drop-down menus in header
    • Add sunrise/sunset to weather widget
    • Periodically (every ~5m) update current weather info & radar without page refresh
    • Fixed bug in refreshing of radar loop
    enhancement 
    opened by mwalters 0
  • Customization improvements

    Customization improvements

    Re: #4

    For now at least, going to need to remove user access to the HTML. Custom JS and CSS files are placed in the user volume which the user can edit in order to provide customization of the UI.

    This decision wasn't taken super lightly, but basically the upgrade paths for users would be quite difficult without keeping them out of the necessary code for the HTML/CSS/JS.

    The way the application previously worked is it copied itself, in its entirety onto the user volume every time the container was started. Once the files were copied into place, it would not overwrite them. This meant that feature enhancements, etc. could not be easily introduced for users, and that in order to upgrade at all -- even if they had made no customizations -- the user would need to delete all the files in the user volume so that updated files could be copied into place.

    So for now, at least, the application files will not be copied into the user provided volume. Instead a custom CSS and custom JS file will be placed there that will only ever house the users edits, and thus homed no longer has to worry about overwriting them but can still easily deliver feature enhancements without the user having to delete files each time. This was the best happy medium that I could come up with.

    In the future, I'd like to look into modularizing things a bit more and perhaps allow for user provided modules or "widgets" that can be sections on the homepage. That's a big task though, so for now this was the overall best solution I could come up with.

    Still TBD(one) --

    • [x] Just realized in doing all this I pulled the configuration file out of being controllable by the user ... obviously that needs to be sorted out before merge.
    opened by mwalters 0
  • Dark mode

    Dark mode

    Re: #2

    • Stopped user-menu from being collapsed into mobile menu (now it's just a single user menu on all view ports)
    • Added toggle to turn dark mode on and off. Toggle is located under user menu.
    • Added config option in homed.yaml for enabling dark mode by default. This can be used to prevent it from loading in light mode first then having to switch to dark mode. The config option is dark_mode.
    • Added various CSS treatments to support dark mode (background colors, changing weather alert popover, etc)
    opened by mwalters 0
Releases(1.3.1)
Programa principal de la Silla C.D.P.

Silla CDP Página Web Contáctenos Lista de contenidos: Información del proyecto. Licencias. Contacto. Información del proyecto Silla CDP, o Silla Corre

Silla Control de Postura 1 Dec 02, 2021
A python implementation of differentiable quality diversity.

Differentiable Quality Diversity This repository is the official implementation of Differentiable Quality Diversity.

ICAROS 41 Nov 30, 2022
VAST - Visualise Abstract Syntax Trees for Python

VAST VAST - Visualise Abstract Syntax Trees for Python. VAST generates ASTs for a given Python script and builds visualisations of them. Install Insta

Jesse Phillips 2 Feb 18, 2022
Find functions without canary check (or similar)

Ghidra Check Protector Which non-trivial functions don't reference the stack canary checker (or other, user-defined function)? Place your cursor to th

buherator 3 Jan 17, 2022
PBN Obfuscator: A overpowered obfuscator for python, which will help you protect your source code

PBN Obfuscator PBN Obfuscator is a overpowered obfuscator for python, which will

Karim 6 Dec 22, 2022
Aim of the project is to reduce phishing victims. 😇

Sites: For more details visit our Blog. How to use 😀 : You just have to paste the url in the ENTER THE SUSPECTED URL section and SELECT THE RESEMBELI

0 May 19, 2022
Generate a wordlist to fuzz amounts or any other numerical values.

Generate a wordlist to fuzz amounts or any other numerical values. Based on Common Security Issues in Financially-Oriented Web Applications.

Ivan Šincek 3 Oct 14, 2022
Prop-based map editor for the Apex Legends mod, R5Reloaded

R5R Map Editor A tool to build maps out of props in the Apex Legends mod, R5Reloaded Instuctions Install R5R Download this program Get the prop spawne

7 Dec 16, 2022
Python Multilingual Ucrel Semantic Analysis System

PymUSAS Python Multilingual Ucrel Semantic Analysis System, it currently is a rule based token level semantic tagger which can be added to any spaCy p

UCREL 13 Nov 18, 2022
Mute your mic while you're typing. An app for Ubuntu.

Hushboard Mute your microphone while typing, for Ubuntu. Install from kryogenix.org/code/hushboard/. Installation We recommend you install Hushboard t

Stuart Langridge 142 Jan 05, 2023
IPO Checker for NEPSE

IPO Checker Checks more than one account for an IPO. Usage: ipo_checker.py [-h] --file FILE IPO Checker for a list. optional arguments: -h, --help

Sagar Tamang 4 Sep 20, 2022
An app about keyboards, originating from the design of u/Sonnenschirm

keebapp-backend An app about keyboards, originating from the design of u/Sonnenschirm Setup Firstly, ensure that the environment for python is install

8 Sep 04, 2022
Gerador do Arquivo Magnético Sintegra em Python

pysintegra é uma lib simples com o objetivo de facilitar a geração do arquivo SINTEGRA seguindo o Convênio ICMS 57/95. Com o surgimento do SPED, muito

Felipe Correa 5 Apr 07, 2022
skimpy is a light weight tool that provides summary statistics about variables in data frames within the console.

skimpy Welcome Welcome to skimpy! skimpy is a light weight tool that provides summary statistics about variables in data frames within the console. Th

267 Dec 29, 2022
Public Management System for ACP's 24H TT Fronteira 2021

CROWD MANAGEMENT SYSTEM 24H TT Vila de Froteira 2021 This python script creates a dashboard with realtime updates regarding the capacity of spectactor

VOST Portugal 1 Nov 24, 2021
Reconhecimento de voz, em português, com python

Speech_recognizer Reconhecimento de voz, em português, com python O ato de falar nada mais é que criar vibrações no ar. Por meio de um conversor analó

Marcus Vinícius Ribeiro Andrade 1 Dec 14, 2021
Let's make a lot of random function from Scracth...

Pseudo-Random On a whim I asked myself the question about how randomness is integrated into an algorithm? So I started the adventure by trying to code

Yacine 2 Jan 19, 2022
EasyBuild is a software build and installation framework that allows you to manage (scientific) software on High Performance Computing (HPC) systems in an efficient way.

EasyBuild is a software build and installation framework that allows you to manage (scientific) software on High Performance Computing (HPC) systems in an efficient way.

EasyBuild community 87 Dec 27, 2022
Width-customizer-for-streamlit-apps - Width customizer for Streamlit Apps

🎈 Width customizer for Streamlit Apps As of now, you can only change your Strea

Charly Wargnier 5 Aug 09, 2022
The parser of a timetable of tennis matches for Flashscore website

FlashscoreParser The parser of a timetable of tennis matches for Flashscore website. The program collects the schedule of tennis matches for two days

Valendovsky 1 Jul 15, 2022