To install the FullJS environment on your server, please follow the steps below.
Check Supported Systems
Please check the currently supported operating systems and architectures. We are continuously working to expand compatibility.
Add the FullJS repository
sed -i -e '$a\deb [trusted=yes] http://fulljs.org/debian stable main' /etc/apt/sources.list
Install FullJS package
The following commands will install the FullJS environment and its dependencies on your server:
apt update apt install fulljs
Grant FullJS Access to System Features
To allow FullJS to interact with specific OS features, add the fulljs user to the necessary system groups:
usermod -a -G haproxy fulljs # Allow runtime reconfiguration via HAProxy usermod -a -G systemd-journal fulljs # Grant Web IDE access to system logs usermod -a -G adm fulljs # Additional system log access for Web IDE usermod -a -G video fulljs # Allow access to webcams usermod -a -G gpio fulljs # Enable GPIO access usermod -a -G i2c fulljs # Enable I2C access usermod -a -G tty fulljs # Enable serial port access usermod -a -G dialout fulljs # Enable serial port access (for USB-to-serial devices)
For more information on system groups, visit:
https://wiki.debian.org/SystemGroups
If the FullJS application server is already running, restart the service to apply the new group permissions:
systemctl restart fulljs@admin
Start and Enable FullJS Web IDE
To start and enable the FullJS Web IDE service:
systemctl start fulljs@admin systemctl enable fulljs@admin
Access the FullJS Web IDE
Once installed, open the FullJS development environment in a web browser at:
http://[your_server_ip]/admin/
Replace [your_server_ip] with the actual IP address of your server.
Configure I2C and UART (For Raspberry Pi Users)
If using FullJS on a Raspberry Pi, configure the I2C and UART interfaces as follows:
- Run raspi-config and enable I2C and Serial (UART) devices.
- Then disable getty on /dev/ttyAMA0 with:
systemctl stop serial-getty@ttyAMA0.service systemctl disable serial-getty@ttyAMA0.service
Debugging
If you encounter issues, check system logs using:
journalctl -u fulljs@*
Ensure that firewall rules allow access to the web IDE port.
DBus Integration
Each FullJS instance registers itself on DBus. You can verify active DBus services using:
busctl | grep fulljs
Example output:
org.fulljs.instance1 29882 fulljs fulljs :1.93 fulljs@instance1.service - - org.fulljs.instance2 29977 fulljs fulljs :1.101 fulljs@instance2.service - -
Each instance exposes a service under the org.fulljs.*
namespace, corresponding to its configured name.
Console Interfaces
FullJS also publishes multiple console instances under its DBus service tree. These provide control and diagnostics for different internal modules:
busctl tree | grep fulljs
Example output:
Service org.fulljs.instance1: └─ /org/fulljs/instance1 ├─ /org/fulljs/instance1/Console/auth ├─ /org/fulljs/instance1/Console/default ├─ /org/fulljs/instance1/Console/haproxy ├─ /org/fulljs/instance1/Console/http └─ /org/fulljs/instance1/Console/sd_service
Setting Log Levels via DBus
Each console interface exposes methods to get or set its logging level dynamically.
Log levels follow the Linux syslog standard (e.g. 0 = EMERG, 3 = ERR, 6 = INFO, 7 = DEBUG).
See: man syslog(3)
Example command to set the log level to DEBUG (7) for the “default” console:
busctl call org.fulljs.instance1 /org/fulljs/instance1/Console/default org.fulljs.instance1.Console SetLogLevel i 7
To introspect available methods:
busctl introspect org.fulljs.instance1 /org/fulljs/instance1/Console/default org.fulljs.instance1.Console
Example output:
NAME TYPE SIGNATURE RESULT/VALUE FLAGS .GetLogLevel method - - - .SetLogLevel method - - -
Use this to dynamically change the log level of specific modules during runtime for focused debugging.