Fixes: 1) n/a; Extra: 1) Minor structure and formatting improvements in README.
152 lines
No EOL
3.9 KiB
Markdown
152 lines
No EOL
3.9 KiB
Markdown
# eVibes
|
||
|
||

|
||
|
||
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 easy 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**: Easily 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 installed on your machine - that's it!
|
||
|
||
### 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 Astro one. Skip this step if you're OK with Astro.
|
||
|
||
```bash
|
||
git checkout storefront-<option: astro, nuxt, remix, svelte, solid, analog >
|
||
```
|
||
|
||
3. Generate your .env file. Check and confirm the contents afterwards.
|
||
|
||
- 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/) afterwards!
|
||
|
||
## Configuration
|
||
|
||
### Dockerfile
|
||
|
||
Don't forget to change the
|
||
`RUN sed -i 's|https://deb.debian.org/debian|https://ftp.<locale>.debian.org/debian|g' /etc/apt/sources.list.d/debian.sources`
|
||
before running installment scripts
|
||
|
||
### nginx
|
||
|
||
Please comment-out SSL-related lines, then apply needed 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 it's values such as macroservices' API keys, database password,
|
||
redis password, etc.
|
||
|
||
## Usage
|
||
|
||
- Add needed 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)
|
||
|
||
 |