npx create-ao-dapp@latest
The ao-starter-kit provides a comprehensive boilerplate for setting up an AO process, including testing, modules, and amalgamation alongside a React application. This starter kit aims to simplify the development and deployment of AO processes by providing pre-configured setups and example processes.
- Backend Processes: Located in the
./ao
directory, this includes all the backend processes necessary for the applications. - Frontend Applications: Located in the
./apps
directory, this include all the frontend applications for the project.
- Bun: Bun is a fast JavaScript all-in-one toolkit.
- LuaRocks: A package manager for Lua modules.
- Busted: A unit testing framework for Lua.
- Docker: Containerization platform required for the build process.
- Bun: Follow the installation instructions on the Bun.sh website.
- LuaRocks: Follow the installation instructions on the LuaRocks website.
- Busted: Install via LuaRocks with the command:
luarocks install busted
- Docker: Download and install Docker from the official Docker website.
To test the example process, navigate to the project root and run the following command:
bun run counter:test
This command will execute the test suite for the Counter process using Busted. For more detailed information about the testing framework, visit the ao-process-testing repository.
Building processes requires Docker to call the lua-squish image. Ensure that Docker is installed and running on your machine.
The process root dir must contain a squishy file with build instructions. Here is an example squishy file for the Counter process:
Main "src/process.lua"
Module "counter_lib" "./src/counter_lib.lua"
Option "minify-level" "none"
Output 'build/counter.lua'
To build the example process, run the following command from the project root:
bun run counter:build
The output will be written to build/counter.lua
.
Deploying processes is managed through AOForm.
Aoform is a tool to deploy a set of processes to AO. These can be defined in a aoform.yaml file. It uses a statefile to keep track of deployed processes and only updates code when needed.
Configuration file for the counter process is present at ./ao/counter/aoform.yaml
- name: hello-world
file: build/process.lua
prerun: reset-modules.lua
scheduler: _GQ33BkPtZrqxA84vM8Zk-N2aO0toNNu_C-l-rawrBA
module: GYrbbe0VbHim_7Hi6zrOpHQXrSQz07XNtwCnfbFo2I0
tags:
- name: Hello World
value: hello-world
- Make sure you set your wallet in the ENV
export WALLET_JSON="$(cat ~/.aos.json)"
- Run `con
- Documentation: Detailed documentation and further examples can be found in the relevant directories.
- Contribution: Contributions are welcome! Please fork the repository and submit pull requests.
- Support: For any issues or questions, please open an issue on the GitHub repository.