Giter Site home page Giter Site logo

inshopgroup / inshop-crm-api Goto Github PK

View Code? Open in Web Editor NEW
248.0 32.0 81.0 821 KB

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.

Home Page: https://inshopcrm.com

License: MIT License

PHP 94.34% Shell 0.23% Twig 5.42%
symfony api-platform erp crm php elasticsearch postgresql

inshop-crm-api's Introduction

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

inshop-crm-api's People

Contributors

alex-belto avatar inshop avatar minelly avatar yurii-salashnyi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

inshop-crm-api's Issues

Project improvements & developer experience

Hi, I like this project, but how to trust or check the quality of the codebase without tests in place?
Are you in favor of some dev tools testing framework, static analysis tools, code style checker...

Username or password are incorrect

Hello,

I'm trying to start your system to one of my clouds, but I can't get success, when accessing the client, he always shows the message "Username or password are incorrect":
I'm trying to access the external ip 192.168.15.15:8080
image

I can put it to work on my machine as a local host, but when I put it in production it presents this error, I need to do something else, I will leave it below as I do to lift the container.

git clone [email protected]:inshopgroup/inshop-crm-api.git
sudo sysctl -w vm.max_map_count=262144
echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf
docker-compose up -d
docker-compose exec --user=root php sh ./setup.sh

docker ps

CONTAINER ID        IMAGE                                                   COMMAND                  CREATED             STATUS              PORTS                              NAMES
79345753f5b1        inshopgroup/docker-inshop-crm-api-nginx-prod:latest     "/docker-entrypoint.…"   14 minutes ago      Up 13 minutes       0.0.0.0:8888->80/tcp               inshopcrm-api_nginx_1
939f330c6748        inshopgroup/docker-inshop-crm-api-php-fpm-prod:latest   "docker-php-entrypoi…"   14 minutes ago      Up 13 minutes       9000/tcp                           inshopcrm-api_php_1
fce301b30094        redis:latest                                            "docker-entrypoint.s…"   14 minutes ago      Up 14 minutes       6379/tcp                           inshopcrm-api_redis_1
479934213ede        inshopgroup/inshop-crm-client                           "nginx -g 'daemon of…"   14 minutes ago      Up 14 minutes       0.0.0.0:8080->80/tcp               inshopcrm-api_client_1
62b74e22049d        docker.elastic.co/elasticsearch/elasticsearch:6.3.1     "/usr/local/bin/dock…"   14 minutes ago      Up 13 minutes       9300/tcp, 0.0.0.0:9222->9200/tcp   inshopcrm-api_elasticsearch_1
e272ff245633        postgres:11.4-alpine                                    "docker-entrypoint.s…"   14 minutes ago      Up 14 minutes       0.0.0.0:54321->5432/tcp            inshopcrm-api_db_1

docker network ls

NETWORK ID          NAME                  DRIVER              SCOPE
fc412303260c        bridge                bridge              local
69d051fb1822        host                  host                local
67d632a81424        inshopcrm-api_api     bridge              local
4703ef79d62e        inshopcrm-api_esnet   bridge              local
b0e970624857        none                  null                local

docker-compose ps

        Name                       Command               State                Ports              
--------------------------------------------------------------------------------------------------
sigcrm_client_1          nginx -g daemon off;             Up      0.0.0.0:8080->80/tcp            
sigcrm_db_1              docker-entrypoint.sh postgres    Up      0.0.0.0:54321->5432/tcp         
sigcrm_elasticsearch_1   /usr/local/bin/docker-entr ...   Up      0.0.0.0:9222->9200/tcp, 9300/tcp
sigcrm_nginx_1           /docker-entrypoint.sh ngin ...   Up      0.0.0.0:8888->80/tcp            
sigcrm_php_1             docker-php-entrypoint php-fpm    Up      9000/tcp                        
sigcrm_redis_1           docker-entrypoint.sh redis ...   Up      6379/tcp 

my env file:

# This file is a "template" of which env vars need to be defined for your application
# Copy this file to .env file for development, create environment variables when deploying to production
# https://symfony.com/doc/current/best_practices/configuration.html#infrastructure-related-configuration

PORT_DATABASE=54321
PORT_API=8888
PORT_ELASTIC=9222
PORT_CLIENT=8080

###> symfony/framework-bundle ###
APP_ENV=prod
APP_SECRET=verystrongpassword
TRUSTED_PROXIES=127.0.0.1,127.0.0.2
TRUSTED_HOSTS=127.0.0.1,192.168.15.15,localhost,crm.mydomain.com
###< symfony/framework-bundle ###

###> nelmio/cors-bundle ###
CORS_ALLOW_ORIGIN=^https?://localhost(:[0-9]+)?$
###< nelmio/cors-bundle ###

