This guide covers how to set up Submail on your local machine for development purposes.
git clone https://github.com/minseo0388/submail.git
cd submail
Submail uses a monorepo structure. Run npm install in the root directory to install dependencies for all workspaces.
npm install
Copy the example environment file to .env:
cp .env.example .env
Open .env and fill in the required fields. See the Environment Variables guide for details on getting your Discord keys.
Initialize the database (SQLite by default):
npx prisma db push
This command pushes the schema to your local database file (dev.db).
You can start both the web dashboard and the bot simultaneously:
npm run dev
Note on Port 25: Binding to port 25 often requires elevated privileges. On Linux/macOS, you might need to use
sudoor set capabilities. On Windows, ensure no other service is using port 25.
telnet localhost 25 or a mail client configured to use localhost).This project uses Turborepo for build orchestration.
npm run build: Builds all apps.npm run lint: Runs linters across the project.