- Introduction
- Features
- Tech Stack
- Prerequisites
- Installation
- Configuration
- Usage
- API Endpoints
- Frontend
- Contributing
- License
Ghost-Listmonk Connector is an open-source project that bridges the gap between Ghost CMS and Listmonk, enabling seamless integration of email marketing capabilities with your Ghost blog. This connector allows you to automate subscriber management, trigger email campaigns based on Ghost events, and provides a user-friendly dashboard for monitoring and managing your email marketing efforts.
- Automatic synchronization of Ghost subscribers with Listmonk
- Trigger-based actions for various Ghost events (e.g., new post published, new member registered)
- Delayed execution of actions. You can use this to create mail chains. For example send a new subscriber emails a day later, a week later, etc.
- Customizable email templates and campaigns (In Listmonk)
- Real-time dashboard for monitoring Son (Subscriber Operations Notifier) performance
- Webhook management for Ghost events
- Caching system for improved performance
- User authentication and authorization
(Click the image to see on youtube)
- Gin: Web framework
- JWT-Go: JSON Web Token authentication
- MySQL: Relational database
- Redis: Caching and task queue
- Asynq: Distributed task queue
- Logrus: Structured logger
- Next.js: React framework
- Tailwind CSS: Utility-first CSS framework
- shadcn/ui: UI component library
- Recharts: Charting library
- Go 1.21 or later
- Node.js 18 or later
- MySQL 8.0 or later
- Redis 6.0 or later
- Ghost CMS instance
- Listmonk instance
-
Clone the repository:
git clone https://github.com/yourusername/ghost-listmonk-connector.git cd ghost-listmonk-connector
-
Install backend dependencies:
go mod tidy
-
Install frontend dependencies:
cd ui npm install
-
Build the project:
make build-all
-
Copy the example environment file and edit it with your settings:
cp .env.example .env
-
Set up your database:
make migrate-up
-
Configure your Ghost webhook to point to your connector's webhook endpoint.
-
Set up Listmonk API credentials in the
.env
file.
-
Start the server:
./main
-
Access the dashboard at
http://localhost:8808
(or your configured port). -
Log in using the credentials set in your
.env
file. -
Create and manage Sons (Subscriber Operations Notifiers) through the dashboard.
POST /api/auth/magic-link
: Request a magic link for authenticationGET /api/auth/verify
: Verify magic link and authenticate userGET /api/sons
: List all SonsPOST /api/sons
: Create a new SonGET /api/sons/:id
: Get details of a specific SonPUT /api/sons/:id
: Update a SonDELETE /api/sons/:id
: Delete a SonGET /api/webhook-logs
: Get webhook logsGET /api/son-execution-logs
: Get Son execution logsGET /api/son-stats
: Get Son performance statistics
For a complete API documentation, please refer to the API Documentation.
The frontend is built with Next.js and provides a user-friendly interface for managing Sons, viewing logs, and monitoring performance. Key features include:
- Dashboard with recent activity and Son performance charts
- Son creation and management interface
- Webhook log viewer
- Son execution log viewer
To start the frontend in development mode:
cd ui
npm run dev
We welcome contributions to the Ghost-Listmonk Connector! Please follow these steps to contribute:
- Fork the repository
- Create a new branch:
git checkout -b feature/your-feature-name
- Make your changes and commit them:
git commit -m 'Add some feature'
- Push to the branch:
git push origin feature/your-feature-name
- Submit a pull request
Please make sure to update tests as appropriate and adhere to the Code of Conduct.
This project is licensed under the MIT License - see the LICENSE file for details.