CubeCoders / AMPTemplates

For the AMP community to share Generic Module templates.
MIT License
93 stars 286 forks source link

[Software] Uptime Kuma #1123

Open CostcoFanboy opened 1 week ago

CostcoFanboy commented 1 week ago

Module Request

Note: Please try setting up a configuration yourself before raising an issue to request a configuration: https://config.getamp.sh/ ***There is a newer beta version available at https://iceofwraith.github.io/GenericConfigGen/

Game Information:

Uptime Kuma is FoSS tool to show uptime of various services and can be used to push notifs on certain status down events. Just generally unbelievably useful as this would allow me to check that the server that hosts my own game servers can maintain connection with sources.

This would allow AMP users to give a public status page to their users without giving access to AMP itself.

Software Title: Uptime Kuma How to obtain: https://hub.docker.com/r/louislam/uptime-kuma Suppoted OSs: Multi as it can be dockerized Supports RCON/Console input?No

I confirm:

p0t4t0sandwich commented 1 week ago

To note, AMP's API doesn't use API keys, so awhile ago I built an authless wrapper for AMP's API so you can hook instance statuses up to Uptime Kuma (since pinging ports can be hit or miss depending on the game) https://github.com/p0t4t0sandwich/ampapi-stats-wrapper (which I may turn into a panel plugin at some point for ease of use)

CostcoFanboy commented 1 week ago

To note, AMP's API doesn't use API keys, so awhile ago I built an authless wrapper for AMP's API so you can hook instance statuses up to Uptime Kuma (since pinging ports can be hit or miss depending on the game) https://github.com/p0t4t0sandwich/ampapi-stats-wrapper (which I may turn into a panel plugin at some point for ease of use)

TIL I thought pinging Game Port of games would always be a hit. Could you elaborate as to why this could fail? Are there games that require some form of auth that only the game's client can provide? I guess that would return a rejection in of itself so at least I know the game is up šŸ¤”

Interesting add-on, will star. Thank you for the info.

p0t4t0sandwich commented 1 week ago

Some games (usually UDP based ones) don't respond right to port checkers, or don't respond as expected unless you use their specific game protocol. Lots of games should respond fine, but the random few might give you weird/inconsistent responses.

IceOfWraith commented 1 week ago

Two things to note:

This may be possible already using the NodeJS App Runner template.

It seems it supports UDP games that use Steam Query Ports. Which isn't all, but could handle a chunk.

CostcoFanboy commented 1 week ago

Two things to note:

This may be possible already using the NodeJS App Runner template.

It seems it supports UDP games that use Steam Query Ports. Which isn't all, but could handle a chunk.

I think a proper user-friendly template may be easier to consume for users.

It seems it supports UDP games that use Steam Query Ports. Which isn't all, but could handle a chunk.

Honestly, I don't really understand how "reliably pinging UDP ports" is possible. Just conceptually as a whole considering the nature of UDP, but I'm not really an SME.

I'd like to announce a $50 USD bounty on the template. Will pay through PayPal in Canadian dollars at the current exchange rate at the time of the merge of the PR.

Will try templating this next weekend when I got more free time if someone didn't already get to it.

p0t4t0sandwich commented 1 week ago

Honestly, I don't really understand how "reliably pinging UDP ports" is possible. Just conceptually as a whole considering the nature of UDP

Yeah, that's kinda the thing, with UDP the application might respond if you ping it, but it'll be more likely to respond accurately if you use the game/app/etc protocol built on UDP that it's expecting. For example you can ping a MC Bedrock server on 19132 and it might respond, but it'll for-sure respond if you use the Minecraft Bedrock server ping protocol that it's expecting.

Greelan commented 1 week ago

I've got some sympathy for a specific template given how it handles installation and updating. I will put one together

gOOvER commented 1 week ago

Uptime Kuma need an own Docker Image based on Alpine, because Ping dont work with Debian/Ubuntu images. Also some other debs are needed like chromium and cloudflared

p0t4t0sandwich commented 1 week ago

AMP doesn't really do specialized docker containers, just generalized ones. It isn't Ptero lol

gOOvER commented 1 week ago

AMP doesn't really do specialized docker containers, just generalized ones. It isn't Ptero lol

