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)
Better GitHub statistics images for your profile, with stats from private and public repos

Better GitHub statistics images for your profile, with stats from private and public repos

Jacob Strieb 2k Dec 30, 2022
Includes Chapters for Python Crash Course session.

python-crash-course Includes Chapters for Python Crash Course session. What will you learn: Python Essentials Creating Server Writing REST API Writing

Vineet Rao 3 Feb 17, 2021
[x]it! support for working with todo and check list files in Sublime Text

[x]it! for Sublime Text This Sublime Package provides syntax-highlighting, shortcuts, and auto-completions for [x]it! files. Features Syntax highlight

Jan Heuermann 18 Sep 19, 2022
Battle-Ship - Python-console battle ship

Battle-Ship this SHOULD work in lenux(if i spelled it wrong spam issues till I fix it) the thing that maby wont work is where it clears the screen the

pl608 2 Jan 06, 2022
Projects and assets from Wireframe #56

Wireframe56 Projects and assets from Wireframe #56 Make a Boulder Dash level editor in Python, pages 50-57, by Mark Vanstone. Code an homage to Bubble

Wireframe magazine 10 Sep 07, 2022
scap is a tool for putting code in places and for other purposes

Scap is the deployment script used by Wikimedia Foundation to publish code and configuration on production web servers.

Wikimedia 7 Nov 02, 2022
Fully coded Apps by Codex.

OpenAI-Codex-Code-Generation Fully coded Apps by Codex. How I use Codex in VSCode to generate multiple completions with autosorting by highest "mean p

nanowell 47 Jan 01, 2023
A calculator for common measurements used in sci-fi books.

Sci-fi-speed-calculator A calculator for common measurements used in sci-fi books. Author: Tyler Windmemuth Purpose: This program allows sci-fi author

Tyler Windemuth 0 Apr 22, 2022
Self sustained producer-consumer(prosumer) policy study using Python and Gurobi

Prosumer Policy This project aims to model the optimum dispatch behaviour of households with PV and battery systems under different policy instrument

Tom Xu 3 Aug 31, 2022
Laurence Billingham 1 Feb 16, 2022
A python package to manage the stored receiver-side Strain Green's Tensor (SGT) database of 3D background models and able to generate Green's function and synthetic waveform

A python package to manage the stored receiver-side Strain Green's Tensor (SGT) database of 3D background models and able to generate Green's function and synthetic waveform

Liang Ding 7 Dec 14, 2022
Here, I have discuss the three methods of list reversion. The three methods are built-in method, slicing method and position changing method.

Three-different-method-for-list-reversion Here, I have discuss the three methods of list reversion. The three methods are built-in method, slicing met

Sachin Vinayak Dabhade 4 Sep 24, 2021
Parser for the GeoSuite[tm] PRV export format

Parser for the GeoSuite[tm] PRV export format This library provides functionality to parse geotechnical investigation data in .prv files generated by

EMerald Geomodelling 1 Dec 17, 2021
Курс "Искусственный интеллект и машинное обучение"

Искусственный интеллект и машинное обучение О курсе Данный репозиторий содержит в себе сопроводительный учебный материал для курса "Искусственный инте

Dmitry Aladin 19 Dec 04, 2022
ABT aka Animated Background Tool is a windows only python program that makes it that you can have animated background.

ABT ABT aka Animated Background Tool is a windows only python program that makes it that you can have animated background. 𝓡𝓔𝓐𝓓 𝓜𝓔, An Important

Yeeterboi4 2 Jul 16, 2022
Заглушки .NET библиотек для IronPython

Код репозитория основан на ironpython-stubs. Выражаю gtalarico бесконечную благодарность за вклад в развитие сообщества разработчиков скриптов и плаги

12 Nov 23, 2022
A complex language with high level programming and moderate syntax.

zsq a complex language with high level programming and moderate syntax.

an aspirin 6 Jun 25, 2022
The ROS package for Airbotics.

airbotics The ROS package for Airbotics: Developed for ROS 1 and Python 3.8. The package has not been officially released on ROS yet so manual install

Airbotics 19 Dec 25, 2022
OnTime is a small python that you set a time and on that time, app will send you notification and also play an alarm.

OnTime Always be OnTime! What is OnTime? OnTime is a small python that you set a time and on that time, app will send you notification and also play a

AmirHossein Mohammadi 11 Jan 16, 2022
Writeup and scripts for the 2021 malwarebytes crackme

Malwarebytes Crackme 2021 Tools and environment setup We will be doing this analysis in a Windows 10 VM with the flare-vm tools installed. Most of the

Jerome Leow 9 Dec 02, 2022