UAMonitor - FOSS minecraft monitoring web service originally made for ukrainians
It pings all servers from DB every 10 minutes and writes results into DB (WIP autoremove)
Backend was made using Fastify as framework and Prisma as ORM, Frontend was made using SvelteKit as framework and TailwindCSS.
You can install manually or build docker container
# clone repo
git clone https://github.com/Andrmist/uamonitor.git
# move to directory
cd uamonitor
# install depenencies (pnpm recommended)
pnpm install
# or (not tested)
cd backend && npm install
cd ..
cd frontend && npm install
cd ..
# move to backend and build
cd backend
npm run migrate
npm run generate
npm run build
# move to frontend and build
cd frontend
npm run build
Currently, only way to configure is editing .env
file in /backend
But you must configure ~.env~ file before start otherwise it won’t work
cd backend
npm start
cd frontend
node ./build
Before executing next commands, make sure that you cloned repository and changed values in .env
in /backend
Also check docker-compose.yml
for changing port forwarding and other settings.
docker compose up -d --build --remove-orphans -d backend frontend
/api/graph
Returns graph servers graph data for last 24 hours:[ { "id": 3, "data": [ { "isOnline": true, "onlineCount": 12, "date": "2022-07-06T21:40:00.483Z" }, //... ] }, //... ]
/api/servers
Returns status of all servers in DB[ { "id": 3, "name": "Ukraine State", "ip": "play.ukr-state.fun", "port": "25565", "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAIAAAAlC+aJAAAAvUlEQVR4Xu3RwQnCUBBF0RdjD+6sy/DFAizMGgQ/uksDYoI7+wj63b8UMFwYOJs7u8eoKxVN6xNLDoiWA6LlgGg5IFoOiJYDouWAaDkgWg6IlgOi5YBo6oeKJh3vbDpd2TaHB5r6UtGkcmNbP4VF+/MFTZ9xh6ZlZlN7sek3s+n7ZlN7btHUJjYtU4fmg3C8cbxxvHG8cbxxvHG8cbxxvHG8cbxxvHG8cbxxvHG8cbxxvHG8cbxxvHG8cbxx/nK3aBo18jm7AAAAAElFTkSuQmCC", "link": null, // server website link if present "discord": "hE6cQXy2Uu", // server discord invite (https://discord.gg/<discord>) "telegram": "ukr_state", // server telegram invite (https://t.me/<telegram>) "statuses": [ { "date": "2022-07-06T21:40:00.483Z", "isOnline": true, "onlineCount": 12, "maxOnline": 100, "version": "Purpur 1.18.2" } ] }, //.... ]
/api/servers/<id>
Returns server status for server id:{ "id": 3, "name": "Ukraine State", "ip": "play.ukr-state.fun", "port": "25565", "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAIAAAAlC+aJAAAAvUlEQVR4Xu3RwQnCUBBF0RdjD+6sy/DFAizMGgQ/uksDYoI7+wj63b8UMFwYOJs7u8eoKxVN6xNLDoiWA6LlgGg5IFoOiJYDouWAaDkgWg6IlgOi5YBo6oeKJh3vbDpd2TaHB5r6UtGkcmNbP4VF+/MFTZ9xh6ZlZlN7sek3s+n7ZlN7btHUJjYtU4fmg3C8cbxxvHG8cbxxvHG8cbxxvHG8cbxxvHG8cbxxvHG8cbxxvHG8cbxxvHG8cbxx/nK3aBo18jm7AAAAAElFTkSuQmCC", "link": null, // server website link if present "discord": "hE6cQXy2Uu", // server discord invite (https://discord.gg/<discord>) "telegram": "ukr_state", // server telegram invite (https://t.me/<telegram>) "statuses": [ { "date": "2022-07-06T21:40:00.483Z", "isOnline": true, "onlineCount": 12, "maxOnline": 100, "version": "Purpur 1.18.2" } ] }