Use the wizard to get started
Visit the setup wizard to get a customized guide based on your environment. If you don't feel up to that yet, just follow the steps below.
Step 1: Install and run
Add Riposte to your project and get it running in one command:
npm install @riposte.co/server
Embedded mode (recommended): Mount the toolkit inside your app server:
import Fastify from 'fastify'
import { createRiposteServer } from '@riposte.co/server'
const app = Fastify()
async function start() {
const riposte = await createRiposteServer({
hostServer: app, // Simply omit this to run on its own port
initializeWorkspace: true,
})
await riposte.start()
await app.listen({ port: 4000, host: '0.0.0.0' })
console.log('Riposte ready at http://localhost:4000/riposte')
}
start().catch((error) => {
console.error('Riposte failed to start', error)
process.exit(1)
})
Standalone mode: Runs as its own process:
npx riposte-init
cd riposte
# update riposte/.env
npx riposte-run
That's it! Riposte automatically creates everything you need.
Embedded: If you have an existing API (Express, Fastify, Next.js). Standalone: If you want Riposte completely separate. You can switch anytime.
Step 2: Open the admin portal
Run your code and Riposte will:
- Create a
riposte/folder with configuration - Generate secure API keys and admin credentials
- Print the admin portal URL to your console
Open the admin portal and you'll see a simple dashboard that automatically detects your deployment mode and shows you exactly what to do next.
That's it! You're ready to start syncing emails. The admin portal guides you through connecting your first account.
Riposte works out of the box with SQLite and in-memory queues. Add PostgreSQL and Redis later for production.