Self-hostable prompt bank for individuals and teams. Create, version, and reuse prompts from a web UI, REST API, or MCP-compatible clients (for example Cursor).
Each account has its own prompts, settings, and API keys. An admin account can manage users and server options.
- Web UI to create and version prompts (with
{{variables}}in templates) - Multi-user accounts; each user’s prompts stay private to them
- Optional self-registration (admin can turn this on or off)
- API keys for REST and MCP access
- SQLite by default (single file), or MongoDB if you prefer it
- Docker Compose for a one-command deploy
Upcoming
- Tags: share a prompt with everyone on the server by adding the
publictag; group prompts by use case or any custom tags you define - Search: full-text search and filter by tag in the UI and MCP
- Allow admins to reset user passowrds
(upcoming)
Requirements: Docker (Compose optional). Image: sarthakpranesh/promptify. This is for a quick try; for daily use, read Configuration.
With docker run:
docker run -d \
--name promptify \
--restart unless-stopped \
-p 8080:8080 \
-e PROMPTIFY_SESSION_SECRET="replace-with-long-random-string" \
sarthakpranesh/promptify:latestWith compose
services:
promptify:
image: sarthakpranesh/promptify:latest
container_name: promptify
restart: unless-stopped
ports:
- "8080:8080"
environment:
PROMPTIFY_SESSION_SECRET: "replace-with-long-random-string"Open http://localhost:8080. The default admin credentials are admin@promptify.com and admin.
Refer .env.example and docker-compose.yml. Just copy and modify values as per your needs.
Data persists under ./container_data and the compose file already maps it to a local folder.
| Variable | Required | Description |
|---|---|---|
PROMPTIFY_SESSION_SECRET |
Yes | Long random string for signed login cookies. Keep it stable across restarts, unless you want to logout all your users. |
PROMPTIFY_ADMIN_EMAIL |
No | Admin email (default admin@promptify.com) , automatically gets updated to latest values from ENV on container restarts |
PROMPTIFY_ADMIN_PASSWORD |
No | Admin password (default admin), automatically gets updated to latest values from ENV on container restarts |
PROMPTIFY_LOG_PATH |
No | Path for the process log (default data/promptify.log) |
PROMPTIFY_MONGO_DB_URI |
No | If set, use MongoDB instead of SQLite |
PROMPTIFY_SERVER_ENV |
No | With Mongo: dev or prod (selects DB name). Default dev |
PROMPTIFY_SQLITE_PATH |
No | SQLite file path (default data/database.db) |
For users
- Sign in at
/(or register if the admin enabled registration). - Create and edit prompts on the dashboard.
- Open Settings to generate an API key for tools and automations.
For admins, everything a non admin user can do and below
- Open the Server console to:
- Toggle self-registration
- Add or remove users (the admin account cannot be removed)
- Download the process log
After you create an API key in Settings:
curl -H "Authorization: Bearer <API_KEY>" \
http://<your promptify url>:8080/api/promptsMCP endpoint: http://<your promptify url>:8080/mcp.
Example Cursor MCP config:
{
"mcpServers": {
"promptify": {
"url": "http://localhost:8080/mcp",
"headers": {
"Authorization": "Bearer YOUR_PROMPTIFY_API_KEY"
}
}
}
}| Problem | What to try |
|---|---|
| Cannot sign in | Defaults are admin@promptify.com / admin unless you changed env. Login expects a valid email address |
401 on /api/* or /mcp |
Use Authorization: Bearer <API_KEY> from Settings for the same user |
| Logged out after container restart | Keep PROMPTIFY_SESSION_SECRET unchanged so existing cookies still verify |
| Lost admin access | Set PROMPTIFY_ADMIN_EMAIL / PROMPTIFY_ADMIN_PASSWORD and restart; credentials sync onto the admin account |
Want to change code, fix bugs, or improve docs? See CONTRIBUTING.md for the tech stack, project layout, and local development workflow.
With love from India 🇮🇳