you can create an own image also for AMP, but the Base image is based on Debian. Check: Meta.SpecificDockerImage=

p0t4t0sandwich commented 1 week ago

Imo it's not needed, it would be redundant to create a special image just for Uptime Kuma

gOOvER commented 1 week ago

I just wanted to mention that some functions, such as ping, do not work with debian.

Greelan commented 1 week ago

Template functioning pretty well, including ping. Just can't install cloudflared in the standard AMP container at runtime. Otherwise docker handles the other packages (though apprise is the older bookworm version), and I don't bother with nscd

Nothing to stop a user installing all of the relevant packages on their host system and running outside docker tho

@CostcoFanboy

Greelan commented 1 week ago

Successfully monitoring a test L4D2 server too lol

CostcoFanboy commented 1 week ago

I just wanted to mention that some functions, such as ping, do not work with debian.

It would be beyond crazy if "ping" inside of a web application actually leveraged "ping" debian package.

Template functioning pretty well, including ping. Just can't install cloudflared in the standard AMP container at runtime. Otherwise docker handles the other packages (though apprise is the older bookworm version), and I don't bother with nscd

Nothing to stop a user installing all of the relevant packages on their host system and running outside docker tho

@CostcoFanboy

That's amazing, thank you I just tried it out. I'll be reaching out to you in Discord over the email to paypal this to.

Greelan commented 1 week ago

No need for payment tbh. But up to you

UK's ping (TCP) functionality does indeed use the system package. The UK official docker image is also Debian based

CostcoFanboy commented 1 week ago

No need for payment tbh. But up to you

UK's ping (TCP) functionality does indeed use the system package. The UK official docker image is also Debian 12 based

Oh wow I didn't think the software used actual ICMP packets for pings. Thank you for checking.

No need for payment tbh. But up to you

Requested-for Labor needs to be paid imo especially if I gave my word so I'd like to insist. DM'd. Thanks again!

Greelan commented 1 week ago

For actual ping (like to see if a website is up) it uses ICMP. For Steam servers I understand it uses the steam api and UDP query protocol - that's why you have to add your steam web api key

My discord profile has my Ko-Fi. But see how you go with the template first xD

CostcoFanboy commented 1 week ago

My discord profile has my Ko-Fi. But see how you go with the template first xD

I tried it out already with a couple of services doing GETs, it fits my needs :) Shame for the https but that's understandable given the limitations.

Greelan commented 1 week ago

You can whack it behind a reverse proxy, or even add your own certs to it (there are settings for that)

Greelan commented 1 week ago

https://github.com/louislam/uptime-kuma/wiki/Reverse-Proxy

Greelan commented 1 week ago

Making the template was the first time I have used UK. It's a pretty neat application imo

I set up SMTP relay (via Google) to test it and that worked well too

CostcoFanboy commented 1 week ago

You can whack it behind a reverse proxy, or even add your own certs to it (there are settings for that)

Hmmm I don't really understand how this would work within the AMP ecosystem. Worth a shot either way. Nowhere near MVP more after the main functionality. Will give it a go this weekend.

Making the template was the first time I have used UK. It's a pretty neat application imo

Yeah it's one of those insane apps that is hard to believe is free like gitea, code-server, grafana, Immich, Paperless-ngx, etc.

Greelan commented 1 week ago

Using a reverse proxy is essentially independent of AMP. If you got AMP to set up nginx for you, you can just add a nginx conf and have certbot generate the cert for an appropriate subdomain

gOOvER commented 6 days ago

Using a reverse proxy is essentially independent of AMP. If you got AMP to set up nginx for you, you can just add a nginx conf and have certbot generate the cert for an appropriate subdomain

Please read cloudflared docs; the you understand ;) Its a feature of Uptime Kuma. And its not the sense of docker, That you have to install needed packages on the hostsystem.

gOOvER commented 6 days ago

Successfully monitoring a test L4D2 server too lol

Noone said, that Uptime Kuma dont work; only some features are not working with amp ;)

gOOvER commented 6 days ago

Template functioning pretty well, including ping. Just can't install cloudflared in the standard AMP container at runtime. Otherwise docker handles the other packages (though apprise is the older bookworm version), and I don't bother with nscd

