pAIring security
Before going live
Section titled “Before going live”- Change the starter
admin/adminpassword, or create your own admin and disable that account. - Set a real
SECRET_KEYin.env. See Configuration. - Serve pAIring over HTTPS with a reverse proxy, then set
SESSION_COOKIE_SECURE=true. - Open only the pAIring port in the firewall. Keep engine ports (Ollama, Matricxon, the image engine) on a private network.
- For a Matricxon cluster, set an admin secret on the Cluster page.
- Connect only MCP tool servers you trust.
Accounts and logins
Section titled “Accounts and logins”- Passwords are stored as bcrypt hashes, never as plain text.
- Sessions use signed cookies. Anyone with the
SECRET_KEYcould forge one, so keep it private. - Login limit. After 5 failed attempts from one address, logins from it are refused for 15 minutes. The count is kept per pAIring process.
- Roles. Users, channel managers and admins. Admin pages and admin actions check the role on the server, not only in the browser.
- Disabling an account takes effect at once, even for sessions already open, and keeps its history.
Private data
Section titled “Private data”- Prompts and replies are saved only in your own database. They are never sent to us and never used to train a model.
- Each user’s chats are private. Nobody else can see or list them, admins included.
- Private documents are searched only by their owner’s chats.
- Channel messages are seen only by channel members. Admins must be members too.
Stored secrets
Section titled “Stored secrets”Some settings hold secrets that pAIring must send again later. These are encrypted in the database with a key derived from SECRET_KEY:
- The outbound proxy password.
- MCP server headers, such as API keys.
- Connector secrets, such as the RunPod API key.
- The Matricxon cluster admin secret.
They are never shown again after saving. Reading them needs both the database and the .env file.
The MySQL password sits inside DATABASE_URL in .env, next to SECRET_KEY. Protect that file with normal file permissions.
Engines and the cluster
Section titled “Engines and the cluster”- Ollama and Matricxon have no logins of their own. Keep them on a private network.
- With a Matricxon admin secret, every call that changes models, caches or the cluster must be signed, and a captured call cannot be replayed. pAIring signs its calls for you. See the Matricxon API.
- Saved chat caches on Matricxon are encrypted with AES-256-GCM. See Prompt cache.
Whatever an MCP tool returns is shown to the model. A tool server could try to steer the model with its output. Only connect servers you trust, and give each one the smallest access it needs.