Running headless/CLI?

I have tried to get intiface-engine to run in CLI.

Everything seems fine, I reach “Starting server” with the only issue being that it does not automatically connect to the user-device.json it reads (copied over from intiface-desktop install).

Further, any attempt to access the server does not yield and response, unlike intiface-desktop which works.

Does anybody have any insight into running intiface on a headless server?

Edit:
Specifically, it gets stuck here:

2023-06-20T00:00:20.873738Z  INFO buttplug::server::device::server_device_manager_event_loop: No scan currently in progress, starting new scan.
2023-06-20T00:00:20.873827Z DEBUG buttplug::server::device::server_device_manager_event_loop: Scanning started for all hardware comm managers.

Here are the arguments used when launching:

--websocket-port 12345 --use-bluetooth-le --log debug --user-device-config-file "buttplug-user-device-config.json"

If you’re trying to run it on a remote server, you probably need to use --websocket-use-all-interfaces, otherwise it will only listen for connections on localhost.

As for the user config file, what are you trying to use that for?

I can already establish a connection remotely, but that makes my setup a bit simpler, thank you!

My reason for trying to use the config is in the hopes it would not need to search to pair to my device:
When it scans for bluetooth devices, no debug logs are made even with the toy on and blinking, so I assume my issue is there.

My expectation was for it to behave similarly to intiface-central, where the console lists all visible bluetooth devices while searching for known ones. (And actually successfully pairing, for that matter.)

Edit:To add, I am testing using the ‘Beadi’ webapp. intiface-central works as expected while intiface-engine does not, on the same machine.

The user config doesn’t work like that right now. Buttplug will always scan for devices, we only use the user config to define some parameters once we’re connected.

I’m… honestly not sure what Central would find something that engine does not. They’re literally the same code, though there may be a version mismatch that causes this. What version of Central and engine are you running, and with what hardware?

Intiface-engine: Tried on both x86-64, and arm64, both produce the same result: Do not seem to scan, or at least don’t show any activity when scanning.
Intiface CLI (Rust Edition) Version 1.4.0, Commit 6cf9757, Built 2023-06-19T19:32:58.745747066Z

Intiface-central: Downloaded v2.4.0 from github releases. Have not attempted to compile it myself yet.

Devices (Both devices have BT 5.0+, can connect to my Edge 2):

  • x86-64 hardware is Intel(R) Celeron(R) N4020 CPU @ 1.10GHz (4gb ram)
  • aarch64 hardware is Raspberry Pi 4 (4gb ram)
  • Lovense Edge 2

I am back.

cargo build --release

Produces a binary which does not seem to work as expected with scanning for devices.

cargo install --path .

Does, however.

I apologize and thank you for your time. My issue is solved now.

Works great on my Pi now!

Well that’s weird as hell. I’m gonna guess this is some bluez/dbus oddity.