System requirements
- Node.js v18 or higher
- npm, yarn, or pnpm
- Chrome browser (for the extension)
- Git
Installation steps
Clone the repository
First, clone the Email Tracker repository:Install dependencies
Install all dependencies for the monorepo:extension/- Chrome extension (MV3)server/- Express tracker + dashboard + SQLiteshared/- Shared token/types package
Build the workspaces
Build the shared library and server packages in order:1
Build the shared package
The shared package contains token encoding/decoding logic used by both the server and extension:
2
Build the server package
Build the TypeScript server to JavaScript:
The extension does not require a build step as it uses vanilla JavaScript.
Start the server
Start the tracking server with required environment variables:Verify server health
Check that the server is running correctly:Load the Chrome extension
Install the extension in Chrome using Developer mode:1
Open Chrome extensions
Navigate to
chrome://extensions in your Chrome browser.2
Enable Developer mode
Toggle Developer mode on using the switch in the top right corner.
3
Load unpacked extension
- Click the Load unpacked button
- Navigate to your Email Tracker installation directory
- Select the
extension/folder - Click Select or Open
4
Verify installation
The Gmail Email Tracker extension should now appear in your extensions list and toolbar.
Configure extension settings
Set up the extension to communicate with your tracking server:1
Open extension popup
Click the Email Tracker extension icon in your Chrome toolbar.
2
Set Tracker Base URL
Enter your tracker URL:
- For local development:
http://localhost:8090 - For production: your HTTPS domain (e.g.,
https://tracker.yourdomain.com)
3
Set Dashboard Token
Enter the same
DASHBOARD_TOKEN value you used when starting the server.4
Save settings
Save your configuration. The extension is now ready to track emails.
Production deployment
For production use, you’ll need additional setup:HTTPS requirement
Required infrastructure
- Domain: Point your domain DNS to your server
- Firewall: Open ports 80 and 443
- Node server: Run on localhost (e.g.,
127.0.0.1:8090) - Reverse proxy: Use Caddy or Nginx to:
- Terminate TLS
- Proxy requests to your Node server
deploy/ directory:
deploy/Caddyfiledeploy/nginx-email-tracker.conf
Process management
Run the server with a process manager for reliability:- systemd: For Linux system services
- pm2: Cross-platform process manager
Repository structure
Understanding the project layout:Next steps
- Configure environment variables for your deployment
- Review the quickstart guide for testing
- Set up monitoring and backups for production use