# eVibes

![LOGO](core/docs/images/evibes-big.png)

eVibes — a lightweight, production-ready e‑commerce backend. Storefront, product catalog, cart, and orders work out of the box. Minimal complexity, maximum flexibility — install, adjust to your needs, and start selling.

- Public issues: https://plane.wiseless.xyz/spaces/issues/dd33cb0ab9b04ef08a10f7eefae6d90c/?board=kanban

## Table of Contents

- Features
- Quick Start
  - Prerequisites
  - Installation
- Configuration
  - Dockerfile
  - nginx
  - .env
- Usage
- Contributing
- Contact
- License

## Features

- Modular backend, easy to extend and customize
- Dockerized deployment with Docker Compose
- Celery workers and beat for background tasks
- REST and GraphQL APIs
- Internationalization with modeltranslation
- Redis-based caching and queues
- JWT auth and rate limiting

## Quick Start

### Prerequisites

- Docker and Docker Compose

### Installation

1. Clone the repository
   ```bash
   git clone https://gitlab.com/wiseless.xyz/eVibes.git
   cd eVibes
   ```

2. Choose a storefront (optional). The `main` branch ships without a storefront. If you want one, pick a branch:
   ```bash
   git checkout storefront-<nuxt|next|sk|qwik>
   ```

3. Generate your .env file and review its values
   - Windows
     ```powershell
     scripts\Windows\generate-environment-file.ps1
     ```
   - Unix
     ```bash
     scripts/Unix/generate-environment-file.sh
     ```

4. Install dependencies
   - Windows
     ```powershell
     scripts\Windows\install.ps1
     ```
   - Unix
     ```bash
     scripts/Unix/install.sh
     ```

5. Run the stack
   - Windows
     ```powershell
     scripts\Windows\run.ps1
     ```
   - Unix
     ```bash
     scripts/Unix/run.sh
     ```

6. Production checklist
   - Include `nginx.conf` into your Nginx setup
   - Issue TLS certs with Certbot (https://certbot.eff.org/)

## Configuration

### Dockerfile
If you rely on locale mirrors, adjust Debian sources before running install scripts:
```
RUN sed -i 's|https://deb.debian.org/debian|https://ftp.<locale>.debian.org/debian|g' /etc/apt/sources.list.d/debian.sources
```

### nginx
- Comment out SSL-related lines
- Apply your domain-specific settings
- Run `certbot --cert-only --nginx`
- Uncomment SSL lines and reload Nginx

### .env
After generation, review and update secrets and credentials (API keys, DB password, Redis password, etc.).

## Usage

- DNS records you’ll typically want:
  1. @.your-domain.com
  2. www.your-domain.com
  3. api.your-domain.com
  4. b2b.your-domain.com
  5. prometheus.your-domain.com

- For local development, add hosts entries (development only):
  ```hosts
  127.0.0.1 api.localhost
  127.0.0.1 b2b.localhost
  ```

- Once running, access:
  - API root / Admin redirect: http://api.localhost:8000/
  - REST docs: http://api.localhost:8000/docs/swagger or http://api.localhost:8000/docs/redoc
  - GraphQL: http://api.localhost:8000/graphql/

## Contributing

- Track and report issues here: https://plane.wiseless.xyz/spaces/issues/dd33cb0ab9b04ef08a10f7eefae6d90c/?board=list
- Pull requests are welcome. Please keep changes minimal and focused.

## Contact

- Author: Egor "fureunoir" Gorbunov
  - Email: contact@fureunoir.com
  - Telegram: https://t.me/fureunoir

## License

This project is licensed under the terms of the LICENSE file included in this repository.

![FAVICON](core/docs/images/evibes.png)