Quick Start Guide
Get Chirp running in minutes with this quick start guide. We'll cover the fastest way to get a development environment up and running.
Option 1: Docker Quick Start (Recommended)
The fastest way to try Chirp is with Docker and Docker Compose.
1. Clone the Repository
git clone https://git.eidenz.moe/Eidenz/chirp.git
cd chirp
2. Set up Environment
Optionally create a .env file next to docker-compose.yml with your server's public IP (needed for voice channels):
echo "TURN_EXTERNAL_IP=your.public.ip" > .env
3. Start with Docker
docker compose up -d
This will:
- Start PostgreSQL database
- Start Redis for caching
- Build and start Chirp (backend + frontend)
- Start Coturn TURN server for voice channels
4. Access Chirp
- Web App: http://localhost:8080
- API: http://localhost:8080/api
5. Create First Account
- Open http://localhost:8080 in your browser
- Click "Register"
- Create your account
Note: If email is not configured, check server logs for the verification link:
docker compose logs chirp
Option 2: Manual Installation
Prerequisites
- Node.js v18+ and npm v9+ — https://nodejs.org/
- PostgreSQL 12+ — https://www.postgresql.org/download/
- Redis — https://redis.io/download/
- Git — https://git-scm.com/downloads
1. Clone and Install Dependencies
git clone https://git.eidenz.moe/Eidenz/chirp.git
cd chirp
npm install
2. Set up Database
# Create database and user
sudo -u postgres psql
CREATE DATABASE chirp_dev;
CREATE USER chirp_dev WITH PASSWORD 'your_password';
GRANT ALL PRIVILEGES ON DATABASE chirp_dev TO chirp_dev;
\q
Configure server/.env:
cp server/.env.example server/.env
Edit server/.env:
DB_HOST=localhost
DB_PORT=5432
DB_USER=chirp_dev
DB_PASSWORD=your_password
DB_NAME=chirp_dev
DB_SSL=false
3. Set JWT Secret
Generate a secure JWT secret:
node -e "console.log(require('crypto').randomBytes(64).toString('hex'))"
Add it to server/.env:
JWT_SECRET=your_generated_secret_here
4. Run Database Migrations
npm run db:migrate
5. Start Development Servers
# Start backend + frontend (recommended)
npm run dev
# Or start individually:
# npm run dev:server # Backend only (port 3001)
# npm run dev:web # Frontend only (port 5173)
# npm run dev:electron # Backend + Frontend + Desktop app
6. Access Chirp
- Web App: http://localhost:5173
- API: http://localhost:3001
- Electron App: Opens automatically (when using
dev:electron)
Verify Installation
Once Chirp is running, you should see:
Backend Server
Server running on port 3001
Frontend Development Server
VITE vX.X.X ready in XXX ms
➜ Local: http://localhost:5173/
Troubleshooting
Common Issues
Port already in use?
# Kill processes on ports 3001 or 5173
# Linux/Mac:
sudo lsof -ti:3001 | xargs kill -9
sudo lsof -ti:5173 | xargs kill -9
# Windows:
netstat -ano | findstr :3001
taskkill /PID <PID> /F
Database connection failed?
- Check PostgreSQL is running
- Verify database credentials in
server/.env - Ensure database was created
Frontend not loading?
- Check Node.js version (v18+)
- Delete
node_modulesand runnpm installagain - Clear browser cache
Migration errors?
npm run db:rollback # Rollback last migration
npm run db:migrate # Try again
Getting Help
- Check the logs:
docker compose logs chirpor look at terminal output - Git Issues: Report problems
Ready to explore? Learn about basic usage or configure for production.