Giter VIP home page Giter VIP logo

ssvp's Introduction

Amy Parker      (she/her/hers)    amyip.net    

👋🏼 Hi there! I'm Amy, a junior at California State University, Fullerton.

🦀 I primarily work in Rust, with additional usage of Python, C, and TypeScript.

🐧 My development and research interests are primarily in systems programming, distributed systems, networking, and tunnels/VPNs.

⚖️ I also have interests in the law, particularly regarding open government, public records, and freedom of expression.

📬 You can contact me by email (GPG for encryption) or on Mastodon.

ssvp's People

Contributors

amyipdev avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Forkers

senoraaron

ssvp's Issues

activitypub

have event updates be available via activitypub in addition to rss, email, etc

interval multiprocessing at a higher number

A current concern is that because of the amount of I/O overhead, there's a lot of downtime for subprocesses. Perhaps the amount of pool workers should be 4*nproc, or even more.

[bug] uptimes not updating correctly

While the all-time uptime is updated correctly (or at least it appears to be - might have issues of its own), the monthly and yearly uptimes are not being done correctly. This may be because of the usage of intervals.

autoevent

have an option to automatically create an event on toggle - when admin alerts are created this should be trivial

indicate SSVP version in web interface

there should be a way to indicate the SSVP version in the web interface

also, does this mean we should switch to + at the end of WIP releases to indicate git?

system requirements

this should be put in the documentation as a specification, and also autodetected when running certain scripts

of course for this we need to determine the minimum viable versions of different software

perhaps this could be overall done with a check_dependencies.sh or python script? this could check for other software dependencies as well as correct versions. python might be easier for handling semvers

use html for tooltips

the popovers should use html so we can get colored text, and a table for explaining events

Install script components

  • Config generator
  • Database initializer
  • Cached stats initializer
  • make install
  • Wrapper file (runs everything, calls make install)

New Features Mainlist

The following are all of the newly proposed features:

  • Native SSL support
  • SSL toggleswitch: done
  • Actual SSL implementation: done
  • Automatic port selection: done
  • ACME: done
  • Internationalization
  • Cookie setting support (TS-handled via navbar dropdown): not done
  • Cookies read by server: not done
  • HTML i18n support: not done
  • TS i18n support: not done
  • Spanish translation: not done
  • Chinese translation: not done
  • Minification
  • CSS: not done
  • JS: not done
  • HTML: not done
  • Services
  • Card: done
  • Backend: done
  • PostgreSQL support
  • Events support
  • SQLite3 support
  • InfluxDB support
  • MongoDB support
  • Basic module set:
  • ping: done
  • http: done
  • tcp: done
  • ssvplwc: done
    • server-side: done
    • client-side: done
  • Autorefresh every 60 seconds
  • Distribution
    • .deb: not done
    • .rpm: done
    • PKGBUILD: not done
    • nix: done
  • Install script
  • make install
  • AGPLv3-ification
    • SPDX headers: done
    • LICENSE file: done
  • README
  • Offer WSGI server options
  • API Latency Module
  • Bar Tooltips
  • Internal Mode
  • Login System (also allow internal mode to be displayed without login)
  • Modules (RAM, CPU, disk, network) (each one can be enabled/disabled by adding them into a json list, list is dynamically fetched, modules in order)
  • All available modes (disabled, login - front page shows internal, login required, nologin - front page shows internal, dual - /internal requires login and shows internal, / is standard and doesn't require login, jinja-added nav option for /internal called "Advanced")
  • Alerts
  • Internal: canceled feature in favor of email system
  • External: RSS, Atom done, activitypub, email not done

There are plenty more already planned ideas to add to this list, and they will be added eventually. Newly proposed ideas will also be added.

This list is dynamic; it will update as new ideas are presented, and as they are completed.

signed RPMs

fedora/EL want signed RPMs but its not mandatory

its mandatory for SUSE

shebang all bash files

All bash files should have shebangs. This doesn't need to be done for Python since we don't support running Python directly (fileperms & 111 = 000)

ci/cd

we need testing suites for a lot of this - difficult, but still possible

needs to support a large variety of platforms (debian, ubuntu, fedora, centos, alma, rocky, nixos, etc)

EL requires different packages

Trying to build RPMs on Enterprise Linux has the following issues:

  • nodejs-npm -> npm, which affects:
    • building RPMs (must patch the specfile)
    • the dependency autoinstaller (from install.sh)

consider using tbody

<tbody> is not required, when there is no other table section, but it is recommended. Firefox automatically inserts it. We should consider doing the same as well.

quick restart

add quick reload functionality for gunicorn

this could be made easier with systemd

nixpkgs

get in nixpkgs - requires several changes, such as adding meta fields

Python DB-API generalization

SQLite3, PostgreSQL, and MySQL may be able to be abstracted (share most of the same code) via DB-API; this should be looked into

linting

pylint, cargo fmt, eslint, etc

uninstaller

In case someone wants to remove SSVP, there should be a clean uninstaller

switch to bigints

databases might want to consider switching to bigints/bigserial for eventID in ssvp_events

indicate the need to create ghost entries

lots of things fail without ghost entries in some categories. make sure people run interval.py first, also clarify any other entries that need to be pre-made first (like cached stats?)

services in gen_config

gen_config sets up servers but not services. probably should dedup the code since it's the exact same for both of them

pre-tag checklist

A checklist should be made that is run through before tagging a release.

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.