Skip to content

Deploy an app 20 min

Studio is the easiest way to run a single-container Docker app on Olares. You do not need to write code.

In this tutorial, you will deploy Wallos (a personal subscription tracker) and learn how to translate a standard Docker configuration into Studio settings.

Recommended for testing

Studio-created deployments are best suited for development, testing, or temporary use.

Learning objectives

By the end of this tutorial, you will learn how to:

  • Translate a standard docker run command or docker-compose.yaml into Olares Studio settings.
  • Configure CPU and memory, and add environment variables.
  • Map storage volumes so data persists, or is intentionally temporary.
  • Customize the application's name and icon after deployment.

Prerequisites

Before you begin, ensure you have:

  • Olares version 1.12.2 or later.
  • A container image for the app that exists and is accessible from the Olares host.
  • The app's docker run command or docker-compose.yaml for reference.

Install Studio

  1. Open Market and search for "Studio".
  2. Click Get, then Install.

Reference: Docker configuration

Use either format below as a reference. You will copy the same values into Studio fields.

docker
docker run -d \
  --name wallos \
  -v /path/to/config/wallos/db:/var/www/html/db \
  -v /path/to/config/wallos/logos:/var/www/html/images/uploads/logos \
  -e TZ=America/Toronto \
  -p 8282:80 \
  --restart unless-stopped \
  bellamy/wallos:latest
yaml
version: '3.0'

services:
  wallos:
    container_name: wallos
    image: bellamy/wallos:latest
    ports:
      - "8282:80/tcp"
    environment:
      TZ: 'America/Toronto'
    # Volumes store your data between container upgrades
    volumes:
      - './db:/var/www/html/db'
      - './logos:/var/www/html/images/uploads/logos'
    restart: unless-stopped

Create and configure the app

Create the project

  1. Open Studio and select Create a new application.
  2. Enter an app name, for example: wallos, and click Confirm.
  3. Select Port your own container to Olares. Port your own container to Olares

Configure image and port

These fields define the app's core runtime settings. You can find the values in the Docker configuration above.

Studio fieldValue to enterSource: docker runSource: docker-compose.yaml
Imagebellamy/wallos:latestLast token in the commandValue of image:
Port80Container port in -p HOST:CONTAINER, which is the value after :Container port in ports:, which is the value after : and before / if present

Why only the container port

A port mapping is HOST:CONTAINER. The container port is the internal port the app listens on. The host port is the external port you access. Studio manages external access automatically, so you only need to enter the container port.

  1. For the Image field, paste bellamy/wallos:latest.
  2. For the Port field, enter 80.

Configure instance specifications

Instance specifications define the CPU and memory allocated to this app.

In the Instance Specifications section, enter the minimum CPU and memory requirements. For example:

  • CPU: 2 core
  • Memory: 1 G Deploy Wallos

Add environment variables

Environment variables pass configuration values into the container.

Studio fieldValue to enterSource: docker runSource: docker-compose.yaml
keyTZFind -e KEY=VALUE, use the text before =Under environment:, use the left side of KEY: VALUE
valueAmerica/TorontoFind -e KEY=VALUE, use the text after =Under environment:, use the right side of KEY: VALUE
  1. Scroll down to Environment Variables, and click + Add.
  2. In this example, enter the key-value pair:
    • key: TZ
    • value: America/Toronto
  3. Click Submit. Repeat this process for any other variables. Add environment variables

Add storage volumes

Volumes keep data after restarts and reinstalls.

Before you begin

In Studio, you need to fill in two fields for each volume:

  1. Mount path: In Docker, a volume looks like HOST:CONTAINER. Use the part after : as the mount path.

  2. Host path: In Studio, host path has two inputs:

    • Prefix: /app/data, /app/cache, or /app/Home.
      Host path prefixDescription
      /app/dataPersistent app data. Data can be accessed across nodes and is not deleted
      when the app is uninstalled. Appears under /Data/studio in Files.
      /app/cacheTemporary app data. Data is stored in the node's local disk and is deleted
      when the app is uninstalled. Appears under /Cache/<device-name>/studio
      in Files.
      /app/HomeUser data directory. Mainly used for reading external user files. Data is
      not deleted.
    • Host path: Enter the target folder, starting with /, for example /db or /logos.

      Host path rules

      Studio automatically prefixes the full path with the app name. If the app name is test and you set host path /app/data/folder1, the actual path becomes /Data/studio/test/folder1 in Files.

Configure volumes for Wallos

Wallos requires two volumes. Add them one by one.

Volume A: Database

Source mapping:

  • In docker run: /path/to/config/wallos/db:/var/www/html/db
  • In docker-compose.yaml: ./db:/var/www/html/db.

This data is for high-frequency I/O and does not need to be saved permanently. Map it to /app/cache so it will be deleted when the app is uninstalled.

  1. Click + Add next to Storage Volume.
  2. For Host path, select /app/cache, then enter /db.
  3. For Mount path, enter /var/www/html/db.
  4. Click Submit.

Volume B: Logos

Source mapping:

  • In docker run: /path/to/config/wallos/logos:/var/www/html/images/uploads/logos
  • In docker-compose.yaml: ./logos:/var/www/html/images/uploads/logos.

This is user-uploaded data that should be persistent and reusable, even if the app is reinstalled. Map it to /app/data.

  1. Click + Add next to Storage Volume.
  2. For Host path, select /app/data, then enter /logos.
  3. For Mount path, enter /var/www/html/images/uploads/logos.
  4. Click Submit. Add volumes

You can check Files later to verify the mounted paths. Check mounted path in Files

Optional: Configure GPU or database middleware

If your app needs GPU, enable the GPU option under Instance Specifications and select the GPU vendor. Enable GPU

If your app needs Postgres or Redis, enable it under Instance Specifications. Enable databases

When enabled, Studio provides dynamic variables. You must use these variables in the Environment Variables section for your app to connect to the database.

  • Postgres variables:
VariablesDescription
$(PG_USER)PostgreSQL username
$(PG_DBNAME)Database name
$(PG_PASS)Postgres Password
$(PG_HOST)Postgres service host
$(PG_PORT)Postgres service port
  • Redis variables:
VariablesDescription
$(REDIS_HOST)Redis service host
$(REDIS_PORT)Redis service port
$(REDIS_USER)Redis username
$(REDIS_PASS)Redis password

Deploy and test the app

  1. Click Create at the bottom of the page. Studio will generate the project files and deploy the app automatically.
  2. Wait for Studio to generate the package files for your app. You can check the status in the bottom bar.
  3. When the app is successfully deployed, click Preview in the top-right corner to launch it. If Preview does not appear, refresh the page. Preview wallos

Manage the app

Update name and icon

Apps deployed from Studio include a -dev suffix and a default icon. You can polish this by editing the manifest file. Check deployed app

  1. In Studio, click box_editEdit in the top-right to open the editor.

  2. Click OlaresManifest.yaml to view the content.

  3. Change the title field under entrance and metadata. For example, change wallos to Wallos.

  4. Replace the default icon image address of field icon under entrance and metadata. Edit

  5. Click save in the top-right to save changes.

  6. Click Apply to reinstall with the updated package.

    INFO

    If no changes are detected since the last deployment, clicking Apply will simply return to the app status page without reinstalling.

    Change app icon

Remove the app

If you no longer need the app, you can remove it.

  1. In Studio, click more_vert in the top-right corner.
  2. You can choose to:
    • Uninstall: Removes the running app from Olares, but keeps the project in Studio so you can continue editing the package.
    • Delete: Uninstalls the app and removes the project from Studio. This action is irreversible.

Troubleshoot problems

Cannot install the app

If installation fails, review the error at the bottom right of the page and click View to expand details. Check app status

App runs but does not work

Once running, you can manage the app from its deployment details page in Studio. The interface of this page is similar to Control Hub. If details don't appear, refresh the page. You can:

  • Use Stop and Restart controls to reset the process. This action can often resolve runtime issues like a frozen process.

  • Check events or logs to investigate runtime errors. See Export container logs for troubleshooting for details.

    App deployment details

Resources