Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Software] Uptime Kuma #1123

Open
4 of 6 tasks
CostcoFanboy opened this issue Nov 9, 2024 · 38 comments
Open
4 of 6 tasks

[Software] Uptime Kuma #1123

CostcoFanboy opened this issue Nov 9, 2024 · 38 comments

Comments

@CostcoFanboy
Copy link

CostcoFanboy commented Nov 9, 2024

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:

  • that I have searched for an existing module request for this application.
  • that the server is an official server distributed by the games publishers/developers.
  • that the server is available to the general public.
  • that the server can be run headless (without a GUI).
  • I have already attempted to create a configuration myself using the configuration tool
  • that my checkboxes above look like the one on the left (remove this line when done)
@p0t4t0sandwich
Copy link

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
Copy link
Author

CostcoFanboy commented Nov 9, 2024

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
Copy link

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
Copy link
Collaborator

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
Copy link
Author

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
Copy link

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
Copy link
Collaborator

Greelan commented Nov 10, 2024

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

@gOOvER

This comment was marked as abuse.

@p0t4t0sandwich
Copy link

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

@gOOvER

This comment was marked as abuse.

@p0t4t0sandwich
Copy link

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

@gOOvER

This comment was marked as abuse.

@Greelan
Copy link
Collaborator

Greelan commented Nov 13, 2024

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
Copy link
Collaborator

Greelan commented Nov 13, 2024

Successfully monitoring a test L4D2 server too lol

@CostcoFanboy
Copy link
Author

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
Copy link
Collaborator

Greelan commented Nov 13, 2024

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
Copy link
Author

CostcoFanboy commented Nov 13, 2024

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
Copy link
Collaborator

Greelan commented Nov 13, 2024

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
Copy link
Author

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
Copy link
Collaborator

Greelan commented Nov 13, 2024

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

@Greelan
Copy link
Collaborator

Greelan commented Nov 13, 2024

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

@Greelan
Copy link
Collaborator

Greelan commented Nov 13, 2024

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
Copy link
Author

CostcoFanboy commented Nov 13, 2024

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
Copy link
Collaborator

Greelan commented Nov 13, 2024

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

This comment was marked as abuse.

@gOOvER

This comment was marked as abuse.

@gOOvER

This comment was marked as abuse.

@IceOfWraith
Copy link
Collaborator

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

bold

@gOOvER

This comment was marked as abuse.

@CostcoFanboy
Copy link
Author

CostcoFanboy commented Nov 15, 2024

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
Copy link
Collaborator

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
Copy link
Collaborator

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

This comment was marked as abuse.

@Greelan
Copy link
Collaborator

Greelan commented Nov 15, 2024

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
Copy link
Author

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
Copy link
Collaborator

Greelan commented Nov 16, 2024

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
Copy link
Collaborator

IceOfWraith commented Nov 16, 2024

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
Copy link
Collaborator

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants