<h1 align="center">
<a href="https://prompts.chat">
Run your own prompts.chat instance with a single command.
Sign in to like and favorite skills
Run your own prompts.chat instance with a single command.
docker run -d \ --name prompts \ -p 4444:3000 \ -v prompts-data:/data \ ghcr.io/f/prompts.chat
First run: The container will clone the repository and build the app (~3-5 minutes).
Subsequent runs: Starts immediately using the cached build.
Open http://localhost:4444 in your browser.
Customize your instance with environment variables:
docker run -d \ --name my-prompts \ -p 4444:3000 \ -v prompts-data:/data \ -e PCHAT_NAME="Acme Prompts" \ -e PCHAT_DESCRIPTION="Our team's AI prompt library" \ -e PCHAT_COLOR="#ff6600" \ -e PCHAT_AUTH_PROVIDERS="github,google" \ -e PCHAT_LOCALES="en,es,fr" \ ghcr.io/f/prompts.chat
Note: Branding is applied during the first build. To change branding later, delete the volume and re-run:
docker rm -f my-prompts docker volume rm prompts-data docker run ... # with new env vars
All variables are prefixed with
PCHAT_ to avoid conflicts.
branding.* in prompts.config.ts)| Env Variable | Config Path | Description | Default |
|---|---|---|---|
| | App name shown in UI | |
| | App description | |
| | Logo path (in public/) | |
| | Dark mode logo | Same as |
| | Favicon path | |
theme.* in prompts.config.ts)| Env Variable | Config Path | Description | Default |
|---|---|---|---|
| | Primary color (hex) | |
| | Border radius: | |
| | UI style: | |
| | Spacing: | |
auth.* in prompts.config.ts)| Env Variable | Config Path | Description | Default |
|---|---|---|---|
| | Providers: | |
| | Allow public signup | |
i18n.* in prompts.config.ts)| Env Variable | Config Path | Description | Default |
|---|---|---|---|
| | Supported locales (comma-separated) | |
| | Default locale | |
features.* in prompts.config.ts)| Env Variable | Config Path | Description | Default |
|---|---|---|---|
| | Enable private prompts | |
| | Enable versioning | |
| | Enable categories | |
| | Enable tags | |
| | Enable comments | |
| | Enable AI search | |
| | Enable AI generation | |
| | Enable MCP features | |
| Variable | Description | Default |
|---|---|---|
| Secret for authentication tokens | Auto-generated |
| Internal container port | |
| PostgreSQL connection string | Internal DB |
For production, set
AUTH_SECRET explicitly:
docker run -d \ --name prompts \ -p 4444:3000 \ -v prompts-data:/data \ -e AUTH_SECRET="$(openssl rand -base64 32)" \ -e PCHAT_NAME="My Company Prompts" \ ghcr.io/f/prompts.chat
docker run -d \ --name prompts \ -p 4444:3000 \ -v prompts-data:/data \ -e AUTH_SECRET="your-secret-key" \ -e PCHAT_AUTH_PROVIDERS="github,google" \ -e AUTH_GITHUB_ID="your-github-client-id" \ -e AUTH_GITHUB_SECRET="your-github-client-secret" \ -e AUTH_GOOGLE_ID="your-google-client-id" \ -e AUTH_GOOGLE_SECRET="your-google-client-secret" \ ghcr.io/f/prompts.chat
docker run -d \ --name prompts \ -p 4444:3000 \ -v prompts-data:/data \ -e PCHAT_FEATURE_AI_SEARCH="true" \ -e OPENAI_API_KEY="sk-..." \ ghcr.io/f/prompts.chat
Mount your logo file:
docker run -d \ --name prompts \ -p 4444:3000 \ -v prompts-data:/data \ -v ./my-logo.svg:/data/app/public/logo.svg \ -e PCHAT_NAME="My App" \ ghcr.io/f/prompts.chat
Data is stored in
/data inside the container:
/data/postgres - PostgreSQL database filesMount a volume to persist data:
docker run -d \ -v prompts-data:/data \ ghcr.io/f/prompts.chat
# Backup database docker exec prompts pg_dump -U prompts prompts > backup.sql # Restore database docker exec -i prompts psql -U prompts prompts < backup.sql
Build and run locally:
docker build -f docker/Dockerfile -t prompts.chat . docker run -p 4444:3000 -v prompts-data:/data prompts.chat
The container includes a health check endpoint:
curl http://localhost:4444/api/health
Response:
{ "status": "healthy", "timestamp": "2024-01-01T00:00:00.000Z", "database": "connected" }
# All logs docker logs prompts # Follow logs docker logs -f prompts # PostgreSQL logs (inside container) docker exec prompts cat /var/log/supervisor/postgresql.log # Next.js logs (inside container) docker exec prompts cat /var/log/supervisor/nextjs.log
# Connect to PostgreSQL docker exec -it prompts psql -U prompts -d prompts # Run SQL query docker exec prompts psql -U prompts -d prompts -c "SELECT COUNT(*) FROM \"Prompt\""
docker exec -it prompts bash
Container won't start:
docker logs promptslsof -i :4444Database connection errors:
docker exec prompts cat /var/log/supervisor/postgresql.logAuthentication issues:
AUTH_SECRET is set for productionMinimum:
Recommended:
# Pull latest image docker pull ghcr.io/f/prompts.chat # Stop and remove old container docker stop prompts && docker rm prompts # Start new container (data persists in volume) docker run -d \ --name prompts \ -p 4444:3000 \ -v prompts-data:/data \ -e AUTH_SECRET="your-secret-key" \ ghcr.io/f/prompts.chat
/data volumeserver { listen 443 ssl http2; server_name prompts.example.com; ssl_certificate /etc/letsencrypt/live/prompts.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/prompts.example.com/privkey.pem; location / { proxy_pass http://localhost:4444; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; 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; proxy_cache_bypass $http_upgrade; } }
MIT