Development environment | Yunohost
Docs
The recommended development tool is
ynh-dev
, and is based on Incus.
This page gives an introduction to both tools.
Incus
The recommended testing and development environment is based on
Incus
a system container manager.
Its usage is very similar to Docker and Podman, but its main difference is its ability to run full
operating systems, with their own network interfaces and
init
system. There is no virtualization here.
The YunoHost project provides Incus images on
the Incus repository
For each Debian release and for each branch (
stable
testing
unstable
) are provided multiple images:
before-install
: tools and dependencies are installed but
not
Yunohost
dev
: YunoHost is installed but the post-install step was not run
appci
: YunoHost is installed, post-install was run and you can install apps
core-tests
: YunoHost is installed and post-installed, and development and testing tools are installed.
The
appci
and
core-tests
images are used by the project's testing infrastructure.
The Incus images are built by our
incus_builder
tool, but
not automatically
, so please feel free to ask us to regenerate images.
Install and configure Incus
Incus can be installed on Debian with:
apt install incus
Then you need to add users to the
incus-admin
group:
sudo usermod -a -G incus-admin $(whoami)
newgrp incus-admin
and initialize Incus:
incus admin init
You will want to add the YunoHost repository (do NOT run this as root but as your user):
incus remote add yunohost https://repo.yunohost.org/incus --protocol simplestreams --public
and to download an image:
incus image copy yunohost:yunohost/bookworm-stable/dev local: --copy-aliases --auto-update
Install a custom YunoHost version
When testing an unreleased YunoHost version, or installation script, you might want to
run the installation script from
its Git repository
on a freshly installed Debian.
For example to install the unreleased Debian 13 Trixie version:
curl https://raw.githubusercontent.com/YunoHost/install_script/main/trixie | bash
You might also want to pass arguments to the script:
curl https://raw.githubusercontent.com/YunoHost/install_script/main/trixie | bash -s -- -d unstable
ynh-dev
ynh-dev
is the
recommended tool
that automates:
downloading Incus images
download YunoHost's projects source code
Install and symlink YunoHost stuff inside the container
That way, you will be able to edit files, test your changes in real time, commit
and push/pull your changes directly from your development environment.
Please see
the
ynh-dev
README
for installation and usage instructions.
Incus
Install and configure Incus
Install a custom YunoHost version
ynh-dev