Giter Club home page Giter Club logo

piku-dashboard's Introduction

Piku Dashboard

Screenshot

Piku dashboard is a management interface for apps running in piku. It is itself an application that runs inside of piku (so meta!).

Piku dashboard handles most runtime viewing and management concerns:

  • Viewing Host information
  • Viewing Logs
  • Viewing and managing Config values
  • Managing Application lifecycle (Starting, Stopping, Restarting)
  • (WIP) Managing worker scaling
  • Destroying applications

Piku Dashboard tries to delegate to the ~/piku.py script whereever possible, to avoid re-implementing behaviour present in the original script (and subsequently create hidden dependencies.).

Structurally, it is a python/flask web app with basic authentication.

Quick start

  1. pull this repo, and deploy to your piku instance using git:
git remote add piku [email protected]:piku_dashboard
git push piku master
  1. Set config keys for session management and basic authentication:
# shown here using the piku operator helper
piku config:set SECRET_KEY=abcdef123456790 USERNAME=bob PASSWORD=asdfghjkl0

# You can set other settings, like port number, etc, as you would with any piku app
  1. Navigate to the hosted piku_dashboard and start managing your apps. The default port is listed in the ENV file.

piku-dashboard's People

Contributors

corvimia avatar rwnx avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

piku-dashboard's Issues

Add User Management

  • piku-dashboard should start with a default admin/password configuration
  • should be able to view, create, update and delete users to grant access to the platform
  • a use with config/push rights should be able to reset the password state of the dashboard (i.e. by changing a config setting)
  • admin should be prompted to reset password on first login

Technicals

  • without a database, data could be serialized and stored in piku-dashboard's config variables
  • passwords should be stored hashed

Detect dashboard app name

detect the dashboard app name by looking at the app directory, and remove the requirement to specify this in the environment.

New Version Link is displayed when app is already up-to-date

The new version detection introduced in #34 is showing up when the app is already up to date.

Below: a screenshot of the piku_dashboard app at the current commit, and following the link through shows the same commit sha.

Technical stuff:

  • I think this is because short git commit SHAs are actually 7 characters, not 6, like we slice them here
  • I think we should avoid this entirely by returning the entire SHA from get_github_sha and use a startswith match in the template.

image

image

Visually hide configs by default

At the moment the config page just displays the form values in plaintext.

Ideally, these values should require pressing a button to reveal.

image

Hash password env

It would be nice if the password environment config (or however we're storing it) wasn't just the password in plaintext.

Add version readout

  1. add a version to the app in a __version__ var
  2. display this somewhere in the app

Improve error handling

  • When a fatal error occurs, page returns a generic 500 error
  • It could display more information about the error
  • It could display logs from the self_app

Thanks for making this!

First, sorry for writing an issue about this. But I figured that it would be easiest way to get in touch with you and knowing that code you wrote is being used is a great feeling.

I use this since 5 months and it is really great! I share my server with friends and this gives them easy access to logs and restarts etc. It has been really great so far and thanks for building this.

Add Linting

  • Establish a canonical formattings style and linter (Black?)
  • capture version (some format like dev-requirements.txt: do not put this in the main requirements.txt otherwise piku will install it on deploy)
  • Add documentation for running the linter
  • Run the linter on the project (and commit the result)

Add author info

e.g.

made with love by Rowan ✨

or something soppy like that

check when piku_dashboard is out of date

  • we know the current commit SHA of the dashboard app
  • we know the current main/version on the public github?
  • The app should be able to tell you if it's out of date
  • the app should link you to the latest version

image

Permissions

Requires User Management #20

  • it should be possible to grant users permissions to specific applications or

grant list (per app)

  • can restart
  • can view logs
  • can destroy
  • can manage config

Technicals

  • store this as a bitmask? for size.

Add "remove config"

  • I should be able to remove a config key from the "Manage Config" Screen
  • This should be a button for each config item (suggestion pictured)

image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.