# eVibes ![LOGO](core/docs/images/evibes-big.png) eVibes — your store without the extra baggage. Everything works out of the box: storefront, product catalog, cart, and orders. Minimal complexity, maximum flexibility — install, adjust to your needs, and start selling. ## 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)