Community App Development Guide

This guide explains how to develop, package, configure, secure, and deploy applications for the Aridhia DRE. It is intended for developers creating applications that run inside a workspace.

Applications must provide an interactive web interface. Headless applications that only expose an API or run background jobs are not currently supported.

Before you begin

Applications on the Aridhia DRE run in a restricted, containerised environment. Before development begins, make sure your application can:

  • Serve a browser-accessible graphical interface.
  • Serve traffic over HTTP on one exposed port.
  • Run from a Linux Docker image.
  • Run as a non-root user with a user and group ID greater than 1000.
  • Store persistent data in the workspace file volume or the workspace PostgreSQL database.
  • Use the configured HTTP proxy for permitted internet access.

HTTP/2 is not supported. TLS is managed by the platform, so applications do not need to encrypt traffic themselves.

Application requirements

Web interface and traffic

Applications should serve content that browsers recognise as a website, typically using HTML, CSS, and JavaScript. You may use any suitable programming language, framework, or library.

Traffic must be served over HTTP. Only one application port can be exposed. WebSockets are supported.

The /aridhia path is reserved for internal platform use and requests to this path are not routed to the application. Do not use it for application pages or API endpoints.

Application data

Application data can be persisted in either the workspace file volume or the workspace PostgreSQL database. Blob storage is not supported.

Configuration

Application configuration is currently set by Aridhia on behalf of customers. The following settings control how an application is displayed and run.

Setting Description Accepted values Default
Display name Name shown in the application list. Any alphanumeric string.
Image name Repository name that identifies the application image. Lowercase letters, digits, periods, underscores, and hyphens.
Image tag Tag selected when the image is pulled. ASCII letters, digits, underscores, periods, and hyphens. Max 128 chars. latest
Port to expose Port on which the application serves HTTP traffic. Numeric value from 1 to 65535. 8080
Logo icon Image displayed on the application tile. JPEG or PNG. Rendered at 251 × 185 pixels. Aridhia template image
Workspace database access Controls whether PostgreSQL connection details are provided. true or false. true
Workspace file volume access Controls access to the workspace file volume. none, read-only, or read-write. read-write
Workspace file volume mount point Path where the workspace file volume is mounted. Any path that exists in the container. /home/workspace/files

Resource configuration

Resource Meaning Examples Default
CPU request Minimum guaranteed CPU allocation. 1, 1.5, 1000m 750m
CPU limit Maximum CPU allocation. CPU quantity supported by Kubernetes. 1500m
Memory request Minimum guaranteed memory allocation. 128Mi, 256Mi 1Gb
Memory limit Maximum memory allocation. Kubernetes memory quantity. 10Gb

Environment variables

The platform injects the following variables into the application environment.

Variable Description Example
WORKSPACE_ID Numerical identifier of the workspace. 33
APP_IMAGE_NAME Name of the Docker image used to run the application. jupyter_notebook
PGHOST PostgreSQL host address. 192.168.1.1
PGDATABASE Workspace PostgreSQL database name. workspace_db
PGUSER PostgreSQL username. workspace_user
PGPASSWORD PostgreSQL password. password
http_proxy HTTP proxy provided by Aridhia. http://proxy.example:1111

Security and network access

Applications run in a video-streaming sandbox environment designed to prevent data exfiltration. The platform applies a strict Content Security Policy.

Runtime security

  • The main application process must not run as root.
  • The process user and group ID must be greater than 1000.
  • The container must operate within the platform security context.

Network access

Network access is restricted. Applications cannot reach other hosts on the local network. Outbound internet access is available through the Aridhia HTTP proxy for allow-listed destinations.

Integrations

PostgreSQL database

When database access is enabled, the platform provides PostgreSQL connection details through environment variables. Most PostgreSQL clients recognise these variables automatically.

Workspace file volume

A filesystem volume is mounted by default (typically at /home/workspace/files). Access is read-write by default but can be restricted.

Build and deploy an application

  1. Build a Linux Docker image containing the application and all required dependencies.
  2. Run the image locally and verify that it serves HTTP traffic on the configured port.
  3. Confirm that the application runs as a non-root user with a user and group ID greater than 1000.
  4. Tag the image using the repository and tag provided for the application.
  5. Push the image to the Aridhia Azure Container Registry.
  6. Start the application from the Aridhia DRE.

Application readiness checklist

  • The application provides an interactive web interface.
  • The application serves HTTP traffic on one configured port.
  • The application does not use the reserved /aridhia path.
  • The Docker image is Linux-based and contains all runtime dependencies.
  • The main process runs as a non-root user (UID/GID > 1000).
  • Database and file volume access are configured appropriately.
  • Outbound destinations are allow-listed.
  • The image has been scanned, updated, tagged, and pushed.

Troubleshooting

Issue Possible cause What to check
The application does not start Image, tag, or runtime user mismatch. Confirm image exists, is Linux-based, and runs as non-root (UID > 1000).
The application starts but the page does not load Wrong port or unsupported protocol. Verify HTTP traffic on the configured port. Avoid HTTP/2 and /aridhia path.
External web requests fail Allow-list restriction or proxy config. Check allow-lists and ensure application uses http_proxy variables.
Database connections fail Access disabled or variables not read. Confirm database access is enabled and client uses PG* variables.

If these checks do not resolve the issue, contact Aridhia’s Service Desk at servicedesk@aridhia.com.

Frequently asked questions

Can I use any programming language or framework?

Yes, provided the application meets the runtime requirements and is packaged as a Linux Docker image.

Can my application expose more than one port?

No. Only one application port can be exposed.

Where should application data be stored?

Use the workspace PostgreSQL database or the mounted workspace file volume.

Related resources

Updated on September 07, 2026