# eVibes ![LOGO](core/docs/images/evibes-big.png) eVibes is an eCommerce backend service built with Django. It’s designed for flexibility, making it ideal for various use cases and learning Django skills. The project is straightforward to customize, allowing for straightforward editing and extension. ## Table of Contents - [Features](#features) - [Getting Started](#getting-started) - [Prerequisites](#prerequisites) - [Installation](#installation) - [Configuration](#configuration) - [Dockerfile](#Dockerfile) - [nginx](#nginx) - [.env](#env) - [Usage](#usage) - [Contact](#contact) ## Features - **Modular Architecture**: Extend and customize the backend to fit your needs. - **Dockerized Deployment**: Quick setup and deployment using Docker and Docker Compose. - **Asynchronous Task Processing**: Integrated Celery workers and beat scheduler for background tasks. - **GraphQL and REST APIs**: Supports both GraphQL and RESTful API endpoints. - **Internationalization**: Multilingual support using modeltranslate. - **Advanced Caching**: Utilizes Redis for caching and task queuing. - **Security**: Implements JWT authentication and rate limiting. ## Getting Started ### Prerequisites - Docker and Docker Compose are installed on your machine. ### Installation 1. Clone the repository: ```bash git clone https://gitlab.com/wiseless.xyz/eVibes.git cd eVibes ``` 2. Choose the storefront. By default, `main` branch has no storefront included. Skip this step if you're OK with that and plan to only use API or develop your own storefront. ```bash git checkout storefront- ``` 3. Generate your .env file. Check and confirm the contents afterward. - Windows ```powershell scripts\Windows\generate-environment-file.ps1 ``` - Unix ```bash scripts/Unix/generate-environment-file.sh ``` 4. Install all the dependencies. - Windows ```powershell scripts\Windows\install.ps1 ``` - Unix ```bash scripts/Unix/install.sh ``` 5. Spin it up. - Windows ```powershell scripts\Windows\run.ps1 ``` - Unix ```bash scripts/Unix/run.sh ``` 6. Bring to production. Include `nginx` file to your nginx configuration, you really want to install and run [Certbot](https://certbot.eff.org/) afterward! ## Configuration ### Dockerfile Remember to change the `RUN sed -i 's|https://deb.debian.org/debian|https://ftp..debian.org/debian|g' /etc/apt/sources.list.d/debian.sources` before running installment scripts ### nginx Please comment-out SSL-related lines, then apply necessary configurations, run `certbot --cert-only --nginx`, decomment previously commented lines and enjoy eVibes over HTTPS! ### .env After .env file generation, you may want to edit some of its values, such as macroservices` API keys, database password, redis password, etc. ## Usage - Add the necessary subdomains to DNS-settings of your domain, those are: 1. @.your-domain.com 2. www.your-domain.com 3. api.your-domain.com 4. b2b.your-domain.com 5. prometheus.your-domain.com - Add these lines to your hosts-file to use django-hosts functionality on localhost(*DEVELOPMENT ONLY*): ```hosts 127.0.0.1 api.localhost 127.0.0.1 b2b.localhost ``` Once the services are up and running, you can access the application at `http://api.your-domain.com`(http://api.localhost:8000). - **Django Admin**: `http://api.your-domain.com/` (will redirect to admin) - **API Docs**: - REST API: `http://api.localhost:8000/docs/swagger` or `http://api.localhost:8000/docs/redoc` - GraphQL API: `http://api.localhost:8000/graphql/` ## Uninstall eVibes You are not planning to do that, aren't you? - Windows ```powershell scripts\Windows\uninstall.ps1 ``` - Unix ```bash scripts/Unix/uninstall.sh ``` ## Contact - **Author**: Egor "fureunoir" Gorbunov - Email: contact@fureunoir.com - Telegram: [@fureunoir](https://t.me/fureunoir) ![FAVICON](core/docs/images/evibes.png)