Skip to content

garanda21/geoposler

Repository files navigation

Geoposler

Is a Dockerized email campaign management application that allows users to create templates, manage contact lists, and send HTML-based emails via SMTP. It includes features to simplify email marketing campaigns and integrates seamlessly with a MySQL database for managing data.

Image 2

Features

  • Create and manage email templates.
  • Manage contact lists efficiently.
  • Send HTML emails using SMTP parameters.
  • Seamless MySQL database integration.

Requirements

  1. Docker installed on your system.
  2. MySQL database connection details:
    • DB_HOST
    • DB_USER
    • DB_PASSWORD
    • DB_NAME

Environment Variables

Variable Description Required
DB_HOST MySQL database hostname or IP address Yes
DB_USER MySQL database username Yes
DB_PASSWORD MySQL database password Yes
DB_NAME MySQL database name Yes

Running the Application

  1. Clone the repository:
    git clone https://github.com/garanda21/geoposler.git
  2. Navigate to the project directory:
    cd geoposler
  3. Set up the .env file with the required variables:
    DB_HOST=localhost
    DB_USER=root
    DB_PASSWORD=mypassword
    DB_NAME=mycooldb
  4. Start the application with Docker Compose:
    docker-compose up --build

Docker Compose Example

Below is an example docker-compose.yml to set up Geoposler along with a MySQL database:

services:
  geoposler:
    image: ghcr.io/garanda21/geoposler:latest
    ports:
      - "3454:80"
    environment:
      - DB_HOST=mysql
      - DB_USER=root
      - DB_PASSWORD=mypassword
      - DB_NAME=mycooldb
    depends_on:
      mysql:
        condition: service_healthy
    restart: unless-stopped

  mysql:
    image: mysql:8.0
    container_name: mysql
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: mypassword
      MYSQL_DATABASE: mycooldb
    volumes:
      - mysql_data:/var/lib/mysql
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
      interval: 10s
      timeout: 5s
      retries: 3

volumes:
  mysql_data:

IMPORTANT NOTICE: The mySQL database service must be up and in a healthy state before starting the Geoposler service to ensure a successful connection to the database, using docker-compose you should add depends_on and healthcheck properties.

Tech Stack

  • Frontend: Vite, React, Tailwind CSS
  • Backend: Node.js
  • Database: MySQL
  • Containerization: Docker

License

This project is licensed under the MIT License.


Contributing

Contributions are welcome! Please open an issue or submit a pull request for any improvements or fixes.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages