Yes, Phoenix can be self-hosted in Kubernetes with a remote PostgreSQL database. You need to set the `PHOENIX_SQL_DATABASE_URL` environment variable in your deployment to point to your remote PostgreSQL instance (e.g., `postgresql://user:password@host:port/dbname`). The official documentation provides Kubernetes manifests and kustomize overlays for both SQLite and PostgreSQL backends, and recommends using PostgreSQL for production or multi-user scenarios. Migrations are handled automatically at startup, but ensure your database URL is correct and that the required dependencies (like `asyncpg`) are installed in your container image. For more details and example manifests, see the Kubernetes deployment guide and configuration docs (<https://docs.arize.com/phoenix/self-hosting/deployment-options/kubernetes|docs.arize.com>, <https://github.com/Arize-ai/phoenix/blob/main/docs/deployment/kubernetes.md|GitHub deployment docs>, <https://docs.arize.com/phoenix/self-hosting/configuration|configuration>).
Would you like a step-by-step example manifest or troubleshooting tips?
Sources:
- <https://docs.arize.com/phoenix/self-hosting/deployment-options/kubernetes|Kubernetes Deployment Options>
- <https://github.com/Arize-ai/phoenix/blob/main/docs/deployment/kubernetes.md|Phoenix Kubernetes Deployment Docs>
- <https://docs.arize.com/phoenix/self-hosting/configuration|Phoenix Configuration>
- <https://github.com/Arize-ai/phoenix/blob/main/docs/deployment/persistence.md|Persistence Docs>
- <https://arize-ai.slack.com/archives/C04R3GXC8HK/p1715990445.892599|Slack Example>