https://github.com/ynput/ayon-addon-template
This is a boilerplate git repository for creating new ayon addons
https://github.com/ynput/ayon-addon-template
addon ayon
Last synced: about 2 months ago
JSON representation
This is a boilerplate git repository for creating new ayon addons
- Host: GitHub
- URL: https://github.com/ynput/ayon-addon-template
- Owner: ynput
- License: apache-2.0
- Created: 2023-01-03T10:25:05.000Z (over 3 years ago)
- Default Branch: develop
- Last Pushed: 2026-03-30T17:54:49.000Z (2 months ago)
- Last Synced: 2026-04-13T07:49:47.008Z (about 2 months ago)
- Topics: addon, ayon
- Language: Python
- Homepage:
- Size: 121 KB
- Stars: 7
- Watchers: 8
- Forks: 9
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Addon template
This is a boilerplate git repository for creating new ayon addons.
## Folder structure
All addons must have server code which is located in `server` subfolder. Server side addon definition is entrypoint for each addon. Can define settings, frontend, custom endpoints, etc. Root by default contains `create_package.py` which is a helper script that prepares package structure for server. The script may be modified or expanded by needs of addon (e.g. when frontend needs to be build first). File with `version.py` is kept at the root and is copied to server and client code with script -> The reason is to make sure both parts contain same version.
### Server content
Default base of server addon is `__init__.py` file in root of repository which define addon for server. Most of addons have settings that's why `settings.py` is by default in the structure. Settings can be changed to folder/module when more than one file is needed.
### Server frontend
Addons may have their frontend. By default, server looks into `/frontend/dist` for `index.html` and addon have to have specified scopes where the frontend should be showed (check documentation of `frontend_scopes` on server addon implementation for more information).
### Private server files
Root of addon may contain subfolder `private` where can be added files that are accessible via ayon server. Url schema is `{server url}/addons/{addon name}/{addon_version}/private/*`. By default it is place where client zip file is created (during package creation). The endpoint requires authorized user.
### Public server files
Public files works the same as private files but does not require authorized user. Subfolder name is `public`. Url schema is `{server url}/addons/{addon name}/{addon_version}/public/*`. Endpoint is helpful for images/icons or other static content.
### Client content
Addons that have code for desktop client application should create subfolder `client` where a client content is located. It is expected the directory has only one file or folder in it which is named the way how should be imported on a client side (e.g. `ayon_core`).
### Example strucutre
```
├─ server
│ ├─ __init__.py
│ └─ settings.py
│
├─ frontend
│ └─ dist
│ └─ index.html
│
├─ public
│ └─ my_icon.png
│
├─ private
│ └─ kittens.png
│
├─ client
│ ├─ ayon_core
│ │ ├─ pipeline
│ │ ├─ lib
│ │ └─ ...
│ └─ pyproject.toml
│
├─ create_package.py
├─ LICENSE
├─ package.py
└─ README.md
```