2025-10-02 00:29:29 +02:00
tes
2025-10-02 00:29:29 +02:00
tes
2025-10-02 00:29:29 +02:00
2025-10-01 20:39:19 +02:00
tes
2025-10-02 00:29:29 +02:00
tes
2025-10-02 00:29:29 +02:00
2025-10-02 00:29:28 +02:00
tes
2025-10-02 00:29:29 +02:00
2025-10-01 20:39:19 +02:00
tes
2025-10-02 00:29:29 +02:00
tes
2025-10-02 00:29:29 +02:00

Website for TFMC (teknisk fysiks minecraft server)

[] Add integration for playerstatistics across servers - We have to read the jsons in world (i have example for two worlds) - we have to get the uuid as stats are saved in uuid - convert playername to uuid maybe? is there an api? - Would be nice to see playtime and block usage over all the different servers + a total. for example using edc64... uuid i would like to see total amount of diamond collected on all worlds and also diamond per world in a list. [] Add a nice site for TFMC with information about the server. [] Add statistics of online status on the server? - Graphs of players online? - Show total players that have played on server? - [] Registering form with email authentication so only UMU university students can join. (link email to minecraft account for whitelist) - This could be done via rcon maybe? and have a separate list of players that have registered.

[] Build this entire website and management via docker for easier release? - We could use environment variables and maybe also add volumes with the player files like mounting ./minecraftserver/world/stats:/status/server1:ro or something? - Maybe use integration with itgz, and get variables from those servers? via for example docker sock? or would that be to insecure? [] Maybe integrate chat with discord via rcon? - Base on existing project? This one exist and could maybe be useful? https://github.com/destruc7i0n/shulker

Shulker Discord-Minecraft Bridge (Dockerized)

This repo includes Shulker as a Git submodule under external/shulker, plus a Docker setup so you can run it and mount your Minecraft logs as a volume.

Prereqs

  • Docker and Docker Compose installed
  • A Discord bot token and (optionally) a Discord channel webhook
  • Your Minecraft server configured with rcon and accessible logs

First-time setup

  1. Initialize and update submodules:
    • git submodule update --init --recursive
  2. Configure environment variables (create a .env in repo root or pass via CLI):
    • DISCORD_TOKEN=... (required)
    • DISCORD_CHANNEL_ID=... (required if not using webhooks only)
    • WEBHOOK_URL=... (if using webhooks)
    • MC_LOGS_DIR=/absolute/path/to/your/minecraft/logs (defaults to ./Worlds/tfmc23-24/logs)
    • IS_LOCAL_FILE=true to tail logs directly (recommended when logs are mounted)

Run

Start the service (from repo root):

docker compose up -d --build shulker

On first run, /data/config.json will be created from config.example.json. The container will symlink it to /app/config.json and set IS_LOCAL_FILE and LOCAL_FILE_PATH to /minecraft/logs/latest.log by default. You can edit config.json by entering the container or by stopping the container and editing the file in the named volume.

Expose the Shulker webhook on port 8000 if you want to send remote hooks instead of tailing logs. For remote setup, set IS_LOCAL_FILE=false and follow the command in Shulker's README to pipe log lines to the webhook.

Volumes

  • shulker_data named volume stores config.json.
  • ${MC_LOGS_DIR} (host) is mounted read-only at /minecraft/logs (container). Ensure this path contains latest.log.

Updating Shulker

Shulker is a submodule:

git submodule update --remote external/shulker

Rebuild the image after updating:

docker compose build shulker && docker compose up -d shulker

Notes

  • Node 16+ is required; the Docker image uses Node 18 Alpine.
  • If your server is modded, you may need to adjust REGEX_SERVER_PREFIX per Shulkers FAQ.
  • For RCON features, set MINECRAFT_SERVER_RCON_* in config.json and ensure your server has rcon enabled.
Description
No description provided
Readme 213 KiB
Languages
Shell 76.4%
Dockerfile 23.6%