-
-
Notifications
You must be signed in to change notification settings - Fork 5
Quick Start
This page walks you from a clean checkout to your first print in roughly five minutes. For deeper detail see Installation, Configuration, and Web UI.
git clone https://github.com/Django1982/ankermake-m5-protocol.git
cd ankermake-m5-protocolpip3 install -r requirements.txt
./ankerctl.py webserver runcp .env.example .env # edit if you want a custom port / API key
docker compose up -d
docker compose logs -f ankerctl # follow startupThe web UI is now reachable at http://localhost:4470.
Open the UI and go to Setup → Account. Pick whichever fits:
| Method | When to use it |
|---|---|
| Import From eufyMake Studio | Windows, eufyMake Studio is installed and signed in |
| Upload login.json / .ldb | You have a file from the AnkerMake desktop or the eufyMake LevelDB cache |
| Manual login | You only have your email / password (CAPTCHA may appear) |
A green banner confirms the import. The page then shows your printer's serial number and DUID.
CLI alternative:
./ankerctl.py config import # auto-detect cache
./ankerctl.py config login DE # email + password (replace DE with country code)
./ankerctl.py config show # verifyWithout an API key the web server is open. Once you set one, write operations require auth:
./ankerctl.py config set-password # generates and prints a random keyOr via env var (Docker .env):
ANKERCTL_API_KEY=my-secret-keyIn the browser, append ?apikey=my-secret-key once and a session cookie is set. In a slicer, paste the key into the API Key field.
See Configuration → Authentication for details.
./ankerctl.py mqtt monitor # Ctrl-C after seeing events scroll
./ankerctl.py pppp lan-search # printer must appear within ~5sIf LAN search hangs forever and you are on Linux with ufw, allow UDP port 32108:
sudo ufw allow in proto udp to any port 32108See Firewall ufw for the full background.
- Open the G-Code tab
- Drag a sliced
.gcodefile into the upload area - Click Upload and print
Configure your slicer to use ankerctl as a print host:
-
Host:
localhost(or your server IP) -
Port:
4470 - API Key: the key from step 4 (if set)
- Choose OctoPrint as the protocol
Then use Send and Print in the slicer. ankerctl implements the OctoPrint-compatible /api/files/local endpoint.
See Slicer Integration for screenshots and slicer-specific tips.
The Home tab shows:
- live camera feed (with on-screen light toggle)
- nozzle / bed temperature chart
- progress, current layer, speed, ETA
- console of recent MQTT events
- snapshot button (saves to the Snapshots gallery)
The History tab records every print to a SQLite database with thumbnails and reprint support. The Timelapse tab lists assembled MP4s from each print (requires ffmpeg and TIMELAPSE_ENABLED=true).
- Configuration — every environment variable, with defaults
- Web UI — page-by-page tour
- CLI Reference — every command and flag
- Notifications — Discord / Telegram / Slack push notifications via Apprise
- Home Assistant — surface your printer in HA via MQTT Discovery