Quick Start
If you are deploying Palpo for the first time, follow the steps below to set up a functional Matrix server in minutes. This guide references other sections of the documentation for deeper exploration when needed.
Prerequisites
- A 64-bit Linux, macOS, or Windows server with at least 2 vCPUs and 4 GB RAM recommended.
- PostgreSQL 17 or later. See the PostgreSQL Guide for installation instructions.
- A publicly accessible domain name, and optionally a reverse proxy (Caddy, Traefik, Nginx, etc.).
- Docker installed (recommended) or a shell environment capable of running the Palpo executable.
1. Initialize the Database
-
Install PostgreSQL for your platform by following the system-specific guides in the Installation section.
-
Create a dedicated database user and database for Palpo:
Replace
change_mewith a strong password. If using the official Docker Compose template, this step can be completed directly via environment variables in the Compose file.
2. Choose a Deployment Method
Docker Compose (Recommended)
-
Download the example configuration
palpo.toml. -
Select a Compose template (basic, Caddy, Traefik, etc.) as needed, and rename
compose.*.ymltocompose.yml. -
Modify placeholders such as
POSTGRES_PASSWORDand domain name, and create the Docker network for the proxy if required. -
Start the services:
For more details, refer to Docker Deployment.
Direct Binary Execution
-
Download the appropriate archive for your system from GitHub Releases.
-
Extract the archive, copy the example configuration, and edit it:
-
Follow the system-specific guides (Linux, macOS, Windows) to install dependencies and configure systemd/launchd/services.
3. Initialize Configuration
Open palpo.toml and configure at least the following settings:
server_name: Set to your primary domain, e.g.,example.com.[db].url: Provide the correct PostgreSQL connection string, e.g.,postgresql://palpo:change_me@localhost:5432/palpo.listen_addr: Set the local listen address, e.g.,0.0.0.0:8008. If you use a reverse proxy, consider binding to127.0.0.1:8008.
For additional options (registration policies, media directory, reverse proxy, TURN, etc.), see the Configuration section.
4. Start Palpo
-
Docker: Run
docker compose up -dor, after modifying the configuration, executedocker compose restart palpo. -
Local binary: In the directory containing the Palpo executable, run:
When you see Server started in the logs, the service is listening on ports 8008/8448.
5. Verify and Next Steps
- Visit
https://your.domain/_matrix/client/versions. It should return JSON containingpalpo, or directly visithttps://your.domainto confirm you see “Hello Palpo!”. - Use a client that supports registration tokens (e.g., Element Web) to connect to your server and create the first administrator account.
- Execute administrative commands in the
#adminsroom or viapalpo --consoleto generate more registration tokens or manage rooms. For details, see the Administration Guide.
After completing the basic deployment, it is recommended to:
- Configure reverse proxy and delegation for production environments.
- Set up TURN service to enable voice calls.
- Browse the Development section to learn how to contribute.
Common Issues
- Port already in use: Change
listen_addrinpalpo.tomlto a different port, e.g.,0.0.0.0:8009. - Database connection refused: Verify PostgreSQL is running (
systemctl status postgresqlorbrew services list), and check that the[db].urlinpalpo.tomlmatches your database credentials. - "Hello Palpo!" not showing: Ensure the domain or IP you are visiting matches
server_namein the configuration. If using a reverse proxy, check that requests to/_matrixare being forwarded correctly. - Registration fails: Make sure you are using a client that supports registration tokens (e.g., Element Web). Open registration without tokens is disabled by default for security.
You now have a functional Palpo server ready to invite users and start communicating.