Building the Server with YP-WEB

The WEB-UI feature is provided by the 'WEB-UI' software component. This is located in the top directory named yp-web.

YP-WEB Dependencies

Before building YP-WEB, the following dependencies must be installed:

  1. Python 3.11 or higher and pip

    Ensure Python 3.11+ is installed. Use your package manager or follow the instructions at python.org.

    Example for Ubuntu:

    Run the following commands to install Python, pip, and venv:

    sudo apt update
    sudo apt install -y python3 python3-venv python3-dev python3-pip
    

    Verify the installation:

    python3 --version
    pip3 --version
    
  2. Python libraries

    Before building YP-WEB from sources, the following dependencies must be installed. These packages are only required if you are building YP-WEB from source.

    To set up the virtual environment and install dependencies, run:

2.1 Create a virtual environment in your home directory

python3 -m venv ~/venv

2.2 Activate the virtual environment

source ~/venv/bin/activate

2.3 Install dependencies

mydir> cd yp-web
mydir> make tools-install
  • asyncio==3.4.3

  • websockets==13.1

  • pyzmq==26.2.0

  • asgiref>=3.0

  • yangson==1.4.19

  • lxml==5.3.0

  • pyinstaller==6.11.1

2.4 Install WEB Server

You will also need a web server to serve the HTML pages from yp-web. If you do not already have either NGINX or Apache installed you can follow these instructions for Apache Support or NGINX Support.

YP-WEB Build Steps

YP-WEB support can be enabled by building the server with the WITH_YP_WEB=1 make flag.

  • This feature is not enabled with the EVERYTHING=1 make flag.

Before proceeding, ensure that the virtual environment created in Step 2 is activated. If you have not yet activated it, run the following command:

source ~/venv/bin/activate

Once the virtual environment is active, you can proceed with the build.

Example Build Command:

mydir> make DEBUG=1 DEBUG2=1 USE_WERROR=1 EVERYTHING=1 WITH_YP_WEB=1
mydir> sudo make DEBUG=1 DEBUG2=1 USE_WERROR=1 EVERYTHING=1 WITH_YP_WEB=1 install

Installed Files

The 'yp-web-core' application is installed in the binary program directory, usually the '/usr/bin' directory.

The YP-WEB application data is installed in the '/usr/lib/yumapro/yp-web' directory.

Additional files are installed in the '/usr/lib/yumapro/yp-web/' directory:

  • yp-web-core.service is a systemd service file that facilitates the startup and management of the YP-WEB core component. By deploying this service file, the system can automatically initiate the yp-web-core process on boot, ensuring that the web application’s core services are consistently available and properly maintained.

Additional files are installed in the '/usr/share/yumapro/util/' directory:

  • ypweb-nginx.conf The ypweb-nginx.conf file is a reference configuration that helps set up NGINX as a reverse proxy or front-end server for YP-WEB. It provides a base configuration for integrating YP-WEB with NGINX

  • ypweb-apache2.conf The ypweb-apache2.conf file is a reference configuration that helps set up Apache as a reverse proxy or front-end server for YP-WEB. It provides a base configuration for integrating YP-WEB with Apache

Installed binaries location:

  • /usr/bin/yp-web-core