Skip to content

xaralis/karmen

 
 

Repository files navigation

Karmen - monitor and manage your 3D printers

Documentation Status Build status Gitter chat

Karmen aims to give its users a single place for monitoring and managing multiple 3D printers. While existing solutions such as Octoprint excel in controlling a single printer, there does not seem to be an open source platform for a multi-printer setup or even a large scale printer farm.

Our solution is a perfect fit for a shared makerspace, small batch part factory or a public school that offers multiple printers to various users.

Contributing and support

If you would like to take part in this project, hit us up on karmen@fragaria.cz or leave us a note on Gitter. You can read more in our contributing rules.

If you are interested in a more in-depth documentation, go visit our docsite.

Installation and usage

Check our documentation for up to date instructions.

Development

While it is possible to run both the Python backend and Javascript frontend as standalone projects, the most comfortable way is again with docker compose.

$ git clone git@github.com:fragaria/karmen.git && cd karmen/ # get the repo
$ mkdir tmp && docker-compose up --build
# GO VISIT http://localhost:3000/

The network autodiscovery via ARP does not work at all in the dev mode. The mDNS resolution also does not work in the dev mode due to the networking configuration. (You can enable these two features by altering the network settings of the containers, check docker-compose.release.yml for inspiration).

On the other hand, two fake virtual printers are automatically added to your envirnoment, so you have a few things to play with.

Note: If something suddenly breaks within this setup, try to clean docker with docker system prune, it might help.

Versioning and releases

If you are making a new release, you need to tag this repository and Travis does the rest. You also want to bump the version numbers in the appropriate places in source code, such as package.json, Python modules etc. That's exactly what the make-version.py script does. So the release procedure would be:

$ VERSION=1.2.3
$ python make-version.py $VERSION
$ git add src/ docs/ && git commit -m "Version $VERSION" && git tag "v${VERSION}"

License

All of the code herein is copyright 2019 Fragaria s.r.o. and released under the terms of the GNU Affero General Public License, version 3.

About

A common interface for multiple 3D printers

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Python 63.8%
  • JavaScript 20.7%
  • CSS 9.6%
  • Shell 3.8%
  • TSQL 0.6%
  • HTML 0.6%
  • Other 0.9%