The backend of the world's most popular open-source dating app.
There's screenshots of the app at https://github.com/duolicious.
Requirements: Docker (with Compose), jq, curl, ffmpeg, zstd
# 1) Clone and start the full dev stack
git clone https://github.com/duolicious/duolicious-backend
cd duolicious-backend
docker compose up -d
# 2) Wait for the API to be healthy
curl -sf http://localhost:5000/health && echo OK
# 3) Create a test user and seed data (OTP is auto-handled in dev)
./test/util/create-user.sh alice 30 1 true- The command above signs up
alice@example.com, finishes onboarding, answers questions, adds a photo and an audio bio. - Use
./test/util/create-user.sh bob 50 2to create more sample users.
Run one test file in a disposable environment:
./test/util/with-container.sh ./test/functionality1/status.shRun an entire test suite (e.g. all tests in functionality1):
./test/util/with-container.sh ./test/functionality.sh 1- API: http://localhost:5000/health
- Chat (WebSocket):
ws://localhost:5443 - Mock S3 UI/endpoint: http://localhost:9090
- MailHog (test email UI): http://localhost:8025
- Postgres (host port):
localhost:5432 - Status page: http://localhost:8080
- PgAdmin: http://localhost:8090
Prefer Docker? You already started everything with docker compose up -d.
Prefer running the services from source (hot reload)? See the "Local development" section in DEVELOPER.md.
Want to help strangers on the internet find love? There's three ways you can contribute!
- Tell your friends about Duolicious and share on social media! This is the best way to make it grow.
- Raise a pull request. Developer instructions can be found at DEVELOPER.md.
- Read our CONTRIBUTING guide for coding standards, how to run tests, and what makes a great PR.