Skip to content

shupx/aivudaOS

Repository files navigation

AivudaOS

aivudaOS is a lightweight OS on swarm robot's onboard computer. It offers a graphical panel which allows you to interact with the onboard system and manage the APPs.

Install

Choose one method to install:

1. Install from PyPI (Recommended):

pip install aivudaos
# pip install -i https://pypi.tuna.tsinghua.edu.cn/simple aivudaos  # use pypi mirror (may not be the latest)
# pip install aivudaos==1.0.0.dev2026040602  # for a certain version

If you install with conda, activate the target environment first and keep using that same environment for aivudaos install, aivudaos start, and related commands:

conda create -n aivuda python=3.8 -y
conda activate aivuda
pip install aivudaos

2. Install from a provided wheel:

pip install aivudaos-1.0.0.dev2026040501-py3-none-any.whl

3. Install from source (for developing):

git clone https://gitee.com/buaa_iooda/aivudaOS.git
cd aivudaOS/
pip install --user -U pip setuptools wheel
pip install --user -e . # need dated npm and node (>20) installed
# pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -e .  # use pypi mirror for build

To upgrade:

# pip index versions aivudaos --pre  # inspect available versions on PyPI
pip install --upgrade aivudaos

To uninstall:

# stop and remove the systemd service by 'aivudaos uninstall' first:
aivudaos uninstall
pip uninstall aivudaos

Usage

Add python local path first:

echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

After install the wheel, you need to install aivudaOS dependencies first:

aivudaos install

When aivudaos install is executed inside an activated conda environment, the generated aivudaos.service will remember that environment's Python interpreter for later restarts and boot auto-start.

This will install all the dependencies and start aivudaOS and make aivudaOS autostart.

Then get url and open it in your browser:

aivudaos web
# or
aivudaos status

It will remind you to visit http://127.0.0.1:80 on the local browser, or vist https://<avahi_hostname>.local:443 on a remote browser

The following port is used by aivudaOS:

  • 127.0.0.1:8000: internal backend, reverse proxy by caddy;
  • http://127.0.0.1:80: expose the service by caddy for http;
  • https://<avahi_hostname>.local:443 expose the service by caddy for https,

where the <avahi_hostname> can be read by

aivudaos get-avahi-hostname
aivudaos get-avahi-hostname --debug

Each robot has a randomly generated and unique avahi_hostname on install, which can also be changed in the system setting of the aivudaOS panel.

After installation, you can use the unified CLI:

aivudaos --help
aivudaos --version
aivudaos install
aivudaos web
aivudaos status
aivudaos start
aivudaos stop
aivudaos restart
aivudaos enable-autostart
aivudaos disable-autostart
aivudaos download-caddy
aivudaos uninstall

Build wheel (for developing)

Update pip before building:

pip install --user -U pip setuptools wheel

Build release artifacts locally:

Wheel artifacts include only aivudaos/resources/ui/dist for the frontend. The source distribution excludes dist and node_modules, while keeping the UI source files for development and rebuilding.

cd aivudaOS/
cd aivudaos/resources/ui/ && npm install && npm run build && cd ../../..
export AIVUDAOS_BUILD_SEQ=01 
python -m build
# PIP_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple python -m build  # use pypi mirror

If your environment does not provide python -m build isolation support, use:

AIVUDAOS_BUILD_SEQ=01 python -m build --no-isolation

Upload to PyPi:

cd aivudaOS
AIVUDAOS_BUILD_SEQ=01 \
TWINE_USERNAME=__token__ \
TWINE_PASSWORD="$PYPI_TOKEN" \
TWINE_NON_INTERACTIVE=1 \
./publish_aivudaos_pypi.sh

## or not upload
cd aivudaOS
AIVUDAOS_BUILD_SEQ=01 \
./publish_aivudaos_pypi.sh --skip-upload

The automated workflow is activated at https://github.com/shupx/aivudaOS/actions/workflows/nightly-build.yml, which deploys a check every night and build and publish wheels to PyPi if there is a update.

Develop

Refer to README_dev.md

About

A graphical panel and app management backend on swarm robot's onboard computer

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors