IT/Software/Octoprint: Difference between revisions

From msgwiki
< IT‎ | Software
Jump to navigation Jump to search
Access restrictions were established for this page. If you see this message, you have no access to this page.
(initial version)
 
(not a fan of this formatting language... :()
Line 1: Line 1:
# Octoprint
Octoprint


An application to control (usb) 3d-printers over the network.
An application to control (usb) 3d-printers over the network.
Line 7: Line 7:
- monitor the progress of ongoing prints (optionally, webcams can be added to see the visual state)
- monitor the progress of ongoing prints (optionally, webcams can be added to see the visual state)


## Multi printer support
Multi printer support


- Octoprint only supports one printer per instance
- Octoprint only supports one printer per instance
Line 14: Line 14:
- this example sets up 2 instances for 2 priners, modify it to your needs
- this example sets up 2 instances for 2 priners, modify it to your needs


## Requirements
Requirements


- Debian/Ubuntu based host (RPi, Laptop, ...)
- Debian/Ubuntu based host (RPi, Laptop, ...)
Line 24: Line 24:
- Optionally: Portainer installed [manual install](https://docs.portainer.io/start/install-ce/server/docker/linux) / (ansible playbook)
- Optionally: Portainer installed [manual install](https://docs.portainer.io/start/install-ce/server/docker/linux) / (ansible playbook)


## Deploy Octoprint with 2 printers
Deploy Octoprint with 2 printers


- Reference: https://github.com/OctoPrint/octoprint-docker
- Reference: https://github.com/OctoPrint/octoprint-docker


### Deploy with Ansible
Deploy with Ansible


- local install of ansible required (ansible)
- local install of ansible required (ansible)
Line 34: Line 34:
-
-


### Manual deployment
Manual deployment


- modify the docker-compose.yml according to your printers and webcams
- modify the docker-compose.yml according to your printers and webcams

Revision as of 20:24, 2 May 2024

Octoprint

An application to control (usb) 3d-printers over the network.

- send .stl over the network (no sd cards needed) - setup and control the print - monitor the progress of ongoing prints (optionally, webcams can be added to see the visual state)

Multi printer support

- Octoprint only supports one printer per instance - in order to support multiple printers, we can deploy multiple docker containers - the different printers can then be assigned to their respective instance - this example sets up 2 instances for 2 priners, modify it to your needs

Requirements

- Debian/Ubuntu based host (RPi, Laptop, ...) - one USB port per 3d printer - Recommended: network connectivity to host (if not, only local control possible) - Optionally: one webcam per 3d-printer (needs additional USB ports) - Recommended: ssh enabled on host (needed for ansible deployment) - Docker installed [manual install](https://docs.docker.com/engine/install/ubuntu/) / (ansible playbook) - Optionally: Portainer installed [manual install](https://docs.portainer.io/start/install-ce/server/docker/linux) / (ansible playbook)

Deploy Octoprint with 2 printers

- Reference: https://github.com/OctoPrint/octoprint-docker

Deploy with Ansible

- local install of ansible required (ansible) - copy this Ansible Playbook to your local device (pb_docker-octoprint.yml) -

Manual deployment

- modify the docker-compose.yml according to your printers and webcams - make sure each instance uses it's own port - deploy the compose file on the hosts Portainer

Without Portainer:

- copy the compose file to /srv/docker/octoprint/docker-compose.yml on the host - `cd /srv/docker/octoprint` - start the containers with `sudo docker compose up -d` - check if containers are running `sudo docker ps` - check for any errors with `sudo docker compose logs -f`

``` version: '3.9'

services:

 octoprint-1:
   image: octoprint/octoprint
   restart: unless-stopped
   ports:
     - 81:80
   # devices:
   # use `python -m serial.tools.miniterm` to see what the name is of the printer, this requires pyserial
   #  - /dev/ttyACM0:/dev/ttyACM0
   #  - /dev/video0:/dev/video0
   volumes:
    - octoprint-1:/octoprint
   # uncomment the lines below to ensure camera streaming is enabled when
   # you add a video device
   #environment:
   #  - ENABLE_MJPG_STREAMER=true
 octoprint-2:
   image: octoprint/octoprint
   restart: unless-stopped
   ports:
     - 82:80
   # devices:
   # use `python -m serial.tools.miniterm` to see what the name is of the printer, this requires pyserial
   #  - /dev/ttyACM1:/dev/ttyACM0
   #  - /dev/video1:/dev/video0
   volumes:
    - octoprint-2:/octoprint
   # uncomment the lines below to ensure camera streaming is enabled when
   # you add a video device
   #environment:
   #  - ENABLE_MJPG_STREAMER=true

volumes:

 octoprint-1:
 octoprint-2:

```