-
Notifications
You must be signed in to change notification settings - Fork 48
Batteries Included
thingOS comes with many useful services:
- WiFi
- WiFi Access Point
- Bluetooth
- 3G/4G Modem
- DHCP Server
- Date/Time
- SSH Server
- Cron Daemon
- Logrotate
- Syslog
- Automount
- DBus
- Firewall
- FTP Server
- Samba
- MongoDB
- Redis
- PostgreSQL
- Dynamic DNS
- HTTPS
- Docker
The wireless connection is handled by the wpa_supplicant daemon. The S35wifi init script starts and monitors the wireless connection, if a wireless network is configured in wpa_supplicant.conf.
The wireless access point is handled by the hostapd daemon. The S33hostapd init script starts and monitors the daemon, if the hostapd.conf configuration file is present.
Keep in mind however that:
- your WiFi adapter (driver) may not support the AP mode and may simply not work with
hostapd - wireless drivers are known to be less stable and less reliable when acting as an access point than when used as a client (station)
- the actual throughput when using such an AP is often less than that of a regular wireless router
Note that hostapd package is not enabled by default in thingOS.
The init script S37bluetooth that takes care of initializing the Bluetooth stack.
The bluetooth.conf file is used to configure the bluetooth stack.
Note that bluez-utils 5.x package is not enabled by default in thingOS.
TODO
The DHCP server is handled by the dnsmasq daemon. The S45dnsmasq init script starts the daemon, if the dnsmasq.conf configuration file is present.
Note that dnsmasq package is not enabled by default in thingOS.
Unless your board has a RTC module, the system date/time is set at boot and then regularly updated using the network connection. This is done via the S50date init script. Either NTP or simple HTTP requests can be used to synchronize the time. See date.conf for configuration.
If you need remote acess to your board, S60sshd will start the SSH daemon. Authorized keys should be put in /data/etc/ssh_authorized_keys. The host keys are generated at first run and kept in /data/etc. SFTP also available. The SSH daemon can be configured by editing /etc/sshd_config.
The cron daemon included by default with thingOS is the one embedded in BusyBox. It is started at boot by S51crond.
Two instances are started: one for the system configuration (/etc/crontabs) and one for the "user" configuration (/data/etc/crontabs).
The standard crontab -e command can be used to edit the "user" cron configuration.
Logrotate is run daily and will rotate all files matching /var/log/.*log as soon as their size goes above 10MB, keeping 9 rotated versions. This behavior can be configured by editing /etc/logrotate.conf.
Syslog is started via the S05syslog and can be configured by editing /etc/syslog.conf. System logging goes to /var/log/messages.
External drives are automatically mounted using the UDev rule /etc/udev/rules.d/61-usb-storage.rules. A mount target is automatically created in /data/media and will have the name of the storage device. Supported filesystems are EXT2/3/4, VFAT and NTFS.
The DBus daemon is started by S30dbus and uses the /etc/dbus-1/system.conf file for configuration.
The firewall is handled by the iptables command. The S43firewall init script starts the firewall, if the firewall.sh configuration file is present.
The FTP server is handled by the proftpd daemon. The S61proftpd init script starts the daemon, if the proftpd.conf configuration file is present.
Note that proftpd package is not enabled by default in thingOS.
The SMB server functionality is handled by the samba package. The S62smb init script starts the daemon, if the smb.conf configuration file is present.
Note that samba package is not enabled by default in thingOS.
The S70mongod init script starts the daemon, if the mongodb.conf configuration file is present.
Note that mongodb package is not enabled by default in thingOS.
The S71redis init script starts the daemon, if the redis.conf configuration file is present.
Note that redis package is not enabled by default in thingOS.
The S72postgresql init script starts the daemon.
Note that postgresql package is not enabled by default in thingOS.
A script can be configured to automatically update a DNS record upon boot and at regular intervals. This allows you to access your system via a dynamic DNS domain name. See Dynamic DNS for more details.
The system can be configured to automatically install and update SSL certificates provided by Let's Encrypt. See HTTPS for more details.
The S60dockerd init script starts the docker engine daemon.
The S80dockercompose init script starts a docker-compose project, if the docker-compose.yml configuration file is present.
Note that the following packages are not enabled by default in thingOS and must be enabled for docker/docker-compose to work: docker-cli, docker-engine, docker-compose and fuse-overlayfs.
- bluetooth.conf
- captive-portal.conf
- cpufreq.conf
- date.conf
- dnsmasq.conf
- docker‐compose.env
- docker‐compose.env.sh
- docker‐compose.yml
- dtoverlays
- dyndns-update.sh
- environment
- firewall.sh
- fstab.user
- hostapd.conf
- ifalias.conf
- localtime
- modprobe.conf
- modules
- mongodb.conf
- netwatch.conf
- ntp.conf
- os.conf
- proftpd.conf
- redis.conf
- smb.conf
- ssh/config
- ssh/sshd_config
- ssl/domain
- ssl/email
- static_ip.conf
- sysctl.conf
- toemmc.conf
- version
- watchdog.conf
- wpa_supplicant.conf