schon/README.md

137 lines
No EOL
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# eVibes
![LOGO](core/docs/images/evibes-big.png)
eVibes is an eCommerce backend service built with Django. Its 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)
- [Environment Variables](#environment-variables)
- [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/`
## Contact
- **Author**: Egor "fureunoir" Gorbunov
- Email: contact@fureunoir.com
- Telegram: [@fureunoir](https://t.me/fureunoir)
![FAVICON](core/docs/images/evibes.png)