{"id":28452607,"url":"https://github.com/livehelperchat/docker-standalone","last_synced_at":"2025-12-29T11:22:39.681Z","repository":{"id":46518220,"uuid":"297964931","full_name":"LiveHelperChat/docker-standalone","owner":"LiveHelperChat","description":"Docker repository with instructions how to setup standalone app with nodejs, cobrowsing, php-resque, cronjobs services.","archived":false,"fork":false,"pushed_at":"2025-06-16T05:13:01.000Z","size":230,"stargazers_count":21,"open_issues_count":0,"forks_count":25,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-06-24T12:25:33.404Z","etag":null,"topics":["docker"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LiveHelperChat.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-09-23T12:36:59.000Z","updated_at":"2025-06-16T05:13:04.000Z","dependencies_parsed_at":"2024-04-11T01:33:38.986Z","dependency_job_id":"5b7dddd9-d225-423e-8afc-36c4700909ec","html_url":"https://github.com/LiveHelperChat/docker-standalone","commit_stats":{"total_commits":41,"total_committers":4,"mean_commits":10.25,"dds":"0.24390243902439024","last_synced_commit":"debf4bbe6c02c6e6cc1cc035f02fae83294671f5"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/LiveHelperChat/docker-standalone","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LiveHelperChat%2Fdocker-standalone","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LiveHelperChat%2Fdocker-standalone/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LiveHelperChat%2Fdocker-standalone/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LiveHelperChat%2Fdocker-standalone/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LiveHelperChat","download_url":"https://codeload.github.com/LiveHelperChat/docker-standalone/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LiveHelperChat%2Fdocker-standalone/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262351515,"owners_count":23297633,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker"],"created_at":"2025-06-06T18:12:01.897Z","updated_at":"2025-12-29T11:22:39.676Z","avatar_url":"https://github.com/LiveHelperChat.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Instructions\n\nThis is dockerized version of Live Helper Chat. It includes these images\n\n* `web` - nginx service\n* `php` - php-fpm service\n* `cobrowse` - cobrowsing running NodeJS service\n* `php-cronjob` - cronjobs running service\n* `php-resque` - php-resque worker running service\n* `nodejshelper` - NodeJS Helper NodeJS running service\n* `redis` - Redis service\n* `db` - Database service\n\n## Docker instructions\n\n* Checkout the repository\n* Run `cd docker-standalone`\n* Copy `.env.default` to `.env`\n* Edit `.env` file and change `LHC_SECRET_HASH` to any random string\n* Database default settings if you don't change those in `.env` file.\n  * Host - `db` \n  * Database name - `lhc`\n  * Database username - `lhc`\n  * Database password - `lhc`\n* For version with **NodeJS plugin (Recommended)**\n  * Run `install-nodejs.sh` this will checkout Live Helper Chat and required extensions\n  * **Optional**. Run `docker compose -f docker-compose-nodejs.yml build --no-cache` to build from scratch. You might need it you are running on `linux/arm64` as I only provide `linux/amd64` architecture\n  * Run `docker compose -f docker-compose-nodejs.yml pull \u0026\u0026 docker-compose -f docker-compose-nodejs.yml up` to use already existingimages\n* For standard version **without NodeJS** plugin run\n     * Run `install.sh` this will checkout Live Helper Chat and required extensions\n     * **Optional**. Run `docker compose -f docker-compose-standard.yml build --no-cache` to build from scratch. Build is optional. You might need it you are running on `linux/arm64` as I only provide `linux/amd64` architecture\n     * Run `docker compose -f docker-compose-standard.yml pull \u0026\u0026 docker-compose -f docker-compose-standard.yml up`\n\n* You will need to install composer dependencies:\n  1. Open a shell in the docker container\n     ```shell\n     docker exec -it --workdir /code docker-standalone-php-1 /bin/bash\n     ```\n  2. Visit https://getcomposer.org/download/ and run the commands to get `composer.phar`\n  3. Run this to actually install the dependencies:\n     ```shell\n     php composer.phar update\n     php composer.phar install\n     ```\n* Edit `docker-standalone/lhc-php-resque/lhcphpresque/settings/settings.ini.php` and put proper `site_address` domain value. php-resque does not know what domain it's running\n* Make sure the `cache`, `settings` and `var` folders have the correct permissions:\n```shell\ndocker exec -it docker-standalone-web-1 chown -R www-data:www-data /code/cache\ndocker exec -it docker-standalone-web-1 chown -R www-data:www-data /code/settings\ndocker exec -it docker-standalone-web-1 chown -R www-data:www-data /code/var\n```\n* Navigate to localhost:8081 and follow install instructions.\n  * db username and password: Check `.env` file\n  * db host: `db`.\n  * db port: 3306\n* If you want to run docker as a service append `-d` to docker commands. `docker-compose -f docker-compose-nodejs.yml up -d`\n\n## How to listen on standard 80 port?\n\nEdit `.env` file and set `LHC_PUBLIC_PORT` and `LHC_NODE_JS_PORT` port to `80`\n\n## How to setup HTTPS?\n\nThat's up to you. You can have in host machine runing nginx and just proxy request or tweak images/docker files I provided. You should play around with `web` service.\n\nE.g to the ones who are too lazy too use google :D\n* https://macdonaldchika.medium.com/how-to-install-tls-ssl-on-docker-nginx-container-with-lets-encrypt-5bd3bad1fd48\n\n### Tip commands \n\nGenerate SSL certificate under docker folder for `demo.livehelperchat.com` domain. Change paths in this command. You have to be pointed domain to your sever\n\n```\ncertbot certonly --config-dir /opt/lhc/docker-standalone/conf/nginx/ssl --webroot --webroot-path /opt/lhc/docker-standalone/livehelperchat/lhc_web -d demo.livehelperchat.com\n```\n\nThis is how cronjob can look like. Make sure you put your domain and correct `docker-standalone-web-1` name.\n\n```\n0 0 * * * certbot certonly --keep-until-expiring --config-dir /opt/lhc/docker-standalone/conf/nginx/ssl --webroot --webroot-path /opt/lhc/docker-standalone/livehelperchat/lhc_web -d demo.livehelperchat.com --post-hook \"docker restart docker-standalone-web-1\" \u003e /dev/null 2\u003e\u00261\n```\n\nIf you are migrating server and want to setup fresh certbot, you can just use this command\n\n```\ncertbot certonly --manual --preferred-challenges http --config-dir /opt/lhc/docker-standalone/conf/nginx/ssl -d demo.livehelperchat.com\n```\n\n`web` service part will have to look like\n```yaml\n  web:\n    image: nginx:latest\n    env_file: .env\n    ports:\n      - \"${LHC_PUBLIC_PORT}:80\"\n      - \"443:443\"\n    volumes:\n      - ./livehelperchat/lhc_web:/code\n      - ./conf/nginx/site-ssl.conf:/etc/nginx/conf.d/default.conf\n      - ./conf/nginx/mime.types:/etc/nginx/mime.types\n      - ./conf/nginx/nginx.conf:/etc/nginx/nginx.conf\n      - ./conf/nginx/ssl/live/demo.livehelperchat.com/fullchain.pem:/etc/nginx/ssl/demo.livehelperchat.com/fullchain.pem\n      - ./conf/nginx/ssl/live/demo.livehelperchat.com/privkey.pem:/etc/nginx/ssl/demo.livehelperchat.com/privkey.pem\n    depends_on:\n      - db\n      - php\n      - php-cronjob\n    networks:\n      - code-network\n    restart: always\n```\n\nModify `/conf/nginx/site-ssl.conf` and change where you see `demo.livehelperchat.com` to your domain.\n\nRebuild docker image after a changes.\n\n```\ncd /opt/lhc/docker-standalone \u0026\u0026 docker compose -f docker-compose-nodejs.yml build --no-cache\n```\n\nRemember to automated SSL issuing workflow :)\n\n```\ncd /opt/lhc/docker-standalone \u0026\u0026 docker compose -f docker-compose-nodejs.yml down\ncd /opt/lhc/docker-standalone \u0026\u0026 docker compose -f docker-compose-nodejs.yml up -d\n```\n\n## My mails are not sending?\n\nYou have to edit back office mail settings and use SMTP.\n\n## How to update?\n\n\n```shell\n# Update docker images\ncd docker-standalone \u0026\u0026 git pull origin master\n# If there is any changes you can build your containers\ndocker compose -f docker-compose-nodejs.yml build --no-cache\n\n# Or just pull new ones\ndocker-compose -f docker-compose-nodejs.yml pull\n\n# I would recommend also just restart composer containers\ndocker compose -f docker-compose-nodejs.yml down\ndocker compose -f docker-compose-nodejs.yml up\n# OR start docker as service\ndocker compose -f docker-compose-nodejs.yml up -d\n\n# All these commands are executed from docker-standalone folder\ncd livehelperchat \u0026\u0026 git pull origin master\ncd lhc-php-resque \u0026\u0026 git pull origin master\ncd NodeJS-Helper \u0026\u0026 git pull origin master\n\n# Login to php-fpm container and execute\ndocker exec -it docker-standalone-php-1 /bin/bash\n# Execute in container. You might need to download composer.phar file\ncd /code \u0026\u0026 php composer.phar update\ncd /code \u0026\u0026 php composer.phar install\ncd /code \u0026\u0026 php cron.php -s site_admin -c cron/util/update_database -p local\ncd /code \u0026\u0026 php cron.php -s site_admin -c cron/util/clear_cache\n```\n\n## After install todo\n\n* Go to `Settings -\u003e Live help confgiuration -\u003e Chat configuration -\u003e Screen sharing` and\n    * Check `NodeJs support enabled`\n    * In `socket.io path, optional` enter `/wsnodejs/socket.io`\n* Go to `Settings -\u003e Live help confgiuration -\u003e Chat configuration -\u003e Online tracking` and\n    * Check `Cleanup should be done only using cronjob.`\n    * Check `Footprint updates should be processed in the background. Make sure you are running workflow background cronjob.`\n * Go to `Settings -\u003e Live help confgiuration -\u003e Chat configuration -\u003e Misc` and\n   * Check `Disable live auto assign`\n * Go to `Settings -\u003e Live help confgiuration -\u003e Chat configuration -\u003e Workflow` and\n    * Check `Should cronjob run departments transfer workflow, even if user leaves a chat`\n * Set `'site_address' =\u003e 'https://chat.example.com'` in `settings/settings.ini.php` to your install installation path. It has to be location where `index.php` is located.\n * Set `site_address` in `docker-standalone/lhc-php-resque/lhcphpresque/settings/settings.ini.php`\n * After install make sure `settings/settings.ini.php` file looks like this if you are using `php-resque` and `nodejs`\n * ```'extensions' =\u003e\n   array (\n   0 =\u003e 'lhcphpresque',\n   1 =\u003e 'nodejshelper',\n   ),```\n\n## How to run everything under proxy with HTTPS support?\n\n```apacheconf\nserver {\n    listen         *:80; # This line should be gone once SSL is setup\n    server_name    server_name chat.example.com; # Change to your domain\n\n    location / {\n\t      proxy_set_header X-Real-IP $remote_addr;\n\t      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n\t      proxy_set_header Host $http_host;\n\t      proxy_set_header X-NginX-Proxy true;\n\t      # Uncomment below two lines if you are running under https. So LHC will pickup https correctly\n\t      # proxy_set_header X-Forwarded-Proto https;\n\t      # proxy_set_header X-Forwarded-Ssl on;\n\n\t      proxy_pass http://localhost:8081/; # Change port to your docker public port\n\t      proxy_redirect off;\n          proxy_http_version 1.1;\n          proxy_set_header Upgrade $http_upgrade;\n          proxy_set_header Connection \"upgrade\";\n    }\n    \n    # Those will appear automaticlaly once you setup SSL using certbot\n    # listen 443 ssl; # managed by Certbot\n    # ssl_certificate /etc/letsencrypt/live/chat.example.com/fullchain.pem; # managed by Certbot\n    # ssl_certificate_key /etc/letsencrypt/live/chat.example.com/privkey.pem; # managed by Certbot\n    # include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot\n    # ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot\n}\n```\n\n* (Required) Set to true so IP will be detected correctly under proxy - https://github.com/LiveHelperChat/livehelperchat/blob/3e5d1249faddb15273e6897492edcd3798074b36/lhc_web/settings/settings.ini.default.php#L20\n* (Optional) In `System configuration \u003e Live help configuration -\u003e Chat configuration -\u003e Misc` under `Please enter explicit http mode. Either http: or https:, do not forget : at the end.` enter `https:` it will force always to use HTTPS once setup.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flivehelperchat%2Fdocker-standalone","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flivehelperchat%2Fdocker-standalone","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flivehelperchat%2Fdocker-standalone/lists"}