Long time ago i developed WVNC, a simple protocol based on Web socket that allows to connect to VNC server from browser. WVNC consist of
The protocol works really well for my personal need as i used it on a daily basis to access to my VNC home server from work :), using nothing but the web browser. However, setting up WVNC from scratch is not a trivial task, as it depends on my Antd server which is not a popular web server, thus Stack overflow is not an option :). I've received many contacts from readers on the howto instruction.
As WVNC is finally a part of AntOS eco-system, and AntOS is available as an all-in-one docker image, anyone can now easily run their own web-base VNC client via a single command line without the headache of building every thing from scratch.
Application log is the traditional way to monitor an application/service. On *nix-based system, Syslog is a common but powerful tool for centrally monitoring applications logs. The primary use of syslog is for system management as capturing log data is critical for sysadmin, devOp team, or system analysts, etc. This log data is helpful in case of investigating/troubleshooting problems and maintaining healthy functioning of systems.
Syslog offers a standard log format and a standard alert system with different severity levels to applications in form of a log API. Log daemons such as rsyslog are versatile and flexible with various configuration options that enable different way to interact with the logs: log to file, log to a remote server via network (TCP, UDP sockets), log to local Unix domain socket. Log clients or log analytic applications can collect log data from the log daemon via these interfaces.
Although it is feasible to directly read log messages from the regular syslog output files, it is more preferable to collect log data from the daemon using the socket interface since socket is more suitable for data streaming. TCP/UDP sockets can be used to access log data from the network (TCP/IP). But if the application runs locally on the same machine as the log daemon, Unix domain socket (UDS) may be the best option.
Unix Domain Socket is an inter-process communication mechanism that allows bidirectional data exchange between processes running on the same machine. Thus, UDSs can avoid some checks and operations (like routing); which makes them faster and lighter than IP sockets.
In this post, we will learn how to collect log data from syslog via UDS in C. We will use rsyslog as log daemon in this post.
A use case will be presented at the end of the post.
After a long testing period, AntOS v1.2.0-beta is now released!!!
A demo of the VDE is available at https://app.iohub.dev/antos/ using username: demo and password: demo.
If one want to run AntOS VDE locally in their system, a docker image is available at:
https://hub.docker.com/r/xsangle/antosaio/
https://github.com/lxsang/antosdk-apps
Update: The image is now available on Docker Hub at: https://hub.docker.com/r/xsangle/antosaio (image:
xsangle/antosaio:latest
). This post has been updated with the latest instructions on how to host a local instance of AntOS VDE using Docker.
Building and setting up AntOS from scratch can be complex, as it requires configuring and connecting many backend and front-end components. To simplify the use of AntOS as a self-hosted environment, I have created a Docker image layer for an all-in-one AntOS system that contains everything needed to host AntOS on your server. This layer allows you to build a minimal Docker image with a working AntOS system out-of-the-box:
The Docker images are available at: https://hub.docker.com/r/xsangle/antosaio/
Follow the steps below to create an AntOS instance. First, create the working directory (e.g., /tmp/antos
). All user data will be stored in this location. In this example, we use /tmp/antos
, but in a real scenario, you should use a permanent storage location.
# modify with your own working directory
mkdir -p /tmp/antos
Run a container with docker
docker run \
-p 8080:80 \
--rm \
-v /tmp/antos:/app \
-e ANTOS_USER=demo \
-e ANTOS_PASSWORD=demo \
-it xsangle/antosaio:latest
Or with docker compose: docker-compose.yml
version: '3.7'
services:
antos:
image: xsangle/antosaio:latest
privileged: true
restart: always
ports:
- 8080:80
container_name: antos_demo
deploy:
resources:
limits:
memory: 200m
cpus: '0.5'
hostname: demo
environment:
- ANTOS_USER=demo
- ANTOS_PASSWORD=demo
volumes:
- /tmp/antos/:/app
Run:
docker compose up
AntOS is now accessible via http://localhost:8080/os/
or using IP address http://YOUR_MACHINE_IP:8080/os/
The docker image provides user with a ready to go (out-of-the-box) AntOS VDE system. This is useful in many user-cases:
Github: https://github.com/lxsang/antos branch antos-1.0.0a
Demo: https://app.iohub.dev/antos/ using user name and password: demo/demo
If one wants to run AntOS VDE locally in their system, a docker image is available at:
https://github.com/lxsang/antosaio
API Documentation: https://doc.iohub.dev/antos
It has been a long time since version 0.x.x and now AntOS hits a major changes in its API. From version 1.0.0, AntOS no longer depends on Riot.js in its core UI API. This version introduces a brand new AntOS UI API called AFX API which is rewritten from bottom up. The entire AntOS core API is rewritten in Typescript (from Coffeescript) for better debugging, code maintenance and documenting.
Browser support: tested on Chrome, Firefox and partly Safari. Any browser that supports custom elements API should work. May have problem with Microsoft Edge.