GitPedia
HouzuoGuo

HouzuoGuo/laitos

Top geek's chindogu - personal assistant over satellite/telephone/SMS/chatbot, plus web infrastructure servers (web & mail, ad-free DNS, TCP-over-DNS, web proxy, etc)

17 Releases
Latest: 1y ago
8.0Latest
HouzuoGuoHouzuoGuo·1y ago·September 10, 2024
GitHub

📋 Changes

  • The DNS daemon can now [serve custom records](https://github.com/HouzuoGuo/laitos/wiki/%5BDaemon%5D-DNS-server#define-custom-dns-records). This allows hosting a personal web domain without paying for DNS hosting.
  • The [system maintenance daemon](https://github.com/HouzuoGuo/laitos/wiki/%5BDaemon%5D-system-maintenance) can now collect network IO, files, and disk activities both process-wide and system-wide, and present them to [prometheus metrics handler](https://github.com/HouzuoGuo/laitos/wiki/%5BWeb-service%5D-prometheus-metrics-exporter).
  • The [system maintenance daemon](https://github.com/HouzuoGuo/laitos/wiki/%5BDaemon%5D-system-maintenance) now discards old systemd journal to conserve disk space. The discard threshold is configurable.
  • X (formerly known as Twitter) integration has been removed.
7.2
HouzuoGuoHouzuoGuo·2y ago·December 18, 2023
GitHub

📋 Changes

  • Fix numerous issues with the DNS server’s authoritative responses.
  • The shell command app now restricts available commands to a hard-coded set by default.
  • All log sources now discard excessive messages according to a hard-coded threshold to reduce output.
  • The package manager for installing and updating Windows software has been switched from chocolatey to winget.
7.1
HouzuoGuoHouzuoGuo·3y ago·November 21, 2022
GitHub

📋 Changes

  • Support using TXT queries as data carrier for the TCP-over-DNS tunnel, this improves the tunnel throughput to 10KB/s.
  • Allow customising upstream and downstream segment length individually.
  • Close both sides of HTTP proxy connections when one peer closes the connection in a TCP-over-DNS client-side (web proxy) tunnel.
  • Fix stale ACK number lingering in the TCP-over-DNS segment buffer.
7.0
HouzuoGuoHouzuoGuo·3y ago·October 14, 2022
GitHub

📋 Changes

  • You can now host laitos for an apex domain without using a separate DNS hosting provider (e.g. AWS Route 53 / Azure DNS). The DNS daemon now automatically serves SOA, NS, MX, and their related address records (pointing to the server itself).
  • The DNS daemon is now able to proxy TCP connections ([TCP-over-DNS](https://github.com/HouzuoGuo/laitos/wiki/%5BDaemon%5D-DNS-server-(TCP-over-DNS))). For the clients, laitos provides built-in local HTTP(S) and DNS proxy servers.
6.0
HouzuoGuoHouzuoGuo·4y ago·April 16, 2022
GitHub

📋 Changes

  • The ad-blocking DNS server can now handle IPv6 address queries.
  • The HTTP (with and without TLS) server can now automatically install an index page handler serving the content of environment variable [`LAITOS_INDEX_PAGE`](https://github.com/HouzuoGuo/laitos/wiki/Get-started#other-deployment-techniques), this enables starting laitos web server using a one-liner command.
  • The [LoRaWAN tracker integration](https://github.com/HouzuoGuo/laitos/wiki/%5BWeb-service%5D-the-things-network-LORA-tracker-integration) has been improved to work with [hzgl-lora-communicator](https://github.com/HouzuoGuo/hzgl-lora-communicator) - an open-source, battery-powered, two-way messaging device with GPS tracking and ambient condition sensors.
  • Capture the latest incoming HTTP requests for inspection by using the [request logger web service](https://github.com/HouzuoGuo/laitos/wiki/%5BWeb-service%5D-request-logger).
  • Multiple unlikely race conditions were resolved.
  • Improve handling of plain text mails in the mail app command processor.
  • The Linux kernel parameter tuning function now turns on multiple kernel security features (e.g. `kernel.kptr_restrict` and `kernel.yama.ptrace_scope`).
  • The system maintenance scripts (for Windows and Linux hosts) are now executed toward the end of system maintenance routine rather than at the start.
  • + 3 more
5.0
HouzuoGuoHouzuoGuo·5y ago·February 27, 2021
GitHub

📋 Changes

  • Use the brand new general purpose [web proxy server](https://github.com/HouzuoGuo/laitos/wiki/%5BDaemon%5D-web-proxy) for a safer, ad-free web experience in home network.
  • Take advantage of [prometheus metrics exporter](https://github.com/HouzuoGuo/laitos/wiki/%5BWeb-service%5D-prometheus-metrics-exporter) to gain insights of program performance and optionally analyse web proxy usage.
  • Take advantage of AWS services (x-ray, SQS, SNS, etc) to extend various program components with cloud-native capabilities. Discover more about these points of integration in [Cloud Tips](https://github.com/HouzuoGuo/laitos/wiki/Cloud-tips).
  • Use the brand new [system process explorer](https://github.com/HouzuoGuo/laitos/wiki/%5BWeb-service%5D-system-process-explorer) to inspect resource usage and health of a running program.
  • laitos can run on ARMv6 processor architecture (file name `laitos.arm`), notably on Raspberry Pi Zero W.
  • The [mail server](https://github.com/HouzuoGuo/laitos/wiki/%5BDaemon%5D-mail-server) automatically filters incoming mails through popular blocklists to reduce spam.
  • Components capable of running app commands are now able to accept more than one passwords to authorise command execution.
  • The web server's middleware now logs the processing statistics of a request, such as time-to-first byte, total processing duration, and response size. These stats are also optionally exported to prometheus.
  • + 1 more
4.1
HouzuoGuoHouzuoGuo·5y ago·September 8, 2020
GitHub

📋 Changes

  • laitos got a cool looking terminal UI - check out [laitos terminal](https://github.com/HouzuoGuo/laitos/wiki/Laitos-terminal). It is incredibly bandwidth efficient that it even works over a 2400 bits/sec satellite Internet modem!
  • Avoid double-escaping special XML characters in a Twilio SMS response
  • Enhance DNS daemon ad-blocking capability with four new default blacklists.
  • Automatically remove several popular domain names that blacklists often mistakenly include.
4.0
HouzuoGuoHouzuoGuo·5y ago·July 30, 2020
GitHub

📋 Changes

  • laitos can now run as an AWS [lambda function](https://github.com/HouzuoGuo/laitos/wiki/Cloud-tips#deploy-on-amazon-web-service---lambda). In combination with AWS API gateway, you can run laitos web server using the latest & flashiest "serverless" cloud computing feature.
  • New daemon [phone home telemetry](https://github.com/HouzuoGuo/laitos/wiki/%5BDaemon%5D-phone-home-telemetry) sends system information and resource usage to your own laitos servers for telemetry keeping. Optionally, your laitos servers may remotely control a monitored system by running a password-protected app command on it.
  • In addition to collecting telemetry information from computer systems, laitos server also integrates with [LoRa - The Things Network](https://github.com/HouzuoGuo/laitos/wiki/%5BWeb-service%5D-the-things-network-LORA-tracker-integration) to collect telemetry location data from your IoT devices. Optionally, your IoT device may remotely control your server by running a password-protected app command on it.
  • Allow app user to use one-time-password to enter a password PIN, this is especially useful for transmitting the password PIN over less secure channels such as SMS and telephone calls.
  • For routine automated operations that require reading laitos server's public IP address, the address is now cached for couple of minutes to allow for reuse.
  • If an incoming Email demands strong DMARC validation to be performed by Email clients, then alter the Email's From address before forwarding it, to ensure a much higher likelihood of delivery.
  • Fix rare crashes in common UDP server routines.
  • Remove default RSS sources and default public DNS resolvers that have gone offline since last release.
3.4
HouzuoGuoHouzuoGuo·6y ago·January 28, 2020
GitHub

📋 Changes

  • Introduce a new web service - [desktop on a page (virtual machine)](https://github.com/HouzuoGuo/laitos/wiki/%5BWeb-service%5D-desktop-on-a-page-(virtual-machine)) that offers a computer desktop with productivity suites, controlled from a single web page.
  • laitos container images are now available on [docker hub](https://hub.docker.com/repository/docker/hzgl/laitos). Compiled binaries will remain with releases on GitHub.
  • The system maintenance daemon is now compatible with `yum` wrapper provided by CentOS 8.
  • The system maintenance report is saved to `laitos-latest-maintenance-report.txt` underneath OS temporary files directory in addition to its usual channel of delivery, such as Email and program output.
  • Should a daemon's startup or loop routine fail - both of which are unlikely, the daemon will restart after a short interval. This further improves reliability by complimenting the built-in supervisor that automatically recovers daemons from unlikely crashes.
  • Improve extraction of WolframAlpha text response for better readability.
  • Introduce AdGuard Public DNS and Neustar Public DNS servers to the list of default forwarders used by the DNS daemon.
  • Improved external process management better responds to process time-out anomaly and will terminate them more reliably.
3.3
HouzuoGuoHouzuoGuo·6y ago·September 23, 2019
GitHub

📋 Changes

  • Serial port communicator daemon enables serial port devices to run toolbox commands by physically connecting to laitos server computer.
  • File storage web service helps user to store files of any type for unlimited retrieval within 24 hours.
  • System maintenance routine now cleans up expired temporary file system-wide, defragments all disks, and performs SSD TRIM.
  • Multiple rate-limit warnings across a short span of interval are aggregated together, reducing program log output.
3.2
HouzuoGuoHouzuoGuo·7y ago·February 26, 2019
GitHub

📋 Changes

  • Introduce a new [Simple IP Services daemon](https://github.com/HouzuoGuo/laitos/wiki/Daemon:-simple-IP-services) to serve standard Internet services (sysstat, daytime, QOTD) that were used in the nostalgic era of computing.
  • Introduce a toolbox command processor to [DNS server](https://github.com/HouzuoGuo/laitos/wiki/Daemon:-DNS-server#use-dns-server-to-run-toolbox-commands), users may now run toolbox commands via DNS TXT queries.
  • During system maintenance, if program configuration asks to test outbound connectivity to TCP port 25, then skip the test on AWS, as it became the latest among public cloud vendors to prevent connection to TCP port 25. See [Cloud tips](https://github.com/HouzuoGuo/laitos/wiki/Cloud-tips) for more information.
  • Slow down the speech in outgoing telephone call (toolbox feature) to make it easier to listen.
  • The previous release inadvertently included a small piece of code licensed under GPL, which is not compatible with the license of this project MPL. The GPL code piece has been completely removed and then substituted by a new independent implementation tailor made for this project.
3.1
HouzuoGuoHouzuoGuo·7y ago·December 23, 2018
GitHub

📋 Changes

  • Introduce SNMP server that implements SNMP v2 (with community string) that offers program stats under OID tree `1.3.6.1.4.1.52535.121`.
  • System maintenance can now automatically install updates for Windows server.
  • New configuration properties `PreUnixScript` and `PreWindowsScript` specify a short shell script to run prior to all other system maintenance actions.
  • `chrony` software package is often broken on Debian-based distributions, thus do not install it anymore during the system maintenance software maintenance routine.
  • Prevent timeout from prematurely terminating several Windows system maintenance actions due to a slow system.
  • Fix Azure public cloud detection.
  • Fix an infrequent name resolution crash in DNS black-list resolver.
  • Work around Go 1.11 memory consumption quirks to significantly reduce runtime memory usage.
  • + 3 more
3.0
HouzuoGuoHouzuoGuo·7y ago·August 30, 2018
GitHub

📋 Changes

  • laitos program may now compile and run on Windows server and desktop OS.
  • Introduce Windows system integrity and application management to system maintenance daemon.
  • Introduce Linux firewall and swap file management to system maintenance daemon.
  • Introduce a plain text search toolbox feature, it may help with with looking up telephone books and dictionaries.
  • laitos is now licensed under the Mozilla Public License version 2.0.
  • Facebook no longer allows API consumer to post to home timeline, hence the corresponding component is removed.
  • When external programs run, only up to 1MB of combined program output is collected for responses and log entries. This prevents a misbehaving program from exhausting system memory.
2.0
HouzuoGuoHouzuoGuo·8y ago·June 16, 2018
GitHub

📋 Changes

  • laitos program may now compile and run on MacOS.
  • Introduce a "wild joke" toolbox feature (`.j`) that fetches a joke on-demand.
  • Introduce SlimerJS-based remote browsers for much enhanced web page rendering capability. SlimerJS-based remote browsers may be used along with the older PhantomJS-based browsers.
  • All rich web services, including remote browser controls, can now be operated from Internet Explorer 4 and Mosaic 3.
  • Increase default rate limit to be more suitable for running a personal web server.
  • Enhance reliability of DNS server.
1.2
HouzuoGuoHouzuoGuo·8y ago·March 18, 2018
GitHub

📋 Changes

  • An RSS reader is now available via toolbox command interface for reading news briefing.
  • Disk usage on root file system is collected for the information web page and system maintenance report.
  • The summary report is printed to standard output if there are no Email recipients.
  • The initial delay is shortened from 10 minutes to 2 minutes.
  • Non-essential utilities are periodically copied to temporary directory to avoid being cleaned up by operating system routine.
  • System tuning and turning off swap are optionally carried out during system maintenance, they are no longer CLI parameters of the main program (-tunesystem and -swapoff).
  • The component name output among log entries is decorated with a brief component configuration description, for example, entries generated by web server now mention the web server's listen address and port.
  • Timed out shell commands are reliably terminated via process group.
  • + 1 more
1.1
HouzuoGuoHouzuoGuo·8y ago·January 30, 2018
GitHub

📋 Changes

  • Mail client can now deliver mails over TLS connection in addition to StartTLS.
  • To improve reliability of mail delivery, mail client now retries several times in case a delivery attempt fails.
  • Add three public search-and-rescue contacts from Norway, Republic of Korea, and the US.
  • Introduce a new web service called "recurring commands" that periodically runs sets of toolbox commands and allows visitor to retrieve their command results.
  • Introduce a new "utility directory" path that is prefixed to environment PATH variable when running all kinds of shell commands, when laitos starts up, the utility directory gets a copy of PhantomJS, BusyBox, and ToyBox programs from laitos working directory, subsequently the copy of PhantomJS powers browser-related features, and toolbox shell commands may use BusyBox and ToyBox as user wishes.
1.0
HouzuoGuoHouzuoGuo·8y ago·December 30, 2017
GitHub

After more than two years of development and one year of production run, version 1.0 has finally arrived!