fennec π»
the app-for-all-apps helper~
Overview
managing and maintaining so many discord apps is a lot of work!
being the lazy bean that i am, i decided to create fennec π»: a conglomerate of different projects that provides a drop-in cross-project standardisation to help with logging and monitoring of all of my apps!
wonder what makes up fennec π» and how i include those tools in my workflows? keep on reason~
ποΈ the different components of fennec
-
Cloudflare:
Workers
using
itty-router -
named
fennec-utilities, this is a serverless RESTful API that works together with the
@magicalbunny31/fennec-utilitiespackage (see below) which interfaces with the
Discord API
and
Google Cloud:
Firestore
APIs
-
@magicalbunny31/fennec-utilities -
this is a github package developed as an API wrapper for
fennec-utilities(see above) - it helps with displaying logs to developers via fennec π» and also displaying announcements, managing blacklists, and marking apps as offline for maintenance to users
- fennec π» discord app and fennec websockets
-
each of my physical and cloud servers (which run my apps) are named
fox-xandwolf-x -
servers prefixed with
fox-are my own physical servers (running using various
Raspberry Pi
boards) and have a 0-based index which defines the order in which i got the server in
-
for example,
fox-0represents my oldest server,fox-1represents my second oldest server, and so on.. -
servers prefixed with
wolf-0are my own cloud servers (running on various platforms, such as
Google Cloud:
Compute Engine)
and have a 0-based index which defines the order in which i got the server in
-
for example,
wolf-0represents my oldest server (and currently my only offside cloud server too) -
fennec π» runs on all
fox-xandwolf-xservers -
the main fennec π» instance runs on
wolf-0, a server that persistently kept online, and provides the hosting for the fennec π» and as well as an authenticated websocket server -
all other fennec π» instances (on all
fox-xand allwolf-xservers, includingwolf-0for simplicity's sake) are websocket clients to the websocket server towolf-0 -
the main fennec π» instance on
wolf-0provides the interface (via
Discord)
and sends requests to other fennec π» instances connected to the websocket to provide tools to help monitor apps running on the respective server
-
for example, the main fennec π» instance may issue commands to a specific server, such as
fox-0, to perform functions like restarting a specific app, viewing its console's logs, monitoring its resources, and even restarting the server itself -
having such commands baked into fennec π» helps my workflow by automating tasks, allowing access to my servers outside my home network (don't worry, i also use
Tailscale
to provide a vpn connection~), and doing other tedious tasks that would save me from having to login with ssh
images