aios: one-line shell installers for a self-hosted server stack
HAProxy / Docker / Traefik / Rclone / Calibre Web / OpenList / FFmpeg / Nginx / Openresty / V2ray / Xray / Armbian / Proxmox VE / .. All In One Script
At a glance
- What is it?
- aios is a GPL-3.0 collection of shell scripts that install and manage a stack of server components, from V2ray and Xray to Nginx, OpenResty, Armbian, Proxmox VE, FFmpeg, Docker and HAProxy, where each component is fetched with a single wget and bash line and then driven through its own management panel.
- Who is it for?
- Adopt aios if you run your own Linux server and want one maintained script per component rather than a dozen upstream install guides, since the suite covers V2ray, Xray, Nginx, OpenResty, Armbian, Proxmox VE, IBM Cloud Foundry, Cloudflare Workers, FFmpeg, OpenList, Rclone, Calibre, Docker and HAProxy, and the repository is not archived with a last push on 2026-06-15.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository last received commits 131 days ago.
- What is it written in?
- Mainly Shell, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 24, 2026, and from our analysis. They are not legal advice.
Editorial analysis
A menu of scripts rather than a single tool
aios does not do one thing. It is a collection of install and management scripts for the components a small self-hosted server tends to need, and the repository description lists them as a single run on: HAProxy, Docker, Traefik, Rclone, Calibre Web, OpenList, FFmpeg, Nginx, Openresty, V2ray, Xray, Armbian and Proxmox VE, all in one script.
The pattern is uniform. Each component has its own script hosted on a GitHub Pages site, and each is installed with one line that downloads the script and runs it. The V2ray component:
wget https://woniuzfb.github.io/aios/v2.sh && bash v2.shThe same shape repeats for xray, nginx, openresty, armbian, Proxmox VE, IBM Cloud Foundry, Cloudflare partner and workers, and a combined aios.sh that pulls in the FFmpeg and IPTV tooling.
That is the appeal for the intended user. Someone with a cheap VPS or a home server wants a reverse proxy, a proxy client, a media server and a way to serve files, and does not want to assemble each from upstream documentation. The audience is a self-hosting and sysadmin reader, and the entry point is a terminal, not a package manager.
The cost is equally clear from the shape of the commands. A script fetched over HTTP and piped to a shell is remote code execution by design, and the person running it cannot review what arrives without fetching it first.
Every component opens its own management panel
Installing is only half the workflow. Each script, once run, opens a management panel for its component, and the README documents the short command that opens it. The V2ray panel is opened with v2, the Xray panel with x, the Nginx panel with nx, the OpenResty panel with or, the Armbian panel with arm, the Proxmox VE panel with pve, and the IBM Cloud Foundry panel with ibm, where ibm v2 and ibm x open the corresponding proxy panels inside it.
The Cloudflare entry has two levels as well. cf opens the Cloudflare partner and workers panel, and cf w opens the workers panel specifically.
The panels are described in the README by their contents rather than by screenshots or step-by-step text, which makes the feature list the specification. The Nginx panel uses the official crossplane to parse the configuration, supports modifying up to five levels of directives, and provides SNI, SSL and APLN based traffic splitting. The Armbian panel installs Docker and dnscrypt proxy, adds OpenWrt as a side router, switches between the xray and v2ray cores, configures a transparent proxy that sends domestic traffic direct and foreign traffic through the proxy with saved and switchable configuration files, and performs NAT type detection. The Proxmox VE panel covers a similar set for Proxmox.
The one-line menus are the interface, so a reader without the Chinese documentation has to learn the panel by exploring it.
The development entry points are ./debug and ./make
The README's Dev section is where the shape of the repository becomes visible. There are two commands that only make sense inside a checkout:
./debug [tv|cf|v2|x|...] [options]
./make [install]The debug script runs a panel by name without going through the installer, which is how a developer exercises one component in isolation. The make script performs the install step locally, which is what makes the wget and bash flow in the README reproducible from source rather than being a black box hosted on a Pages site.
Several panels are reached through debug with a short code. OpenList is debug ali, Rclone is debug rc, Calibre is debug cw, the LianHuanHua component is debug lhh, Docker is debug dr, HAProxy is debug ha, and the test entry is debug tt.
What sits under those commands is visible in the top level directory listing. There is aios.sh as the main script, plus build, core, debug, env, make and ver as executables or directories, alongside src/, scripts/, utils/, i18n/ and docs/. The i18n/ directory matches the panel behaviour of changing language, which the FFmpeg tool exposes as an option accepting values such as en or zh_CN. The .shellcheckrc file indicates the scripts are linted with shellcheck, and the presence of a tests entry means there is a test path rather than only manual verification.
The Dev section also contains a warning worth repeating: v2.0.0 broken atm. The version the script reports is not a reliable guide to what works.
The tv tool wraps FFmpeg for live stream capture and restreaming
The FFmpeg component is the largest single piece of the suite, and its panel is entered with tv.
The panel covers scheduled starting and stopping of streams, monitoring, protection, hotlink protection, a program guide and a VIP section, and it includes a sub-panel, cx, for managing xtream codes accounts and channels, plus tv 4g for a channel management panel and tv d for adding a set of demo channels.
Underneath, the tool is a wrapper around FFmpeg with a large option set, and the README documents defaults rather than prose. A segment duration default of 6 seconds, 5 segments per m3u8 playlist, an output bitrate default of 900k, a resolution default of 1280x720, audio encoded as aac and video as libx264 unless copy is requested, and the familiar CRF quality ranges where x264 defaults to 23 and x265 to 28. It accepts mpegts, hls, flv and youtube style sources as well as a local video path, can push to an rtmp or flv target instead of writing HLS, supports audio and video delay offsets for desynchronised streams, can encrypt segments with a named key, and exposes an HTTP proxy option for http sources.
The wording matters for evaluation. This is a general purpose capture and repackaging front end for FFmpeg, and the same tooling serves a legitimate operator who owns the source stream and wants an HLS ladder of it.
Cloudflare Workers management with a blacklist caveat
The Cloudflare component is the one with the most specific operational detail in the README, and it is worth reading closely.
The panel manages multiple Cloudflare partner accounts, and it includes a workers monitor. The monitor can automatically upload the worker to another account and move the domain CNAME record when the request count exceeds a default threshold of 100000. The prerequisites are listed too: adding a user to the script, supplying a token with workers and zone editing permissions or using the Global API Key, adding a source CNAME record where one CNAME corresponds to one worker with all domains in the same Cloudflare account, and, for a new account, completing email verification and setting the site domain in the workers section. A relay through IBM Cloud Foundry can also be configured.
Then there is the caveat that stops most people: the README warns that an account may be put on a Cloudflare blacklist, leaving it unable to use the API at all.
That single line changes how the component should be evaluated. It is a description of behaviour that depends on account standing rather than on your configuration, and it means the failure mode is not a wrong setting that you can fix but an account that stops working. Anyone planning to move a worker between accounts should read that line twice.
Docker and HAProxy panels for the pieces underneath
Two of the panels cover infrastructure rather than end user services, and both are short in the README.
The Docker panel, reached with debug dr, installs a set of containerised services: traefik, authelia, mi-gpt, gpt4free, postgresql and yq. That is a reverse proxy, an authentication layer, two AI-adjacent services and a database, which describes a small self-hosted platform in one list.
The HAProxy panel, reached with debug ha, handles the build options rather than a service list: static or dynamic linking against pcre, zlib, lua, openssl and quictls. Choosing quictls or a static build is a decision about TLS and portability, and the fact that the panel exposes it at all suggests the script builds from source rather than only downloading a package.
The Rclone panel is described by its four verbs, remote, mount, serve and sync, and the Calibre panel covers calibre-web and kcc. These are thin descriptions, and they are the point where the README stops explaining and starts listing.
What is missing across these sections is documentation. The README says the documentation lives in the project pages and links out from the repository, and there is a docs/ directory in the tree, so the reference material exists, but the repository README alone will not tell you what each panel does beyond the one line given for it.
GPL-3.0, no releases, and a repository that moves on its own
The licence is the GNU General Public License version 3, and the project publishes no GitHub releases. The repository is not archived, and the last push was on 2026-06-15.
The licence matters in a specific way here. The GPL covers the scripts themselves, so anything you derive from them carries the same terms. The components the scripts install, V2ray and Xray, Nginx, Proxmox VE, Calibre and the rest, carry their own licences entirely, and the GPL of the wrapper does not reach them.
The release situation is the other thing to note. There is no tag to pin to, and the README's own development section warns that v2.0.0 is broken. The scripts are fetched from a Pages site rather than from a release artefact, so what you execute is whatever the site serves at the moment you run the command. Reading the script before running it is not paranoia here, it is the only version check available.
The README is also written in Chinese, with the panels, their menus and their warnings described in Chinese. The scripts themselves carry an i18n directory, and the FFmpeg tool can switch the interface language, but the README that explains what each panel does is not translated into English, which is a real obstacle for anyone deciding whether a component does what they need.
Editorial conclusion
Adopt aios if you run your own Linux server and want one maintained script per component rather than a dozen upstream install guides, since the suite covers V2ray, Xray, Nginx, OpenResty, Armbian, Proxmox VE, IBM Cloud Foundry, Cloudflare Workers, FFmpeg, OpenList, Rclone, Calibre, Docker and HAProxy, and the repository is not archived with a last push on 2026-06-15. Do not adopt it if you need a reviewable, pinned installation, because each component is fetched over the network with wget and executed with bash, and the README itself records that v2.0.0 is broken. Before you run anything, verify two things: the script URL you are about to execute matches the component you intend to install, and the management panel you will use afterwards is one the README documents for that component.
Frequently asked questions
How do I install the aios scripts?
Each component has its own script fetched with wget and run with bash, for example wget https://woniuzfb.github.io/aios/v2.sh && bash v2.sh for V2ray. There are equivalents for xray, nginx, openresty, armbian, Proxmox VE, IBM Cloud Foundry, Cloudflare workers and a combined aios.sh.
What does the ./debug command do in the aios repository?
It runs a panel by name from a local checkout without going through the installer, with ./debug [tv|cf|v2|x|...] [options]. Specific panels include ./debug dr for Docker, ./debug ha for HAProxy, ./debug rc for Rclone, ./debug cw for Calibre and ./debug tt for tests.
What does the Nginx panel in aios include?
The README states that it uses the official crossplane to parse the configuration, supports modifying up to five levels of directives, and provides SNI, SSL and APLN based traffic splitting. It is opened with the nx command.
What is the risk of moving a Cloudflare Worker to another account with aios?
The workers monitor can upload the worker to another account and move the CNAME record when requests exceed a default threshold of 100000, but the README warns that an account may be listed on a Cloudflare blacklist and then be unable to use the API at all.
Does aios publish tagged releases?
No. The repository has no GitHub releases, and the scripts are fetched from the project's GitHub Pages site rather than from a release artefact. The Dev section of the README notes that v2.0.0 is broken.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/woniuzfb-aios)Was this useful?