-
Notifications
You must be signed in to change notification settings - Fork 47
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.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