Bulkmailer / BulkMailer-Backend

Backend for Bulk Mailer
https://bulkmailer.suhaila.tech
7 stars 4 forks source link
aws-ec2 celery celerybeat django django-rest-framework postgresql redis

Bulk-Mailer-Backend

bulkmailer

A Django based backend system for bulk mailing using PostgreSQL, Celery, Nginx, Gunicorn, and deployed on a virtual machine.

FEATURES

RUNNING THE SERVER

  1. Clone the repository:
git clone https://github.com/bulkmailer/BulkMailer-Backend.git

To run the server, you need to have Python installed on your machine. If you don't have it installed, you can follow the instructions here to install it.

  1. Install, Create and activate a virtual environment:
pip install virtualenv
virtualenv venv

Activate the virtual environment

source venv/bin/activate
  1. Install the dependencies:
pip install -r requirements.txt
  1. Setup .env file in Bulk-Mailer-Backend/bulkmailer
EMAIL_HOST_USER = ''
EMAIL_HOST_PASSWORD = ''

SECRET_KEY = '' 

DBPASSL = ''
DBHOSTL = ''
DBNAMEL = ''
DBUSERL = ''
DBPORTL = ''

TIME_ZONE = ''

CSRF_TRUSTED_ORIGINS = ''
CORS_ALLOWED_ORIGINS = ''

CELERY_BROKER_URL = ''
  1. Create a PostgreSQL database and connect it by entering credentials in .env file, once connected run the migrate command
python manage.py migrate
  1. Run the backend server on localhost:
python manage.py runserver

You can access the endpoints from your web browser following this url

http://127.0.0.1:8000
  1. You can create a superuser executing the following commands
python manage.py createsuperuser

A prompt will appear asking for email followed by password. To access the django admin panel follow this link and login through superuser credentials

http://127.0.0.1:8000/admin/
  1. Start the Celery worker (On a separate terminal with activated virtual environment):
celery -A bulkmailer.celery worker --pool=solo -l info
  1. Run celerybeat (On a separate terminal with activated virtual environment):
celery -A bulkmailer beat -l info

Community Support

If you have any questions, need help, or want to discuss the project, feel free to join our Discord community:

Discord