Portabase Logo
Installation

Proxmox VE

Deploy the Portabase Dashboard in a Proxmox VE LXC container with the community-scripts helper script.

Proxmox VE is an open-source virtualisation platform. The community-scripts project maintains a helper script that creates a Debian 13 LXC container and installs the Portabase Dashboard in it - PostgreSQL, tusd, nginx and the systemd services included.

Useful links: Portabase helper script · community-scripts website · Proxmox VE documentation

Unofficial and untested. This script is maintained by the community-scripts project, not by the Portabase team, and it is currently in their development repository - marked as in active development, may be unstable, incomplete, or subject to breaking changes, and not recommended for production use. It is also the only installation method we have not tested ourselves. For a supported deployment, use the CLI or Docker instead.


What the script installs

ItemValue
Container typeUnprivileged LXC
OSDebian 13
Default resources4 vCPU · 8192 MB RAM · 15 GB disk
Port3000 (nginx in front of the app on 127.0.0.1:8887)
DatabasePostgreSQL 17, installed inside the container
Uploadstusd, as the portabase-tusd service
Config file/opt/portabase/.env
Servicesportabase, portabase-tusd

Installation

Run the script from the Proxmox VE shell

Open the Shell of your Proxmox VE node and run:

bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/ct/portabase.sh)"

Always read the script before running it. The current, authoritative command is shown on the script page - check it there if the URL above has moved.

Accept the defaults, or pick Advanced to change the CPU, RAM, disk and network settings.

Open the Dashboard

When the script finishes it prints the URL, http://<container-ip>:3000.

Sign in with the default account it created:

UserPassword
admin@example.comPortabase123!

Change this password immediately after the first login, and set AUTH_SIGNUP_ENABLED=false in /opt/portabase/.env once your account exists.

Review the configuration

The script generates PROJECT_SECRET for you and writes it to /opt/portabase/.env, alongside DATABASE_URL, PROJECT_URL and TRUSTED_DOMAINS - both set to http://<container-ip>:3000.

PROJECT_SECRET encrypts everything the agents exchange with the Dashboard, and the credentials stored in it. Back up /opt/portabase/.env, and never change the secret once agents are connected - previously encrypted data would no longer be readable.

SMTP, storage backends and auth providers go in the same file - see environment variables. Apply changes with:

systemctl restart portabase

If you put the Dashboard behind a domain with HTTPS - see the reverse proxy guide - update PROJECT_URL and TRUSTED_DOMAINS to that public URL.

Updating

Re-run the same command and choose Update. The script stops the services, backs up /opt/portabase/.env, deploys the new release, rebuilds the app and restores your configuration.


Backing up databases hosted on Proxmox VE

Databases usually run in other LXC containers or VMs on the same node. Install one Agent per container or VM, then declare each database in the Dashboard using the container or VM IP and the database port. Make sure the Proxmox firewall allows the Agent to reach it.

Per-engine settings - required grants, dump options, restore behaviour - are documented in the databases section.


Troubleshooting

  • The Dashboard does not answer on port 3000. Check both services: systemctl status portabase portabase-tusd, and the logs with journalctl -u portabase -f.
  • The agent shows as offline. PROJECT_URL must be the URL the agent can actually reach. Update it in /opt/portabase/.env and restart. See the agent configuration.
  • Uploads or restores fail. The portabase-tusd service is down, or TUSD_BEHIND_PROXY was changed. Restart it with systemctl restart portabase-tusd.
  • The script itself fails. It is a community-scripts issue, not a Portabase one - report it on their GitHub with the advanced verbose-mode logs.

More answers in the FAQ.


Last updated on

On this page