Setup of 100 Repetier-Servers

Hey, we are currently evaluating our options of how to handle our future print farm. For Repetier, the general idea would be the following:
Use one instance of Repetier-Server (on a desktop PC) which acts as a master. We would then upload all of our projects to this server.

Every printer got a raspberry pi running Repetier-Server. Each one would have the master server setup as an alternative server with access to the master servers projects. Projects do not get uploaded directly to each Pi's repetier server, they all access the master for that.

1. When I start a print on any Printers Repetier-Server from one of the masters projects, will the master server "stream" the gcode file chunk by chunk or will the gcode be fully transferred to the printers Repetier Server before the print starts?
2. Will the master PC be able to handle 100 printer Repetier Servers simultaniously? (everything connected with ethernet)

Thank you!


  • 1. Prints only work from local print queue, so when you select a print in Project it gets copied, analysed and printed. So as soon as print starts master can die without issues.
    2. This is no standby connecton so having 100 servers accessing the projects is no problem. Only during browsing and once per minute for reachability test is is queried. Also I have no 100 pis for testing I see no problem with that solution.
  • Alright, sounds good, thank you!

    One follow up question to 1:
    Is that copied file a temp file or would we have to erase content by time to time to prevent disk space getting used up?
  • Printed files get deleted when to print counter is 0. Only if you abort it, it stays normally (see config settings) so you can reprint again without uploading. If you select to have no print queue in printer config it always gets deleted after print, but you loose all advanteges of the queue.
  • Hey, me again.

    With above described setup (1 master with lots of projects, many clients that access the master), we want to fully automate print starts. The call for that will most likely end up somehow on the Master PC in a python script with information about which printer to start, the project and the file.
    I looked into the API and there seem to be two ways to do this, using websocket or GET.
    Websocket is not documented (what are the inputs?) and I assume, the response will be kind of immidiately as the client will retrieve the file from the master before printing and that might take a while?

    Print a G-Code in a Project

    registerAction("projectPrintFromProject", &actionProjectPrintFromProject);

    Second would be a POST-Call:


    Upload a job to the queue. Optionally start printing it if no print is running.

    http://localhost:3344/printer/job/<slug>?a=upload&autostart=<autostart>&name=<NewName>&sess=<session key>
    This way my approach would be to first download the gcode from the master (which is basically just retrieving the file from local storage), then upload it to the according printer.

    1. Is there a preferrable option for reasons that I do not know?
    2. Is there something else I have to keep in mind?

    Option 2 (POST) looks like a no brainer for me, but I want to be sure before I start developing.

  • It is more or less the same. Option 1 does query the file from master and stor it in job queue and in solution 2 you send it yourself in same queue. So results are identical and both send file once over network.

    For option 2 just ensure the file upload has the parameter name "filename" which is important in newer server versions.
Sign In or Register to comment.