✨ Features
- 🚀 Universal Screenshot Integration
- 🔒 Secure & Private - Role-based permissions, private files, and password protection
- 💾 Flexible Storage - Local filesystem and S3-compatible storage support
- 🖼️ Universal Preview - Preview images, videos, PDFs, and code with syntax highlighting
- 🔍 Smart Search - Search by filename, OCR content, and date with filters
- 📱 Modern UI - Clean, responsive interface built with shadcn/ui - easily customizable
- ⚙️ Configurable
- 📊 Admin Dashboard - Usage metrics, user management, and system configuration
- 👥 User Management - Role assignment, storage quotas, and content moderation
- 🔗 URL Shortener - Custom short URLs under your domain with click tracking
- 📝 Pastebin - Code and text sharing with syntax highlighting
- 🤖 OCR Processing - Automatic text extraction from images uploaded
- 🔌 Rich Embeds - Content embeds naturally on all your social media platforms.
🚀 Quick Start
Flare is quick to deploy—you only need a PostgreSQL server and Docker. Choose one of these options:
Railway (One-Click)
Click the button below to deploy Flare on Railway. Once deployed, just set your authentication secret and create your admin account.
Docker Deployment (Self-Hosted)
- Install
docker.ioanddocker-compose
- Create
docker-compose.ymlwith the following template:
version: '3.8'
services:
db:
image: postgres:17-alpine # lightweight, recent version; 16 or 15 also fine
container_name: flare-db
restart: unless-stopped
environment:
POSTGRES_USER: flareuser # change if you want
POSTGRES_PASSWORD: your-secure-password-here # ^f^p CHANGE THIS to something strong
POSTGRES_DB: flaredb # database name Flare will use
volumes:
- ./postgres-data:/var/lib/postgresql/data # persistent storage
healthcheck:
test: ["CMD-SHELL", "pg_isready -U flareuser -d flaredb"]
interval: 10s
timeout: 5s
retries: 5
flare:
image: flintsh/flare:latest
container_name: flare-app
restart: unless-stopped
ports:
- "3000:3000" # change left side if you want different host port
environment:
DATABASE_URL: postgresql://flareuser:your-secure-password-here@db:5432/flaredb?schema=public
NEXTAUTH_SECRET: securestuffhere # generate with: openssl rand -base64 32
NEXTAUTH_URL: http://localhost:3000 # or https:// if using reverse proxy
volumes:
- ./uploads:/app/uploads # where files/screenshots/videos are stored
depends_on:
db:
condition: service_healthy
- Run
docker-compose up -d
- Open http://localhost:3000 to complete the setup and create your admin account.
flintsh/flare.
💬 Support
Need help with your instance? Join my Discord for support, discussions, and updates!
📝 Configuration
Flare is built to be as configurable as possible. Head to /dashboard/settings to tweak different settings like:
- Setting storage quotas and file size limits for users
- Defining upload rules and restrictions
- Configuring registration options and user permissions
- Customizing the site's appearance and branding
- Managing advanced settings like custom CSS and HTML
Single Sign-On (OIDC)
Configure your identity provider in /dashboard/settings, with
https://your-flare-host/api/auth/callback/oidc as its redirect URI. Keep a local
administrator login available; /auth/login?local=1 bypasses OIDC auto-login.
SSO sign-in identifies accounts by the provider's issuer and subject, not email. New identities can create accounts when auto-provisioning is enabled and their email is unused. A matching email never links or replaces an existing account: local users must use password sign-in, and already linked users must use their original SSO identity. With auto-provisioning disabled, only already linked SSO identities can sign in; precreating a local account with the same email does not enable SSO. An explicit account-linking flow is not yet available.
Older development configurations containing allowLinking are accepted, but
that setting is ignored. Existing SSO links and local credentials are preserved.
📜 License
Flare is licensed under the MIT License.