The next-gen webOS and development environment with full Linux emulation.
An entirely local browser-based "OS" and development environment with complete graphical Linux emulation, visually based on ChromiumOS. See a demo here, fully in your browser.
Warning
Anura mainly targets Chromium but should work on most browsers. For a list of known browser specific quirks check this document.
Anura uses the features of a PWA (Progressive Web App) to make its environment work fully offline, providing a virtual filesystem (synced with the Linux emulator), a code editor, and a modular and extensible app system. You can even edit Anura's code live while inside of it!
Anura shows as more of a proof-of-concept with what's possible on the modern web rather than an actual product. However, it proves useful in many actual cases and is a useful educational tool.
Important
Anura will not build on Windows. Please use a Linux VM or WSL.
- Run
bash codespace-basic-setup.sh
Note
- If you are not in a codespace skip to the regular installation steps.
- This does NOT build RootFS.
- Recent versions of
node.js
andnpm
wget
- A recent version of
java
(11+) inotifytools
rustup
make
gcc
clang
uuid-runtime
jq
docker
Note
You will have to install the required Rust toolchain by running rustup target add wasm32-unknown-unknown
and also rustup target add i686-unknown-linux-gnu
if you are planning to build v86 images.
- Clone the repository with
git clone --recursive https://github.com/MercuryWorkshop/anuraOS
- Then,
make all
Tip
You can use make all -B
instead if you want to force a full build.
- Make sure you have
Docker
installed and running. - Run
make rootfs
- Make sure to add yourself to the Docker group using
usermod -a -G docker $USER
- (Special Use Case) In the event that you should need to override/manually add the initrd and kernel, remember to keep track of the file names of initrd and vmlinuz in build/images/(rootfs)-boot/. Then, copy them to the Anura root directory and rename them to initrd.img and bzimage respectively.(See the extended instructions here.)
You can run Anura with the command
make server
Anura should now be running at localhost:8000
.
App development is highly encouraged! Good apps can even be added to the official app repositories after review by an AnuraOS maintainer. Apps are stored in .app files which are read by AnuraOS to provide you, well, an app!
For more information about developing an AnuraOS app please visit this page and for using Anura API's in your code, please visit this page.
See the current index of documentation here.
See SECURITY.md for reporting instructions.
AnuraOS is created by Mercury Workshop. Linux emulation is based off of the v86 project. For more credits, see CREDITS.MD.
(p.s. for hackers: the entrypoint to anura is src/Boot.tsx)