- Self-Hosted
- Cloud
Self-Hosted Installation
Run Pala on your own infrastructure for complete control. Ideal for teams with specific security, compliance, or customization requirements.Pala’s architecture is intentionally simple—a single monolithic application with a SQLite database. This means self-hosting requires minimal operational overhead. No complex microservices, separate database servers, or distributed systems to manage.Choose Your Hosting Path
Select the approach that matches your technical comfort level and requirements. All options can run Pala for $5-7/month.- Managed Platforms (Easiest)
- VPS Hosting (Most Control)
What you get: One-click deployment, automatic SSL, managed infrastructure. No server management required.Railway (Recommended)
- Click deploy button, done in 5 minutes
- From $5/month with persistent volumes included
- Automatic deployments and SSL certificates
- What you need: Just a Railway account
- Free tier includes 3GB persistent volume
- Global edge deployment
- Good for testing or small production sites
- What you need: Fly.io account + CLI installation
Quick start: If you just want to try Pala, click the Railway deploy button for instant setup. For production sites or when you need full control, choose the VPS path.
Local Development (Optional)
Local Development (Optional)
For contributing to Pala or testing locally:
- devenv (install here) or Dev Container compatible environment (VS Code)
- Git
1
Clone the repository
2
Open the devenv shell
If you have configured direnvto automatically open the devenv shell, you may ignore this step.
3
Install dependencies
4
Build the application
Initial build is required before starting the dev server.
5
Start development server
6
Access the application
- Main app (dev): http://localhost:5173
- Built app: http://localhost:8090
- PocketBase Admin: http://localhost:8090/_
Manual Deployment (VPS & Custom Infrastructure)
For VPS hosting (Hetzner, DigitalOcean, etc.) or custom infrastructure, deploy Pala as a Docker container using Docker Compose or by running Docker commands directly. See the PocketBase production deployment guide for additional information.
1
Point your domain to the server
Configure your DNS to point your domain name to the server where you’ll host Pala.
2
Prepare Docker deployment
Use Docker Compose (recommended) or run Docker commands directly. Use
ghcr.io/palacms/palacms:latest as the image.Required volume: Add a volume for the path /app/pb_data. This is where all files and the database will be stored.Optional environment variables (only take effect on first start):PALA_APP_URL- Sets base URL used for generating links in the backend (e.g., emails)PALA_SUPERUSER_EMAIL+PALA_SUPERUSER_PASSWORD- Creates initial superuser account for accessing PocketBase dashboard.PALA_USER_EMAIL+PALA_USER_PASSWORD- Creates initial user account for accessing PalaCMS.
3
Complete setup
Navigate to your domain name to complete setup. Setup only starts if a superuser was not created using environment variables in the previous step.
4
Configure PocketBase
Configure PocketBase settings by navigating to
https://your-domain.com/_/ (replace with your domain).5
Create your first site
Create your first site by navigating to
https://your-domain.com/admin (replace with your domain). Note that the site is created using the domain name used to access the CMS.