invar 0.4.1

CLI management tool for modded Minecraft servers
Documentation
                    .=./:)  ,===.   .==. ,===.  ,===.    ____     .=======.    
                    \8.-.') |8@8R\  |88| |@8Y/  |8@8|  .xX888b`.  |@8^Y^88B\   
                    /8`-'8\ |88,8R\ |@8| |88|   |@8Y' /x88'  \8b\ |8( ' )8@|   
                     `-'`"` |@8|\_Y\|88| |@8| _ |88|  |888|  /@8| |(_ o _)8/   
                     .===.  |8Y_( )Y\&8| |8&Y( )Y8@|     _.-`@88| |8(_,_).' __
                     |8@8|  |&(_ o _)8@| \Y(_ o._)Y/  .X@88^8888| |8&|\Y\  |@8|
                     |88&|  |8L(_,_)\88|  \Y(_,_)Y/   |88_( )_88| |X8| \Y`'@8Y/
                     |Y8R|  |8@|    |@8|   \Y@88Y/    \Y(_ o _)Y/ |8@|  \&88Y/
                     '==='  '=='    '=='    `===`      'Y(_,_)Y'  ''='   `'='  

Invar is a CLI management tool for modded (or not) Minecraft servers. This project has the following goals:

  • Allowing you to declaratively[^1] build and configure Minecraft modpacks, which includes managing mods, resourcepacks, shaderpacks and datapacks[^2], while treating their configuration files as first-class citizens. I aim to implement fetching component data from both the Modrinth and CurseForge APIs;
  • Providing an automated setup of a Docker container with your modded minecraft server, powered by itzg/minecraft-server and docker compose, with configurable automatic backups[^3] and maintenance;
  • Being as user-friendly and informative as possible and allowing you to organize and categorize your managed components, so you don't get lost in them while playing around with hundreds of mods at the same time.

[^1]: By "declaratively", I mean having everything built from plaintext metadata (like in packwiz) and being tightly integrated with the Git VCS. One of the design concepts of this tool is to treat modpacks and servers as software source code and deployments, respectively. [^2]: There still may or may not be a need for a datapack loader mod. I'll update this when I get to implementing server-side and client-side datapack handling. [^3]: It's unliky I will be hand-rolling some sophisticated backup system. This will probably be an equivalent of an automated cp -r ./server .backups/ before you start the server and after it shuts down.

Architecture