Skip to content

Commit

Permalink
readme: new readme design
Browse files Browse the repository at this point in the history
This patch adds the new base for the README design.

Signed-off-by: Amy Parker <[email protected]>
  • Loading branch information
amyipdev committed Jul 24, 2023
1 parent af7d631 commit 3a26d8e
Showing 1 changed file with 41 additions and 33 deletions.
74 changes: 41 additions & 33 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,51 +1,59 @@
# ssvp: server statistics viewer project
<div align="center">
<h1>ssvp: the server statistics viewer project</h1>
</div>
<div align="center">

This project is in a very early development stage. It is usable,
and you can view an example invocation [for my homelab](https://status.amyip.net),
but it is nowhere near production-ready yet.
![GitHub](https://img.shields.io/github/license/amyipdev/ssvp) ![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/amyipdev/ssvp)

There is not currently an organized installer. If you want to try
it out, make sure you have the following dependencies installed for
your system (package names dependent on distribution):
</div>

- sass
- python3 with pip and venv
- nodejs and npm
SSVP is a lean, efficient status dashboard and uptime tracker for servers and services. It provides:
- A clean, easy-to-understand interface for your users to understand uptime metrics.
- A lightweight data collection platform supporting your existing back-end stack.
- An easy-to-interact-with API for more advanced data analysis.
- Support for tracking through a wide variety of methods, getting around any hurdles your stack creates.
- (WIP) Alerts for developers and users to stay on top of your platform.

You also must have:
You can view a live version run by the project owner at https://status.amyip.net.

- A working MySQL or MariaDB server
The main thing that differs SSVP from other status pages is that it's designed for users first. It's AGPLv3-licensed and will always be free-as-in-freedom software, unlike many alternatives. It's also designed to be run externally, open to users; you don't have to expose any data you don't have to, which can help prevent side-channeling attacks.

And, we recommend (while SSVP is still in development):
## Installation

- tmux
> These installation instructions will be better developed in the future. For now, they are meant for advanced users only.
Step 1: Copy srv/ssvp-config.json.example to srv/ssvp-config.json
A more streamlined way to install SSVP is currently in development. Until then, you can:
1. Install the npm and Python dependencies (in a venv).
2. Copy `srv/ssvp-config.json.example` to `srv/ssvp-config.json`, and configure it.
3. Run `make` to compile the Sass and Typescript.
4. Add a runner for `srv/interval.py` to run on intervals (ideally every 1-5 minutes) in your crontab.
5. Launch `srv/app.py` in a persistent environment (such as tmux).

Step 2: Configure that file with your relevant information
(the only currently supported test module is ping)
## Contributing

Step 3: Make a venv (`python3 -m venv venv`), activate it
(`source venv/bin/activate`), and install
Python dependencies (`pip3 install -r requirements.txt`)
There are two main ways you can help contribute to SSVP:
1. Use SSVP, and report any bugs you find in Issues.
2. Fix bugs and implement new features via PRs.

Step 4: Set up a cron job to run srv/interval.py
(recommended is 5 minutes, but any interval works)
More detailed contribution instructions will be available at a later time.

Step 5: Install node dependencies (`npm i`)
## Limitations and Future Features

Step 6: Compile sass and typescript (`make`)
A list of planned features is available [here](https://github.com/amyipdev/ssvp/issues/1); if there's something you want included that isn't yet available, feel free to develop it and submit a PR!

Step 7: Launch the web server (`flask --app srv/app.py --host :: --port 80`)
## Licensing

> You may want to do this in tmux.
This project was made by Amy Parker/amyipdev.

Please note that only Linux is fully supported. Other OSes may
not work or may require special workarounds, such as having to use
a single network stack (IPv4-only or IPv6-only) or requiring
interval.py to be run with superuser/administrator permissions.
Copyright 2023 Amy Parker, [email protected].

Currently, support is highest-level for Debian 12 and Fedora 38.
SSVP is licensed under the AGPLv3. You can view the license in the LICENSE file.

## Inspiration

The project draws heavy inspiration from the design and setup of https://discordstatus.com, which runs on [Atlassian Statuspage](https://www.atlassian.com/software/statuspage).

It also draws inspiration from [Uptime Kuma](https://github.com/louislam/uptime-kuma). Uptime Kuma is great as an internal status page, and I would highly recommend it if the main intention of your status page is to be used internally instead of externally.

I wanted to work on a project which would give me a chance to do some web design, something I generally hate, and learn frameworks like Bootstrap and TypeScript.

HTTPS will be available in the future. Until then, you can run
it through a reverse proxy like nginx.

0 comments on commit 3a26d8e

Please sign in to comment.