Nothing to stop a user installing all of the relevant packages on their host system and running outside docker tho

@CostcoFanboy

check uptimeKuma Bugreports ;) There is a ticket about non working Ping on Ubuntu/Debian Systems.

MB it is fixed with bookworm

IceOfWraith commented 6 days ago

Disagreeing with Greelan on something he's setup in a template...

bold

gOOvER commented 6 days ago

Disagreeing with Greelan on something he's setup in a template...

Not in any way; but he should start reading. But I'll stop here, he's always the center of the world anyway. I was just sharing my experiences ;) But let greenlan do it. Nevertheless, it's not the point of Docker that you install the required packages on the host. That's the biggest problem with AMP. I would fix that, that AMP use seperated Containers for every game, without the need to install anything on the hostsystem.

CostcoFanboy commented 6 days ago

I mean I literally tested the ping feature and it is functioning right now. You're free to help us debug this @gOOvER as I'm not able to repro on my side.

CleanShot 2024-11-15 at 12 43 11

Not in any way; but he should start reading. But I'll stop here, he's always the center of the world anyway.

Kind reminder that this is Github not Twitter. I requested a template and support and got it. Not drama and weird petty squabbles to get notified by.

IceOfWraith commented 6 days ago

Disagreeing with Greelan on something he's setup in a template...

Not in any way; but he should start reading. But I'll stop here, he's always the center of the world anyway. I was just sharing my experiences ;) But let greenlan do it. Nevertheless, it's not the point of Docker that you install the required packages on the host. That's the biggest problem with AMP. I would fix that, that AMP use seperated Containers for every game, without the need to install anything on the hostsystem.

There's nothing to fix there. Obviously you need things on your host to run things. AMP can't account for every single application. For Docker, AMP either adds the needed packages to the image or it can be included extra in the template like Greelan did here. It'd be a problem if AMP did have access to install packages on the host. That's a security risk.

IceOfWraith commented 6 days ago

I mean I literally tested the ping feature and it is functioning right now. You're free to help us debug this @gOOvER as I'm not able to repro on my side.

CleanShot 2024-11-15 at 12 43 11

Not in any way; but he should start reading. But I'll stop here, he's always the center of the world anyway.

Kind reminder that this is Github not Twitter. I requested a template and support and got it. Not drama and weird petty squabbles to get notified by.

This is true. I just like memes too much. x)

gOOvER commented 6 days ago

I'M out. "Middle of the World" handle this ;)

Greelan commented 6 days ago

The funny (and also very sad) thing is that none of my comments in this issue were directed to g*, and were aimed at communicating with and helping the OP - but g*** goes out of his way to abuse me. I'm sure there is a clinical diagnosis for this. Maybe g needs to be banned from AMP's GitHub and Discourse too

CostcoFanboy commented 5 days ago

Maybe g***** needs to be banned from AMP's GitHub and Discourse too

I would highly encourage that course of action. Distractions damage productivity.

Thanks again for the support! On another one, are you planning to commit this into the main repo? I find this tool pretty awesome and some of your other work is also incredibly useful like Redis.

Or are you keeping somewhat of a split between what you have on your personal repos versus what is on AMPTemplates?

I'm unfamiliar with the design decision as CubeCoders/AMPTemplates also seems to have Templates regarding non-gaming instances such as Python App Runners.

Greelan commented 5 days ago

Thanks for the feedback. The ultimate aim with any template I do is to merge it into the main repo. But I also want to ensure it is working acceptably first, and has the UI configured appropriately. With some servers it is just a question of time to complete what I want to do. In other cases, the server implementation is poor, or AMP is not able to handle it well, and so I don't merge it.

With UK, ideally it would come with a custom docker image that provides all its functionality. But that may not be acceptable. With Redis, I just haven't completed the UI settings.

IceOfWraith commented 5 days ago

I would highly encourage that course of action. Distractions damage productivity.

This has already been addressed. He has been causing wakes with other panels as well. We don't need negative energy like that here. Positive feedback is welcome. Arguing and false accusations of special treatment isn't cool. We care about bettering the gaming community, not who is right or wrong.

IceOfWraith commented 5 days ago

And just to clarify. Greelan is always right. So please stop trying to say he's wrong people! šŸ˜