Docs / App Marketplace

App Marketplace guide

Install self-hosted apps such as Nextcloud, Immich, Vaultwarden and Uptime Kuma on your VPS in one click, then restart, stop or remove them from the portal.

App Marketplace Overview

The App Marketplace installs popular self-hosted applications on your VPS with a single click. Each app runs as its own Docker Compose stack on your server.

Key Features

  • One-click installs — Pick an app and click Install; most are running within a few minutes (your first install also sets up Docker)
  • Docker-based — Every app has its own Docker Compose stack and data volumes
  • Generated credentials — Where an app needs passwords, they're generated for you and shown in the portal
  • Firewall ports opened for you — Installing an app adds cloud firewall rules for the ports it needs; uninstalling removes them
  • Managed from the portal — Restart, stop or uninstall any app from your VPS's App Marketplace tab
Info
The App Marketplace is available on every active VPS except Proxmox VE nodes. Each app needs a minimum amount of RAM (listed under Available Apps), and Docker is installed automatically with your first app.
Info
How apps and the cloud firewall interact: if your firewall has no inbound rules (All Open), every port is already reachable, so installing an app adds no rule. If you have inbound rules, installing an app adds an inbound rule for its web port(s), and uninstalling removes it. Applying a preset replaces all rules — including the ones your apps added — so re-add those ports afterwards. Database apps (MySQL, PostgreSQL, Redis, MariaDB and Valkey) never get a firewall rule.

Installing Apps

Apps are installed from the App Marketplace tab on your VPS service page.

  1. 1
    Go to Services and click your VPS.
  2. 2
    Click the App Marketplace tab.
  3. 3
    Browse the catalog or filter by category (Web, Database, Monitoring, Dev Tools, File Storage, Management, Security, Communication, Media, Analytics, AI, Backup).
  4. 4
    Click Install on the app you want. Apps that need more RAM than your server has are marked "Needs … RAM" and can't be installed.
  5. 5
    Confirm the installation in the dialog. The app starts installing right away.

Most apps are ready within a few minutes. The status shows Installing... while the app is set up and Running when it's ready.

First App Installation

If Docker isn't on your server yet, it's installed first — set up to pull Docker Hub images through our local cache — so your first install takes longer than later ones.

Access Credentials

Once an app is running, its address appears under its name on the app card. Click Show Credentials to see generated passwords and setup notes; each value has a copy button.

Tip
Each app has a default port (listed under Available Apps). If another marketplace app on your server already uses it, the next port up is used, and the app card shows the port in use. The marketplace doesn't check ports used by other software on your server — if a port is already taken, the install fails; free the port and install the app again.

Managing Apps

Installed apps are listed at the top of the App Marketplace tab with their status and controls.

Available Actions

ActionDescription
RestartRestart the app's containers (this also starts a stopped app)
StopStop the app's containers. The status keeps showing Running — click Restart to start the app again.
UninstallRemove the app, its data and the firewall rules it added
RemoveClear a failed installation (shown on failed apps)

Status Indicators

StatusMeaning
RunningThe app is installed and was started
Installing...The app is being set up
FailedInstallation failed — the card shows the error. Click Remove, wait for the app to disappear, then install it again.
Removing...The app is being uninstalled
Warning
Uninstalling an app removes its Docker volumes and all of its data. This can't be undone, so export anything important first.

Accessing Your App

Web apps get an Admin URL — http://your-VPS-IP:port (Portainer uses https). Click it to open the app in your browser. Database apps (MySQL, PostgreSQL, Redis, MariaDB and Valkey) aren't opened in the cloud firewall: connect from the server itself, from another server over your VPC network, or through an SSH tunnel. If your firewall has no rules at all, their ports are reachable from the internet, so keep a preset applied.

Available Apps

The marketplace offers 40 applications across 12 categories. Ports are defaults — the first is the app's web or main port, and any others are opened in your firewall too.

Web

AppDescriptionDefault PortMin RAM
WordPressWordPress with its own MySQL database8080512 MB
GhostGhost publishing platform (stores its data in SQLite)23681 GB
NginxNginx web server and reverse proxy80256 MB
CaddyWeb server with automatic HTTPS (Let's Encrypt)8085, 443256 MB
Nginx Proxy ManagerReverse proxy with a web UI and Let's Encrypt certificates81, 80, 443512 MB

Database

AppDescriptionDefault PortMin RAM
MySQLMySQL 8.0 database server3306 (no firewall rule)512 MB
PostgreSQLPostgreSQL 16 database server5432 (no firewall rule)512 MB
RedisRedis 7 in-memory data store6379 (no firewall rule)256 MB
AdminerWeb UI for managing MySQL, PostgreSQL and SQLite databases8082256 MB
MinIODeprecated. S3-compatible object storage with a web console. Use Garage or SeaweedFS for new installs.9000, 9001512 MB
GarageLightweight S3-compatible object storage3900256 MB
SeaweedFSS3-compatible object storage with versioning, object lock and lifecycle rules83331 GB
MariaDBMariaDB 11 database server (MySQL-compatible)3307 (no firewall rule)512 MB
ValkeyValkey 8 in-memory data store (Redis-compatible)6380 (no firewall rule)256 MB

Monitoring

AppDescriptionDefault PortMin RAM
Uptime KumaUptime monitoring for websites and services3001512 MB
GrafanaDashboards for your metrics3000512 MB
PrometheusMetrics collection and time-series database9090512 MB
BeszelLightweight server monitoring with charts and alerts8090256 MB

Dev Tools

AppDescriptionDefault PortMin RAM
GiteaSelf-hosted Git service3300512 MB
n8nWorkflow automation56781 GB
Code ServerVS Code in the browser84431 GB
BookStackWiki and documentation platform80861 GB

File Storage

AppDescriptionDefault PortMin RAM
NextcloudFile sync and sharing80811 GB
ImmichPhoto and video backup22836 GB
Paperless-ngxDocument scanning, OCR and search80102 GB

Management

AppDescriptionDefault PortMin RAM
PortainerWeb UI for managing Docker9443256 MB

Security

AppDescriptionDefault PortMin RAM
VaultwardenBitwarden-compatible password manager8084256 MB
WireGuard VPNWireGuard VPN with a web UI51821, 51820 UDP256 MB
KeycloakSingle sign-on and identity provider80892 GB
HeadscaleSelf-hosted Tailscale control server8087256 MB
AdGuard HomeDNS server that blocks ads and trackers3053, 53 TCP+UDP512 MB

Communication

AppDescriptionDefault PortMin RAM
NtfyPush notifications over HTTP8083256 MB
MemosNote-taking app5230256 MB
ListmonkNewsletters and mailing lists9001512 MB

Media

AppDescriptionDefault PortMin RAM
JellyfinMedia server for movies, TV and music80961 GB

Analytics

AppDescriptionDefault PortMin RAM
Plausible AnalyticsCookie-free website analytics80002 GB
UmamiLightweight, cookie-free website analytics3002512 MB

AI

AppDescriptionDefault PortMin RAM
OpenClawAI assistant gateway for chat apps, installed with your Piedmont AI token (see Using with OpenClaw)18789512 MB
Open WebUIChat interface for AI models (add your AI provider's API key in its settings)80881 GB

Backup

AppDescriptionDefault PortMin RAM
KopiaEncrypted, deduplicated backups with a web UI51515512 MB
Tip
Each app lives in /opt/piedmont-apps/<app>/ on your VPS (for example /opt/piedmont-apps/uptime-kuma/). For advanced setups you can edit its docker-compose.yml over SSH and run docker compose up -d in that folder to apply the change. Uninstalling deletes the folder.