Name of the organization or individual submitting the proposal: Michał Maj (individual)
Describe your project.
The goal of the project is to create portal allowing users to register for notification when their hostd node goes down. I am planning on creating the following monitoring channels:
two independent watchdogs (1 in EU and 1 in US), which will contact nodes via RHPv2 and RHPv3 to check if they are reachable
optional software to be run on the same machine as hostd, that will send ping messages to these watchdog satellites, allowing for quicker debugging (is the whole machine down or just RHP communication issue?)
Users should be able to register for the following ways of notification:
E-mail notification
SMS message
This service is meant to be free. All costs should be covered by grants.
This grant is just for creation of the service and first few weeks of operation. If it succeeds, I will open next grant to secure funds for the service to remain free in long-run.
Who benefits from your project?
Anyone who is running hostd.
How does the project serve the Foundation’s mission of user-owned data?
Self-hosting such watchdogs makes hostd unnecessarily expensive and requires technical knowledge. Providing such portal for free should increase interest in Sia compared to its competitors (who have this feature built-in btw).
Grant Specifics
I estimate project can be up and running for around 2-3 months given I receive total amount of 2500$. This includes:
VPS for 4 months
Pack of around 1000 SMS worldwide (we will se how quickly it gets eaten up before next grant)
Salary for me
Timeline is as follows:
August - examine what can be extracted from RHP and what’s the best way of doing it (running hostd locally and querying it or maybe custom partial implementation of RHP)
September - by the end of the month portal should be up and runnning
October - getting feedback on how it works, improvements. If everything works out - applying for next grant with longer timeframe.
Potential risks that will affect the outcome of the project:
Well, there are only three things that might harm the project:
My potential lack of time (I am heavily involved into non-technical voluntary work) - the product will be delivered, it just might be a month later.
Lack of interest from the community
I am not front-end developer by any means, so portal may come out a little unintuitive. But I will do my best.
Development Information
Will all of your project’s code be open-source? Yes, but I don’t promise there will be documentation on how to run/self-host it (there obviously will be documentation on how to set up additional local watchdog).
I’m currently using UptimeRobot (for over a year) which has an app for my iphone. I get alerts within 5 min of a problem on the server and it’s currently free for up to 50 servers.
Thanks for your proposal! After seeing the value in another tool for host reliability and stability, the committee was happy to approve this grant request.
We’ll reach out via email with onboarding instructions.
Regards,
Kino on behalf of the Sia Foundation and Grants Committee
This month no progress has been done, except completing onboarding and signing agreement. The whole schedule is going to be shifted by two weeks (it’s already included in the agreement). Additionally my friend decided to help me make project happen and he will be responsible for front-end.
Additionally, our plan is:
Using React for front-end
Prisma + MySQL/MariaDB as database
ExpressJS as backend framework
satellites written in Go (because of existing codebase for RHP)
satellites connected to main instance via wireguard
This month I will be working on:
Checking what can be extracted from RHP
Specifying what technologies we will be using
Maybe setting up VPS? We’ll see
Writing front-end and maybe some mock-up for back-end
we are currently using Prisma + PostgreSQL but I am not sure if it’s better than MySQL or not - any advices?
Caching some data in redis (volatile cache, empties on restart)
ExpressJS as backend framework
satellite for RHP written in Go, satellite for extra app written in JS
extra app written in C++ and GTK3
We have:
written substantial part of the backend, including syncing data from extra app to the database (WIP)
created basic frontend, but there’s lots of work to be done (WIP)
created skeleton for extra app and tested that it works both with Windows and Linux, and data gets synced into backend
bought domain
bought VPS
completed RHP satellite (but not tested yet)
This month I will be working on:
Finishing frontend
Finishing backend
Implementing e-mail and SMS alerts
Finishing sign-on using Google and Microsoft
Finishing RHP satellite
Closed alpha tests for users that are willing to participate
Next month I will be working on:
Finishing and packing up extra app to be easily usable
UI/UX improvements
Maybe collecting more data than just heartbeat? Like HDD temperatures, SMART status etc.
Open beta
Writing new grant for keeping the project alive during 2024
All of the code is available in our main repo.
You can see some of the UI at https://sia.watch using login nobody@all and empty password until Monday (2.10.2023). We will be removing local log-in functionality in upcoming week and replacing it with Google/Microsoft sign-on, which will allow only trusted members to log-in until open beta begins.
You posted to us in November that you experienced delays with your grant project and have not received additional information from you this month regarding progress on your previously posted goals. Please provide an update soon.
Regards,
Kino on behalf of the Sia Foundation and Grants Committee
Hi! Sorry for the delay, I had a busy time lately.
Website is ready for open beta, I have opened registration posibility. You can add your hostd node and receive SMS and/or e-mail notification when it dies. It will be pinged via RHP v2/v3.
At this point I consider the grant to be finished. Interest seems to be low, nobody signed up for closed alpha… I will try to make extra monitoring app production-ready (packaged with installer etc) on the best-effort basis, but if there will be less than 10 people using the app I consider adding extra features like HDD temperatures/SMART status pointless.
I can’t guarantee website is bug free, since noone besides me participated in closed alpha. If any bugs arise, I will surely fix them (if reported via email I given above).
Hi @maju, I tried accessing and after logging in with my google account, get a success message then a server unavailable message. I can see a 401 on /api/user/me but you said registration should be open?
Hi,
If I understand logs correctly, you are using Chrome. I tested page using Chromium on my PC and it worked fine. I will try to debug it, however could you tell me if it works when you use Firefox?
EDIT: I think the bug has been fixed. It should now work on Chrome too.
Yes I can access the host setup now. I might recommend some tooltips or grey’ed out examples in the fields to assist with the setup. How should the all fields be defined? What is extramon?
Good point. We’ll add them, but after Christmas. For now there’s some hints on how to set it up:
Open dialog for adding new host
Enable RHP and disable Extramon
Open your hostd dashboard, and copy details from here
Set deadtime. After this much time without proper ping response, host will be considered dead and notification will be sent.
I would actually love to hear back if things work as expected. If not, please send me screenshots and description of what went wrong to [email protected].
This is screenshot from Sia hostd app, not from my website. It is showing where to find values needed for setting up host on my website. Sia logo is not used on my website anywhere.
Just a suggestion, but you might want to add login with email (with verification process) rather than just google. Not everyone has or wants a google account.
That’s deliberate decision to delegate log-in process to 3rd party. I really don’t want to deal with it. You can suggest another 3rd party if you want. Github seems to be fairly popular in tech community, but if you have Github then you probably have Gmail too.
@tizzputt’s issue regarding bad reported status in GUI has been resolved