Sign inSign up

kleister/kleister-api

By kleister

Updated about 7 hours ago

Server to manage mod packs for Minecraft

Image
0

50K+

kleister/kleister-api repository overview

Kleister: API server

General Workflow Join the Matrix chat at https://matrix.to/#/#kleister:matrix.org Codacy Badge Go Reference GitHub Repo Hosted By: Cloudsmith

Caution

This project is in active development and does not provide any stable release yet, you can expect breaking changes until our first real release!

Kleister is a web UI to manage mod packs for the Minecraft, initially focused on the Technic Launcher and MCUpdater. Even if there is an upstream version available the Technic Launcher at [TechnicPack/TechnicSolder][solder] I prefered to implement it in Go for the API and VueJS for the UI including some further features like uploading the mods I want to manage and even generating docker images directly out of the managed packs. Hosting Minecraft servers based on docker images works pretty cool.

Install

You can download prebuilt binaries from the GitHub releases or from our download site. Besides that we also prepared repositories for DEB and RPM packages which can be found at [Cloudsmith][pkgrepo]. If you prefer to use containers you could use our images published on GHCR, Docker Hub or Quay. You are a Mac user? Just take a look at our homebrew formula. If you need further guidance how to install this take a look at our documentation.

Package repository hosting is graciously provided by Cloudsmith. Cloudsmith is the only fully hosted, cloud-native, universal package management solution, that enables your organization to create, store and share packages in any format, to any place, with total confidence.

Prerequisites

We use mise to manage all required tools and their versions. Install it by following the official installation instructions, then run the following commands inside the repository to activate mise and install all tools defined in mise.toml:

mise trust
mise install

Build

Since all required commands ar part of our go-task taskfile the commands you got to execute are quite simple:

git clone https://github.com/kleister/kleister-api.git
cd kleister-api

task fe:install fe:build be:build
./bin/kleister-api -h

We are embedding all the static assets into the binary so there is no need for any webserver or anything else beside launching this binary.

Development

If you are using the provided DevContainers you could directly start without installing mise on your system since it will launch a feature for it.

To start developing on this project you have to execute only a few commands in multiple terminal tabs or windows:

task watch:server
task watch:frontend

The development server of the backend should be running on http://localhost:8080 while the frontend should be running on http://localhost:5173. Generally it supports hot reloading which means the services are automatically restarted/reloaded on code changes.

Security

If you find a security issue please contact [email protected] first.

Contributing

Generally we are following conventional commits when we apply changes. That way we are able to generate proper changelogs for every release. Please use always pull requests to integrate new functionalities or to fix issues.

For the release process we are following semantic versioning which clearly indicates if a new version just resolves bugs, includes new features or even includes breaking changes.

After installing the tools via mise install as described above set up the pre-commit hooks so they run automatically on every commit:

prek install --hook-type pre-commit --hook-type commit-msg

prek is managed by mise and will be available after mise install.

If you have changed something on the source you should simply commit following the mentioned conventions:

git checkout -b feat/new-feature
git add --all
git commit -m 'feat: added awesome new feature'
git push --set-upstream origin feat/new-feature

After pushing your changes into the Git repository you should create a pull request on GitHub. If the pull request have been merged and everything built fine it will also create automatically a new release at least once a week.

Authors

License

Apache-2.0

Copyright (c) 2018 Thomas Boerger <[email protected]>

Tag summary

Content type

Image

Digest

sha256:715ad79f1

Size

19 MB

Last updated

about 7 hours ago

docker pull kleister/kleister-api