Aller au contenu

Community Edition

Ce contenu n’est pas encore disponible dans votre langue.

Pia Server is available as a free Community Edition for self-hosting. You get local authentication, AI proxy with bring-your-own API keys, cloud sync between desktop clients, and an admin dashboard — all running on your own infrastructure.

FeatureCommunity Edition
Local authenticationYes
AI proxy (BYOK)Yes
Cloud syncYes
Admin dashboardYes
OAuth (Google/Microsoft)
E2EE / device management
Max desktop users5
Max admins1
  1. Register for a free account at pia-ai.de
  2. Navigate to your account settings and select Community License
  3. Download your license.json file

The license is version-locked to the current major release. When a new major version ships, re-register for a new license (always free for Community Edition).

The fastest way to get started. A single Docker image serves all editions — the license file determines which features are enabled.

Terminal window
docker run -d \
--name pia-server \
-p 8080:8080 \
-v ./license.json:/app/license.json \
-v ./data:/app/data \
ghcr.io/pia-ai-dev/pia-server:latest

Your server is now running at http://localhost:8080.

For production use, create a docker-compose.yml:

services:
pia-server:
image: ghcr.io/pia-ai-dev/pia-server:latest
ports:
- "8080:8080"
volumes:
- ./license.json:/app/license.json
- pia-data:/app/data
environment:
- JWT_SECRET_KEY=<generate-a-random-64-char-string>
restart: unless-stopped
volumes:
pia-data:
Terminal window
docker compose up -d

If you prefer running without Docker:

  1. Download the latest server binary from the releases page
  2. Place your license.json in the same directory as the binary
  3. Run the server:
Terminal window
./Pia.Server

If the server starts without a license file, it enters setup mode:

  1. Open http://localhost:8080 in your browser
  2. You’ll be redirected to the setup page
  3. Either upload your license.json file or paste the license content
  4. The server activates immediately — no restart needed

Configure the server using environment variables:

VariableDefaultDescription
JWT_SECRET_KEYSecret key for JWT token signing (required)
LICENSE_PATH./license.jsonPath to the license file
DATABASE_PATH./data/pia.dbSQLite database file location
URLShttp://+:8080Listen address and port

For HTTPS in production, put a reverse proxy in front of Pia Server.

pia.example.com {
reverse_proxy localhost:8080
}

Caddy handles TLS certificates automatically via Let’s Encrypt.

server {
listen 443 ssl;
server_name pia.example.com;
ssl_certificate /etc/letsencrypt/live/pia.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/pia.example.com/privkey.pem;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}

Once your server is running:

  1. Open Pia desktop client
  2. Go to Settings > Cloud Sync
  3. Enter your server URL (e.g., https://pia.example.com)
  4. Create an account or sign in

Up to 5 desktop clients can sync through a Community Edition server.

After activation, manage your license from the Admin Dashboard:

  • View current license info (edition, features, limits)
  • Replace your license for version upgrades
  • See which features are enabled vs. locked

Need OAuth, E2EE, or more users? Contact us about an Enterprise license at pia-ai.de. The upgrade is seamless — just replace the license file. Same server, same data, more features.