Deploy a Panel App From PlaidCloud Git
This is the complete path from Panel app code on your machine to a live URL, using PlaidCloud Git — the managed Git service built into your workspace — as the source. Because PlaidCloud Git is managed, the connection your app deploys from needs no server URL, username, or token: PlaidCloud authenticates on your behalf.
There are five steps:
- Write a minimal Panel app.
- Put it in a PlaidCloud Git repository.
- Create a managed PlaidCloud Git connection.
- Publish a server app that points at the repository.
- Open the served app — and read the build logs if it doesn’t start.
Each step links to the deeper guide for that piece; this page stitches them into one path.
Before You Start
Section titled “Before You Start”- Open Git from your workspace to confirm you can reach PlaidCloud Git. By default, your workspace’s organization includes an
appsrepository (and audfsone) — the natural home for Panel apps. - Have
gitinstalled locally if you want to push code from your machine (you can also add files in the Git web UI).
1. Write a Minimal Panel App
Section titled “1. Write a Minimal Panel App”Your app needs an entry point — a Python file that builds a Panel app and marks it .servable() — and, optionally, a requirements.txt at the repository root for extra packages.
apps/├── app.py # entry point — calls .servable()└── requirements.txt # optional; extra dependencies, at the repo rootCreate app.py:
import panel as pn
pn.extension()
pn.pane.Markdown("# Hello from PlaidCloud Git 👋\n\nServed straight from your workspace repository.").servable()That’s a complete app — the .servable() call is what PlaidCloud serves. panel, bokeh, and the PlaidCloud client libraries (plaidcloud-rpc, plaidcloud-utilities) are pre-installed, so list only extra packages in requirements.txt. For richer examples, dependencies, and light/dark theming, see Creating a Panel App.
2. Put Your App in a PlaidCloud Git Repository
Section titled “2. Put Your App in a PlaidCloud Git Repository”Use your workspace’s existing apps repository, or create a new one. Then get your code into it.
Because you sign in through PlaidCloud, your Git account has no separate password — generate a personal access token (your avatar → Settings → Applications) with repository read and write scopes, and use it as the password when Git prompts. Copy the repository’s HTTPS clone URL from its Code button, then:
git clone https://<your-git-host>/<org>/apps.gitcd apps# add app.py (and requirements.txt), then:git add app.py requirements.txtgit commit -m "Add hello panel app"git pushNote the repository path — <org>/apps — where <org> is your workspace’s organization name. You’ll enter that path in the next step. Full clone, commit, and push details are in Repositories.
The token here is only for you to push code. The connection you create next is managed and needs no token — don’t confuse the two.
3. Create a Managed PlaidCloud Git Connection
Section titled “3. Create a Managed PlaidCloud Git Connection”A connection tells a Panel deployment where its code lives. For PlaidCloud Git the connection is managed — PlaidCloud supplies the host and credentials, so you enter only the repository target.
- Open Tools > Connections, click New Connection, and choose PlaidCloud Git.
- Give the connection an Account Name (for example,
Apps Repo). - Set Repository Path to
<org>/apps— the path you noted in step 2 — and Default Branch tomain. Leave Start Path blank unless your apps live in a subdirectory. - Click Create.
There is no Server URL, User, Password, or SSL/SSH field — PlaidCloud Git is managed, so the platform handles the host and authentication. For the complete form, including the connection’s Usage and Security Model (who in the workspace may use it), see PlaidCloud Git Connection.
On an older workspace build? If the form still shows a Server URL or credential fields, just leave them blank — the platform authenticates on your behalf either way.
4. Publish the Server App
Section titled “4. Publish the Server App”Now point a server deployment at that connection.
- Open My Panel Apps and click New Server App.
- Under Directory Settings, set an App Name and a URL Slug — the slug is the app’s URL and internal name, so use lowercase letters, digits, and hyphens, starting with a letter, 40 characters or fewer (for example,
hello-panel). - Under Git Connection and Publish Watcher:
- Git Connection — the PlaidCloud Git connection you created in step 3.
- Branch —
main. Pushes to this branch rebuild and redeploy the app automatically. - Entry Point —
app.py.
- Under Runtime, choose the CPU, Memory, Design (FAST for PlaidCloud’s modern look), and Idle window. Tick Allow Public Access only if the app should be reachable without signing in.
- Click Publish.
Every field in this dialog is described in Creating a Panel App.
5. Open the App — and Read Logs if It Doesn’t Start
Section titled “5. Open the App — and Read Logs if It Doesn’t Start”After you publish, the app builds: PlaidCloud clones the branch, installs your requirements.txt, and builds a container image. Its Status shows in the My Panel Apps list and updates automatically.
- When Status is Ready, open the app at
https://<your-tenant-host>/serve/<slug>/. The first request after it has been idle spins it up (~15 seconds). - If the build fails, open the app and check its Build logs — a missing dependency or an import error shows up there. See Using a Panel App for what each status means, how to read logs, and how to trigger a rebuild.
From here on, every push to the connection’s branch rebuilds and redeploys the app automatically — edit app.py, git push, and your change goes live. (Unless the app is locked — see Locking an App — in which case pushes are skipped until you unlock it.)
Next Steps
Section titled “Next Steps”- Creating a Panel App — richer examples, dependencies, and light/dark theming
- PlaidCloud Git Connection — the full connection form, usage, and security model
- Reading Data and the Signed-In User — query PlaidCloud data as the person viewing the app
- Repositories — branches, tokens, and collaborating in PlaidCloud Git