PhpDev.App
inshopgroup/inshop-crm-api

inshopgroup/inshop-crm-api

Stars: 237

Forks: 79

Pull Requests: 24

Issues: 8

Watchers: 32

Last Updated: 2023-05-08 07:24:57

Inshop CRM / ERP API. It's powerful framework allows to build systems for business with different workflows. It has on board multi language support, clients management, projects & tasks, documents, simple accounting, inventory management, orders & invoice management, possibilities to integrate with third party software, REST API, and many other features.

License: MIT License

Languages: PHP, Shell, Twig

https://inshopcrm.com

INSHOP CRM / ERP / ECOMMERCE

Inshop CRM / ERP is powerful framework which allows to build systems for business with different workflows. It has on board multi language support, clients management, projects & tasks, documents, simple accounting, inventory management, orders & invoice management, possibilities to integrate with third party software, REST API, and many other features.

https://inshopcrm.com/

alt text

alt text

alt text

Live demo

Feel free to check out our demo CRM instance

Username: demo

Password: demo

https://demo.inshopcrm.com/signin

Main Features

  • Multi language support
  • Clients management
  • Projects
  • Tasks
  • Calendar with events & reminders
  • Google calendar integration
  • Documents & templates
  • Multi currency support
  • Products & categories management
  • Prices and availability management
  • Possibilities for fulfillment
  • Invoice management

Technologies

Backend

  • PHP 8.1
  • Symfony 6
  • API Platform
  • Postgres
  • Elasticsearch

CRM / ERP / ecommerce

  • VueJS, Vuex, Vuetify, Nuxt
  • Docker
  • GIT

Installation

Using docker-compose for local testing

.env

PORT_API=8888
PORT_CLIENT=8080
PORT_ECOMMERCE=8081

DATABASE_NAME=api
DATABASE_USER=api
DATABASE_PASSWORD=!ChangeMe!

JWT_PASSPHRASE=!ChangeMe!
COMPOSE_PROJECT_NAME=inshop-crm

docker-compose.yml

version: '3.2'

services:
  ecommerce:
    restart: always
    image: inshopgroup/inshop-crm-ecommerce
    user: node
    working_dir: /var/www
    environment:
      NODE_ENV: production
      HOST: 0.0.0.0
    ports:
      - ${PORT_ECOMMERCE}:3000
    command: "npm start"

  client:
    restart: always
    image: inshopgroup/inshop-crm-client
    ports:
      - ${PORT_CLIENT}:80

  php:
    restart: always
    image: inshopgroup/inshop-crm-api-php-fpm
    depends_on:
      - db
    volumes:
      - files-data:/var/www/data
      - images-data:/var/www/public/images
    networks:
      - api

  nginx:
    restart: always
    image: inshopgroup/inshop-crm-api-nginx
    depends_on:
      - php
    ports:
      - ${PORT_API}:80
    volumes:
      - images-data:/var/www/images
    networks:
      - api

  db:
    restart: always
    image: postgres:9.5-alpine
    environment:
      - POSTGRES_DB=${DATABASE_NAME}
      - POSTGRES_USER=${DATABASE_USER}
      - POSTGRES_PASSWORD=${DATABASE_PASSWORD}
    volumes:
      - db-data:/var/lib/postgresql/data:rw
    networks:
      - api

  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.3.1
    environment:
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - es-data:/usr/share/elasticsearch/data
    networks:
      - api
      - esnet

  redis:
    image: redis:latest
    volumes:
      - redis-data:/var/lib/redis
    networks:
      - api
      
volumes:
  es-data: {}
  db-data: {}
  files-data: {}
  images-data: {}
  redis-data: {}

networks:
    api:
    esnet:

For developers

mkdir inshop-crm
cd inshop-crm

# api
git clone [email protected]:inshopgroup/inshop-crm-api.git
cd inshop-crm-api
cp .env.dist .env
docker-compose up -d
cd ..

# client
git clone [email protected]:inshopgroup/inshop-crm-client.git
cd inshop-crm-client
cp .env.dist .env
yarn install
yarn run dev
cd ..

# ecommerce
git clone [email protected]:inshopgroup/inshop-crm-ecommerce.git
cd inshop-crm-ecommerce
cp .env.dist .env
yarn install
yarn run dev
cd ..

Setup database & fixtures

docker-compose exec --user=www-data php sh ./setup.sh

Enter pass phrase for config/jwt/private.pem: !ChangeMe!

NOTE! described setup is only for local use!

Enjoy, after run, API will be available under http://localhost:8888/docs

Client - http://localhost:8080 Ecommerce http://localhost:8081

username: demo
password: demo

Elastic search settings on host machine

sudo sysctl -w vm.max_map_count=262144
echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf