Ushio named after the daughter of the protagonist of Clannad. On July 18, 2019, the first studio of Kyoto Animation was set on fire, and the most tender group of people received the most cruel treatment. All I can do is pass on the spirit these people conveys. I hope to find my true self with the help of Ushio system. To find the responsibility that truly belongs to me; to find the happiness that truly belongs to me; to find the person who is truly worthy of my all-out efforts.
The Chinese meaning of word Ushio is the gushing water at dusk. The idea of the Ushio system is that it can be deployed on various devices in a distributed and flexible manner, providing a tool set, operating environment, and maintenance path for my development activities. If the interdependence between the various services I developed is a spider web, then the Ushio system is the architect and maintainer of this web. In addition, some Ushio interfaces are developed and shared to the public through API. See [iotcat/ushio-api](https://github.com/iotcat/ushio-api) for details.
### The first generation of ushio [iotcat/ushio-cn-old:old](https://github.com/IoTcat/Ushio-cn-old/tree/old)
The first architecture was completed in July 2019. It was integrated a series of applications on the CentOS7 system of the cn.yimian.xyz server. At this time, the local file system of the host is still used.
### The second generation ushio [iotcat/ushio-linux](https://github.com/IoTcat/ushio-linux)
The second reconstruction was completed in March 2020. It was run by a Ushio user, with onedrive as the file system and the local storage as the cache system, with independent system partitions and a Linux subsystem with isolated permissions.
### The third generation ushio [iotcat/ushio-cn](https://github.com/iotcat/ushio-cn)
The third reconstruction was completed in June 2020. It was run by the root user, with onedrive as the file system, the local storage as the cache system, and a docker cluster controlled by docker-compose.
The fourth reconstruction is in progress and is expected to be completed before 2020.12. On the basis of the third generation, Kubernetes and Helm are used to replace docker-compose for elastic process management, DroneCI and Github are used for continuous integration, and Kafka is used for cross-regional cluster communication.
Ushio uses git with git.yimian.xyz to manage configuration files, secret keys, credentials, database passwords, and static files that require high access speed. In addition, Ushio uses onedrive to store static files that take up a lot of space, such as video files. Ushio uses Huawei Cloud Storage to store shared files that require high-speed access between cross-regional clusters, such as certain data files. At the same time, Ushio uses the host disk to store log files, run caches and other dynamic files.
The general structure of the Ushio file system is as follows, where the `/onedrive` directory and the `/mnt/var` directory are shared and synchronized by all Ushio hosts. The `/home` directory, the `/mnt/etc` directory, the `/mnt/config` directory, and the `/mnt/docker` directory use git for management and disaster recovery, which facilitates version control and quick recovery. `/var` and `/tmp` use the system root directory address to store dynamic files and cache.
Provide the ushio interface on the web side, and provide aplayer, fp, js-session, tips light services. See [iotcat/ushio-js](https://github.com/iotcat/ushio-js) for details
The anti-generation software modified on the basis of nginx source code, in fact, the main effect is to make the server in the http header be `Ushio/1.16.1`. . I will further optimize nginx if I can. See [iotcat/ushio-nginx](https://github.com/iotcat/ushio-nginx) for details
Currently supports one-click script deployment of CentOS7. Realize the expansion server that can be automated and unattended. For example, if necessary, I can now fill in a new Ushio server in Japan or other countries within ten minutes (provided that the network is good) and start providing services. For the script, please refer to [iotcat/ushio-centos-ini](https://github.com/IoTcat/ushio-centos-ini)
| |---iis (Automatically guide users to the specified page when related services are abnormal, to prevent Google from penalizing, and warn the webmaster at the same time)