Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nxhack/openwrt-node-packages
OpenWrt Project Node.js packages. v18.x TLS and v20.x LTS
https://github.com/nxhack/openwrt-node-packages
aarch64 arm aws-crt aws-crt-nodejs aws-iot aws-iot-nodejs homebridge iot javascript js node-module node-modules node-red nodejs nodejs-modules openwrt openwrt-feed openwrt-package zigbee2mqtt zwave-js-ui
Last synced: 4 days ago
JSON representation
OpenWrt Project Node.js packages. v18.x TLS and v20.x LTS
- Host: GitHub
- URL: https://github.com/nxhack/openwrt-node-packages
- Owner: nxhack
- License: gpl-2.0
- Created: 2016-04-20T01:15:09.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2025-01-10T00:11:18.000Z (14 days ago)
- Last Synced: 2025-01-12T08:04:40.212Z (11 days ago)
- Topics: aarch64, arm, aws-crt, aws-crt-nodejs, aws-iot, aws-iot-nodejs, homebridge, iot, javascript, js, node-module, node-modules, node-red, nodejs, nodejs-modules, openwrt, openwrt-feed, openwrt-package, zigbee2mqtt, zwave-js-ui
- Language: Makefile
- Homepage:
- Size: 14.5 MB
- Stars: 261
- Watchers: 21
- Forks: 101
- Open Issues: 18
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# OpenWrt Node.js Packages (nodejs)
## Description
OpenWrt Node.js Packages : for Head (Development branch)
Note: support arches are aarch64, arm, x86_64
## License
See [LICENSE](LICENSE) file.
## Usage
Add the following line to feeds.conf or feeds.conf.default.
```
src-git node https://github.com/nxhack/openwrt-node-packages.git
```Run
```
./scripts/feeds update node
rm ./package/feeds/packages/node
rm ./package/feeds/packages/node-*
./scripts/feeds install -a -p node
make defconfig
```## Request to add a package is welcome
If you want a new module (native module) that requires a precompiled binary, ***please open the issue.***## Note
If you want to use with 23.05, see [openwrt-23.05 branch](https://github.com/nxhack/openwrt-node-packages/tree/openwrt-23.05) (***Current stable series***)On the host side, the following preparations are required.
* [Unix prerequisites](https://github.com/nodejs/node/blob/master/BUILDING.md#unix-prerequisites)
* To build a 32-bit target, gcc-multilib, g++-multilib are required.
```
sudo apt-get install gcc-multilib g++-multilib
```
* The libatomic package is required. (Install the 32-bit library at the same time, if necessary).## Illegal instruction issue
***V8 JIT code generates FP instruction. Node.js does not work without hardware FPU.***
If you are running nodejs on the Atheros AR71xx/AR933x, MediaTek MT76x8, it will not work because there is no hardware FPU.
ARM cores without vfp or neon (such as ***bcm53xx***) will not work either.## Enable Inspector
| Processor | ICU | Inspector |
| :---: | --- | :---: |
| 32bit | Disable | NO |
| 32bit | small-icu | YES |
| 64bit | Disable | NO |
| 64bit | small-icu | YES |
| 64bit | system-icu | YES |[Debugging Guide](https://nodejs.org/en/docs/guides/debugging-getting-started/) ***Nice to use Chrome DevTools.***
Note: ICU currently supports only ***LITTLE ENDIAN***.
## Note about mDNS and homebridge
Read this document: [mDNS Options](https://github.com/homebridge/homebridge/wiki/mDNS-Options)If you want, you can install the OpenWrt mDNS package (umdns / avahi-dbus-daemon / mdnsresponder).
(1)
Some OpenWrt / Lede images have built in dnscrypt-proxy package, which by default listening on 5353 port.In that case, installed avahi-daemon will not start on ipv4 interface, only on ipv6 because ipv4 port is taken.
This will lead to strange issue: your homebrdge accessory will be visible in 'Home' app, but can't finish pairing.
To fix this, you have to stop and disable dnscrypt-proxy
Also, you have to enable: dbus and avahi-daemon services to start automatically, i.e for Lede:
```
/etc/init.d/dbus enable
/etc/init.d/avahi-daemon enable
```(2)
avahi on home networkPlease read this document. '[Why avahi and bonjour don't work on your home network](https://github.com/culler/querierd/blob/master/README.rst)'
***IGMP-querier*** will solve your problem.
OpenWrt allows "multicast_querier" (IGMP-querier) to be set when "igmp_snooping" is enabled.
OpenWrt custom packages available: https://github.com/nxhack/openwrt-custom-packages
## Low memory
Specify v8-options.```
--optimize_for_size --max_old_space_size=128 --gc_interval=100
```
For Reference: [Avoid Garbage](https://devcenter.heroku.com/articles/node-best-practices#avoid-garbage).Or use [swap](https://openwrt.org/docs/guide-user/storage/fstab?s[]=swap).
## Modules that use pre-compiled binary (native module)
```
node-authenticate-pam
node-aws-crt
node-bcryp
node-bignum
node-bluetooth-hci-socket
node-bufferutil
node-deasync
node-ejdb2_node
node-epoll
node-expat
node-ffi-napi (ffi-napi, ref-napi)
node-fuse-bindings
node-hid
node-pty-prebuilt-multiarch
node-i2c-bus
node-leveldown
node-megahash
node-mdns
node-net-ping (raw-socket)
node-openzwave-shared
node-pi-spi
node-pty
node-rpio
node-serialport-bindings
node-sleep
node-spi-device
node-sqlite3
node-statvfs
node-ubus
node-usb
node-utf-8-validate
node-zigbee2mqtt (@serialport/bindings,unix-dgram)
```
Other modules can be installed by 'npm install'.## Package Guidelines
See [CONTRIBUTING.md](https://github.com/openwrt/packages/blob/master/CONTRIBUTING.md) file.