A web-based application for managing 3D printers at McKinnon Secondary College. This application provides a dashboard for monitoring and controlling both PrusaLink and Moonraker-based 3D printers.
- Real-time monitoring of 3D printer status
- Support for both PrusaLink and Moonraker (Klipper) printers
- File uploading and management
- Print job tracking
- Printer grouping for organizational management
- User authentication and role-based access control
- Webcam integration for remote monitoring
- Frontend: Next.js, React, TailwindCSS
- Backend: Next.js API routes, Prisma ORM
- Database: SQLite (default), compatible with PostgreSQL
- Authentication: NextAuth.js
- 3D Printer Integration: PrusaLinkPy, Moonraker API
The application is available as a Docker image that can be pulled from Docker Hub:
docker pull yourusername/mck3dprintfarm:latestOr use a specific version:
docker pull yourusername/mck3dprintfarm:1.0.0docker run -p 3000:3000 -v ./data:/app/data yourusername/mck3dprintfarm:latestCreate a docker-compose.yml file:
version: '3'
services:
mck3dprintfarm:
image: yourusername/mck3dprintfarm:latest
ports:
- "3000:3000"
volumes:
- ./data:/app/data
restart: unless-stoppedThen run:
docker-compose up -d- Clone the repository
- Install dependencies:
npm install
- Install PrusaLinkPy:
pip install prusaLinkPy
- Generate Prisma client:
npx prisma generate
- Build the application:
npm run build
- Start the server:
npm run start
Create a .env file with the following variables:
# Database URL
DATABASE_URL="file:./data/dev.db"
# NextAuth.js
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET=your_secret_key
The repository is configured with GitHub Actions to automatically build and push the Docker image to Docker Hub when changes are pushed to the main branch.
To use the GitHub Actions workflow, you need to add the following secrets to your GitHub repository:
DOCKERHUB_USERNAME: Your Docker Hub usernameDOCKERHUB_TOKEN: Your Docker Hub token (create one in Docker Hub account settings)
This software was developed for McKinnon Secondary College and is provided as-is.
Contributions are welcome! Please feel free to submit a Pull Request. MIT