thingsboard / thingsboard-gateway

Open-source IoT Gateway - integrates devices connected to legacy and third-party systems with ThingsBoard IoT Platform using Modbus, CAN bus, BACnet, BLE, OPC-UA, MQTT, ODBC and REST protocols
https://thingsboard.io/docs/iot-gateway/what-is-iot-gateway/
Apache License 2.0
1.72k stars 829 forks source link

[HELP] Gateway only with Can and MQTT without unneeded libs to save disk space #346

Closed e60newbie closed 4 years ago

e60newbie commented 4 years ago

Describe the issue I want install TB-Gateway on my Debian 9 Module; Unfortunately my disk space is really restricted (total 1Gb, where 600Mb free). Is there a possibility to install the gateway without unneccessary Modules? I need to use only MQTT and the Can. I tried to install with all sources (PIP, Docker, from sources) but in all cases I get compiling errors or not enough disk space because i need to install several Modules to use TB-GW. For any help I was happy.

Connector name (If you need help with some connector/converter): MQTT-Connector Can-Connector

Versions (please complete the following information):

imbeacon commented 4 years ago

Hi @e60newbie

Thank you for your interest in the ThingsBoard IoT gateway. In the latest release (2.5.0), I moved some libraries from installation during general installation to the installation on connector start. Unfortunately, I'm not sure that this action will decrease the size of the gateway to the required size, but you can try to use it.

e60newbie commented 4 years ago

I will test if I can get run the Gateway. Can you tell me if there is a package that can I "delete" that is not required for use with only CAN and MQTT.

imbeacon commented 4 years ago

Hi @e60newbie ,

I removed not required packages from installation, the best way is get the version from the sources, configure it and then install using setup.py . Also I recommend to use the virtual environment for this to get the information about size of the gateway package. To decrease required storage place you also can use the "memory" storage.