Schon — your store without the extra baggage. https://schon.io
Find a file
Egor fureunoir Gorbunov 6b829331c3 Features: 1) Split docker compose build and docker compose up -d into distinct steps with updated messages; 2) Replace custom spinner in Unix script with simplified run_cmd approach;
Fixes: 1) Update final output message to align with application name (`eVibes`);

Extra: 1) Remove redundant spinner implementation in Unix script for clarity and reduction of complexity; 2) General script cleanup and minor formatting tweaks.
2025-06-16 14:35:48 +03:00
blog Features: I18N 2025-06-16 11:07:34 +03:00
core Features: I18N 2025-06-16 11:07:34 +03:00
evibes Features: 1) Add "required: False" option to JSON custom field; 2025-06-16 12:11:26 +03:00
monitoring 2.8.0 released 2025-06-05 20:47:30 +03:00
payments Features: I18N 2025-06-16 11:07:34 +03:00
scripts Features: 1) Split docker compose build and docker compose up -d into distinct steps with updated messages; 2) Replace custom spinner in Unix script with simplified run_cmd approach; 2025-06-16 14:35:48 +03:00
storefront Extra: restore to Vue 2025-06-04 20:32:34 +03:00
vibes_auth Features: I18N 2025-06-16 11:07:34 +03:00
.dockerignore Features: 1) Add .gitkeep files for payments/static and blog/static directories to track empty folders; 2025-06-01 18:50:37 +03:00
.gitignore Features: 1) Expand .gitignore to include comprehensive rules for Python, Node, Docker, IDEs, test artifacts, and distribution files; 2025-05-26 15:54:43 +03:00
CODEOWNERS Features: 1) Add code ownership for .mjs, .cjs, and .astro files to SaVBaD. 2025-06-01 18:32:07 +03:00
docker-compose.yml Features: 1) OS-specific scripts for deployments. 2025-06-11 02:54:46 +03:00
Dockerfile.app 2.8.0 released 2025-06-05 20:47:30 +03:00
Dockerfile.storefront Features: 1) Add Dockerfile.app with author label for application container; 2) Add CODEOWNERS file for ownership management; 3) Introduce Dockerfile.storefront for storefront container; 4) Add .gitkeep file for storefront folder; 2025-05-26 15:34:45 +03:00
LICENSE Initial Commit 2025-04-29 22:40:30 +03:00
manage.py Initial Commit 2025-04-29 22:40:30 +03:00
nginx Features: Prometheus password protection 2025-06-05 15:34:59 +03:00
poetry.lock Features: 1) Add optional celery-stubs and django-stubs dependencies to pyproject.toml; 2) Update worker extras to include celery-stubs; 3) Improve URL formatting in digital asset logic. 2025-06-16 09:52:35 +03:00
pyproject.toml Features: 1) Add optional celery-stubs and django-stubs dependencies to pyproject.toml; 2) Update worker extras to include celery-stubs; 3) Improve URL formatting in digital asset logic. 2025-06-16 09:52:35 +03:00
README.md Features: 1) OS-specific scripts for deployments. 2025-06-11 02:54:46 +03:00
ruff.toml Features: 2025-05-26 17:36:12 +03:00

eVibes

LOGO

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

  • 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.
  • Python 3.12 if running locally without Docker.

Installation

  1. Clone the repository:

    git clone https://gitlab.com/wiseless.xyz/eVibes.git
    cd eVibes
    
  2. Copy the example environment file and configure it.

  3. Build and start the services:

    docker-compose up -d --build
    

    This command will build the Docker images and start all the services defined in the docker-compose.yml file.

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

Environment Variables

The project uses environment variables for configuration. Below is an example of the .env file:

EVIBES_PROJECT_NAME="eVibes"
EVIBES_FRONTEND_DOMAIN="evibes.com"
EVIBES_BASE_DOMAIN="evibes.com"
SENTRY_DSN=""
DEBUG=1

SECRET_KEY="SUPERSECRETKEY"
JWT_SIGNING_KEY="SUPERSECRETJWTSIGNINGKEY"

ALLOWED_HOSTS="evibes.com api.evibes.com b2b.evibes.com"
CSRF_TRUSTED_ORIGINS="https://evibes.com https://api.evibes.com https://www.evibes.com https://b2b.evibes.com"
CORS_ALLOWED_ORIGINS="https://evibes.com https://api.evibes.com https://www.evibes.com https://b2b.evibes.com"

POSTGRES_DB="evibes"
POSTGRES_USER="evibes_user"
POSTGRES_PASSWORD="SUPERSECRETPOSTGRESPASSWORD"

DBBACKUP_SFTP_HOST="Your SFTP backup host"
DBBACKUP_SFTP_USER="The username to use to log in to that host"
DBBACKUP_SFTP_PASS="The password to use to log in to that host"

ELASTIC_PASSWORD="SUPERSECRETELASTICPASSWORD"

REDIS_PASSWORD="SUPERSECRETREDISPASSWORD"

CELERY_BROKER_URL="redis://:SUPERSECRETREDISPASSWORD@redis:6379/0"
CELERY_RESULT_BACKEND="redis://:SUPERSECRETREDISPASSWORD@redis:6379/0"

PROMETHEUS_USER="evibes"
PROMETHEUS_PASSWORD="SUPERSECRETFLOWERPASSWORD"

EMAIL_BACKEND="django.core.mail.backends.smtp.EmailBackend"
EMAIL_HOST="smtp.whatever.evibes.com"
EMAIL_PORT="465"
EMAIL_USE_TLS=0
EMAIL_USE_SSL=1
EMAIL_HOST_USER="your-email-user@whatever.evibes.com"
EMAIL_HOST_PASSWORD="SUPERSECRETEMAILHOSTPASSWORD"
EMAIL_FROM="your-email-user@whatever.evibes.com"

COMPANY_NAME="eVibes, Inc."
COMPANY_PHONE_NUMBER="+888888888888"
COMPANY_ADDRESS="The place that does not exist"

OPENAI_API_KEY="Haha, really?"
ABSTRACT_API_KEY="Haha, really? x2"
DEEPL_AUTH_KEY="Haha, really? x3"

Note: Replace all placeholder values (e.g., your-secret-key, your-database-name) with your actual configuration.

Usage

Add these lines to your hosts-file to use django-hosts functionality on localhost:

127.0.0.1 api.localhost
127.0.0.1 b2b.localhost

Otherwise, add needed subdomains to DNS-settings of your domain.

Once the services are up and running, you can access the application at http://api.localhost:8000.

  • Django Admin: http://api.localhost:8000/admin/
  • API Endpoints:
    • REST API: http://api.localhost:8000/docs/swagger or http://api.localhost:8000/docs/redoc
    • GraphQL API: http://api.localhost:8000/graphql/

Contact

FAVICON