###> doctrine/doctrine-bundle ###
# Format described at http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url
# For an SQLite database, use: "sqlite:///%kernel.project_dir%/var/data.db"
# Configure your db driver and server_version in config/packages/doctrine.yaml
DATABASE_DRIVER=pdo_pgsql
DATABASE_HOST=db
DATABASE_PORT=5432
DATABASE_NAME=api
DATABASE_USER=api
DATABASE_PASSWORD=verystrongpassword
###< doctrine/doctrine-bundle ###

###> lexik/jwt-authentication-bundle ###
JWT_PASSPHRASE=verystrongpassword
###< lexik/jwt-authentication-bundle ###

###> sentry/sentry-symfony ###
SENTRY_DSN=
###< sentry/sentry-symfony ###

COMPOSE_PROJECT_NAME=sigcrm

###> symfony/swiftmailer-bundle ###
# For Gmail as a transport, use: "gmail://username:password@localhost"
# For a generic SMTP server, use: "smtp://localhost:25?encryption=&auth_mode="
# Delivery is disabled by default via "null://localhost"
MAILER_URL=null://localhost
###< symfony/swiftmailer-bundle ###

CLIENT_URL=http://localhost:3000

###> google/apiclient ###
GOOGLE_API_KEY=
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
###< google/apiclient ###

###> amazon/s3_keys ###
AWS_S3_ACCESS_ID=
AWS_S3_ACCESS_SECRET=
###< amazon/s3_keys ###

###> amazon/bucketNames ###
AWS_S3_BUCKET_FILE_NAME=file
AWS_S3_BUCKET_IMAGE_NAME=image
###< amazon/bucketNames ###

###> amazon/bucketRegion ###
AWS_S3_BUCKET_REGION=eu-west-1
###< amazon/bucketRegion ###

###> Redis  ###
REDIS_HOST=redis
REDIS_PORT=6379
###< Redis ###

My docker-compose.yml

version: '3.7'

services:
  client:
    image: inshopgroup/inshop-crm-client
    env_file:
      - ./.env
    restart: always
    ports:
      - ${PORT_CLIENT}:80
    networks:
      - api

  php:
    image: inshopgroup/docker-inshop-crm-api-php-fpm-prod:latest
    env_file:
      - ./.env
    depends_on:
      - db
    volumes:
      - .:/var/www:rw,cached
      - files-data:/var/www/var/files:rw
    networks:
      - api

  nginx:
    image: inshopgroup/docker-inshop-crm-api-nginx-prod:latest
    env_file:
      - ./.env
    depends_on:
      - php
    volumes:
      - ./public:/var/www/public:ro
    ports:
      - ${PORT_API}:80
    networks:
      - api

  db:
    image: postgres:11.4-alpine
    env_file:
      - ./.env
    environment:
      - POSTGRES_DB=${DATABASE_NAME}
      - POSTGRES_USER=${DATABASE_USER}
      - POSTGRES_PASSWORD=${DATABASE_PASSWORD}
    volumes:
      - db-data:/var/lib/postgresql/data:rw
    ports:
      - ${PORT_DATABASE}:5432
    networks:
      - api

  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.3.1
    env_file:
      - ./.env
    environment:
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms2048m -Xmx2048m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - es-data:/usr/share/elasticsearch/data
    ports:
      - ${PORT_ELASTIC}:9200
    networks:
      - api
      - esnet

  redis:
    image: redis:latest
    env_file:
      - ./.env
    volumes:
      - redis-data:/var/lib/redis
    networks:
      - api

volumes:
  es-data: {}
  db-data: {}
  redis-data: {}
  files-data: {}
  images-data: {}

networks:
    esnet:
    api:

Would you have anything else to do?

Ty

Error in fixtures:load --append

When i try execute that command php bin/console doctrine:fixtures:load --append show a error:

loading App\DataFixtures\CountryFixtures

In Http.php line 190:

Couldn't resolve host

doctrine:fixtures:load [--append] [--group GROUP] [--em EM] [--shard SHARD] [--purge-with-truncate] [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [-e|--env ENV] [--no-debug] [--]

I am using Windows 10, all commands work but when the setup reaches doctrine: fixtures: load --append it breaks

installation problem

I followed the instructions to install but when I run the line the "docker-compose exec --user = www-data php sh ./setup.sh" I have this error and I do not understand can you help me

[ErrorException]
file_put_contents(/var/www/vendor/composer/installed.json): failed to open
stream: Permission denied

Add SECURITY.md

Hey there!

I belong to an open source security research community, and a member (@aravindd007) has found an issue, but doesn’t know the best way to disclose it.

If not a hassle, might you kindly add a SECURITY.md file with an email, or another contact method? GitHub recommends this best practice to ensure security issues are responsibly disclosed, and it would serve as a simple instruction for security researchers in the future.

Thank you for your consideration, and I look forward to hearing from you!

(cc @huntr-helper)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.