About this Portal

A self-service dashboard that gives developers real-time visibility into all Dokploy-managed applications — without needing Dokploy admin access.

What is it?

The Rydoo Lightweight PaaS Portal aggregates data from Dokploy (our container platform) and GitHub, presenting it in a single, easy-to-use dashboard. Think of it as a read-friendly overview of every deployed service in the organisation.

Features

Dashboard Overview

  • App cards with status, domain links, and GitHub repo links
  • Server metrics (CPU, memory, disk, network)
  • Search and filter by status or app-type
  • Dark / light mode with OS preference detection

Health Monitoring

  • Green — HTTP health check passed
  • Blue — Running background service (no web UI)
  • Red — Deployment error or app in error state
  • Gray — Health check in progress

Deployment Insights

  • Recent deployments with status and build duration
  • Build error messages shown inline — see exactly why a build failed
  • Real-time build logs streamed via WebSocket — follow builds as they happen
  • Build queue with pending / running status indicators
  • One-click Redeploy button from the detail panel
  • Create branch deploys for any app from its detail panel

Branch Deploys

  • Deploy any feature branch as a per-app environment within the same Dokploy project
  • Branch deploys inherit environment variables from the parent app
  • Automatic domain via the parent app's preview wildcard pattern
  • Build config fetched from the branch's manifest, with parent app as fallback
  • Branch deploys are automatically deleted when the branch is removed
  • Manual delete available via the branch deploys list in the detail panel

Preview Environments

  • Active PR preview environments listed on the main dashboard
  • Preview URLs, PR links, branch names, and status
  • Preview URLs shown on each app card
  • Optional PR label gating — only deploy previews for PRs with specific labels (configured via preview.labels in app-manifest.yaml)

Developer Convenience

  • Pin / favourite apps to the top (saved in your browser)
  • Toast notifications when an app's status changes
  • Environment variable viewer (names only, values are masked)
  • Manifest metadata badges (app-type, build type, preview count)

Security

  • Entra ID (Azure AD) single sign-on — only org members can access
  • SSO for deployed apps — add auth.sso: true to app-manifest.yaml to protect any app with Entra ID via Traefik ForwardAuth
  • Secure, httpOnly session cookies with 8-hour expiry
  • No secrets or sensitive values exposed to the browser

FAQ

What does "manifest not found" mean?

The app's GitHub repo doesn't have an app-manifest.yaml file, or the GitHub token isn't configured. Without a manifest, the portal can't display metadata like app-type or environment variable info.

What does "app-type missing" mean?

The repo has an app-manifest.yaml but it doesn't include an app-type field. Ask the repo owner to add it (e.g. app-type: Service or app-type: Tool).

Why is the health dot blue instead of green?

Blue means the app is deployed and running, but it doesn't serve HTTP traffic (e.g. a Slack bot, a background worker, or a cron job). This is normal — the app is healthy, it just doesn't have a web UI to health-check.

How often does the data refresh?

The dashboard auto-refreshes every 2 minutes. Health checks are cached for 2 minutes. You can also click the Refresh button for an immediate update.

How do I redeploy an application?

Click on the app card to open the detail panel, then click the Redeploy button. This triggers a new deployment using the latest code from the app's configured branch.

How do I deploy a feature branch?

Click on the parent app's card to open the detail panel. In the Branch Deploys section, select a branch from the dropdown and click Deploy Branch. The portal creates a new environment and application within the same Dokploy project, copies the parent's env vars, and assigns a preview domain. When the branch is deleted (e.g. after merging the PR), the branch deploy is automatically cleaned up.

Why did my build fail?

Open the app's detail panel and scroll to Recent Deployments. Failed deployments show the error message in a red box. Common causes include Dockerfile syntax errors, missing dependencies, or failing health checks.

What is a preview environment?

When preview deployments are enabled for a repo, Dokploy automatically creates an isolated environment for each pull request. This lets you test changes on a unique URL before merging. Preview environments appear in the "Active Preview Environments" section on the dashboard and on each app card.

Can I see environment variable values?

For security, only environment variable names are shown — values are always masked. If you need to update a value, contact the Tech team.

How do I add my app to the portal?

The portal automatically shows all apps managed by Dokploy. To add metadata (app-type, description, environment info), create an app-manifest.yaml in the root of your repo. See the PlatformTools repo for the schema and examples.

Tip: Open Copilot Chat in VS Code and type /create-app-manifest — it will inspect your repo and generate a valid manifest for you. Copy the prompt file from .github/prompts/ in the PlatformTools repo to your own repo to have it available locally.

Who has access?

All Rydoo org members can log in via Entra ID (Microsoft SSO). Everyone can view apps, trigger redeployments, and create branch deploys. Configuration changes (env vars, domains, build settings) must be done via Dokploy or the manifest system.

How do I protect my app with SSO?

Add auth: { sso: true } to your app-manifest.yaml. The sync job configures Traefik's ForwardAuth middleware on your app, which delegates authentication to the platform portal's Entra ID login. Users must sign in through the portal before they can access your app. The portal must be deployed with ENTRA_* and PORTAL_BASE_URL env vars.

Tech Stack

FrontendVanilla JavaScript SPA, responsive CSS
BackendNode.js 20 + Express 5
AuthEntra ID SSO (OIDC via MSAL)
HostingDocker on Dokploy, auto-deploy on push to main
DataReal-time from Dokploy tRPC API + GitHub API