{"id":13823673,"url":"https://github.com/ivan-zaitsev/shop-telegram-bot","last_synced_at":"2025-07-08T18:30:54.186Z","repository":{"id":42040067,"uuid":"234094518","full_name":"ivan-zaitsev/shop-telegram-bot","owner":"ivan-zaitsev","description":"Java shop chatbot for Telegram","archived":false,"fork":false,"pushed_at":"2024-02-21T00:21:14.000Z","size":2237,"stargazers_count":163,"open_issues_count":2,"forks_count":58,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-06-30T12:33:46.837Z","etag":null,"topics":["java","telegram-bots"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ivan-zaitsev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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}},"created_at":"2020-01-15T14:09:30.000Z","updated_at":"2025-06-09T18:56:15.000Z","dependencies_parsed_at":"2022-07-25T22:47:07.719Z","dependency_job_id":"accb177a-f737-4312-871c-d1d96130d00d","html_url":"https://github.com/ivan-zaitsev/shop-telegram-bot","commit_stats":null,"previous_names":["ivan-zaitsev/shop-telegram-bot","ivan909020/shop-telegram-bot"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ivan-zaitsev/shop-telegram-bot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivan-zaitsev%2Fshop-telegram-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivan-zaitsev%2Fshop-telegram-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivan-zaitsev%2Fshop-telegram-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivan-zaitsev%2Fshop-telegram-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ivan-zaitsev","download_url":"https://codeload.github.com/ivan-zaitsev/shop-telegram-bot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivan-zaitsev%2Fshop-telegram-bot/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264323860,"owners_count":23590754,"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":["java","telegram-bots"],"created_at":"2024-08-04T09:00:40.094Z","updated_at":"2025-07-08T18:30:53.750Z","avatar_url":"https://github.com/ivan-zaitsev.png","language":"Java","funding_links":[],"categories":["Java"],"sub_categories":[],"readme":"# shop-telegram-bot\nShop in telegram with admin panel\n\n## Technology stack\nJava 17, Maven, Spring 3 (Boot, MVC, Data, Security), Hibernate, Postgresql, Freemarker, HTML, Telegram Bots\n\n## Notes before deploy\n- Telegram bot sends images as a link, if they are uploaded from the localhost, the bot will not be able to send them\n- Telegram bot does not support raw ip address for sending images, you should use domain instead\n\n## How to deploy with docker\n```\nmvn -f shop-telegram-bot/admin-panel/ package\nmvn -f shop-telegram-bot/telegram-bot/ package\n\ndocker build -t shop-admin-panel shop-telegram-bot/admin-panel/\ndocker build -t shop-telegram-bot shop-telegram-bot/telegram-bot/\n\ndocker-compose -f shop-telegram-bot/docker-compose.yml up -d\n```\n\n## How to deploy manually\n\u003e 1. Install software\n\n- Update and upgrade `sudo apt-get update \u0026\u0026 sudo apt-get upgrade`\n- Install git `apt-get install git`\n- Install maven `apt-get install maven`\n- Install jdk 17 `apt-get install openjdk-17-jdk`\n- Install postgres `apt-get install postgresql postgresql-contrib`\n- Install nginx `apt-get install nginx`\n- Clone repository `git clone https://github.com/ivan-zaitsev/shop-telegram-bot.git`\n- Package admin panel `mvn -f shop-telegram-bot/admin-panel/ package`\n- Package telegram bot `mvn -f shop-telegram-bot/telegram-bot/ package`\n\n\u003e 2. Set environment variables\n\nAdd database environment variables.\n\n- DATABASE_URL (jdbc:postgresql://localhost:5432/shop_telegram_bot)\n- DATABASE_USERNAME (postgres)\n- DATABASE_PASSWORD (postgres)\n\nOr you can manually change configuration in properties `telegram-bot/src/main/resources/hibernate.cfg.xml`\n and `admin-panel/src/main/resources/application.properties`\n\n\u003e 3. Create telegram bot\n\n- Create a telegram bot [here](https://t.me/BotFather) and enable inline mode in settings\n- Add telegram bot username and token to properties `telegram-bot/src/main/resources/application.properties`\n- To receive notifications about new orders you need specify your chat id in properties\n\n\u003e 4. Set up database\n\nReplace `your-directory` with directory where the cloned repository is located\n\n- Login postgres user `sudo -i -u postgres`\n- Connect postgres database `psql`\n- Change password `\\password`\n- Create database `create database shop_telegram_bot;`\n- Exit from postgres database `\\q`\n- Import database schema `psql -d shop_telegram_bot \u003c /your-directory/shop-telegram-bot/resources/1_db_schema.sql`\n- Import database data `psql -d shop_telegram_bot \u003c /your-directory/shop-telegram-bot/resources/2_db_data.sql`\n- Exit from postgres user `exit`\n\n\u003e 5. Set up admin panel\n\n\u003cdetails\u003e\n    \u003csummary\u003eCreate systemd unit\u003c/summary\u003e\n\nReplace `your-directory` with directory where the cloned repository is located\n\n`nano /etc/systemd/system/shop-admin-panel.service`\n\n```\n[Unit]\nDescription=shop-admin-panel\nAfter=syslog.target\n\n[Service]\nWorkingDirectory=/your-directory/shop-telegram-bot/\nExecStart=/usr/bin/java -jar /your-directory/shop-telegram-bot/admin-panel/target/admin-panel-1.0.0.jar\nStandardOutput=journal\nStandardError=journal\nSyslogIdentifier=shop-admin-panel\nSuccessExitStatus=143\nType=simple\nRestart=always\n\n[Install]\nWantedBy=multi-user.target reboot.target default.target poweroff.target\n ```\n\n`systemctl daemon-reload`\n\n`systemctl enable shop-admin-panel.service`\n\n`systemctl start shop-admin-panel.service`\n\u003c/details\u003e\n\n\u003cdetails\u003e\n    \u003csummary\u003eNginx configuration\u003c/summary\u003e\n\nReplace `your-domain.com` with your domain (domain is needed for correct sending of product photos)\n\n`nano /etc/nginx/conf.d/your-domain.com.conf`\n\n```\nserver {\n\n    listen 80;\n\n    server_name your-domain.com;\n\n\n    index index.html;\n\n    include conf.d/shop-admin-panel.include;\n\n}\n ```\n\n`nano /etc/nginx/conf.d/shop-admin-panel.include`\n\n```\nlocation /admin {\n\n    proxy_pass http://127.0.0.1:8080;\n    proxy_set_header Host $host;\n    proxy_set_header X-Real-IP $remote_addr;\n    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n    client_max_body_size 1024m;\n\n}\n ```\n\n`systemctl restart nginx`\n\u003c/details\u003e\n\nWeb UI is accessible on `http://localhost:8080/admin`, default credentials - admin:admin\n\n\u003e 6. Set up telegram bot\n\n\u003cdetails\u003e\n    \u003csummary\u003eCreate systemd unit\u003c/summary\u003e\n\nReplace `your-directory` with directory where the cloned repository is located\n\n`nano /etc/systemd/system/shop-telegram-bot.service`\n\n```\n[Unit]\nDescription=shop-telegram-bot\nAfter=syslog.target\n\n[Service]\nWorkingDirectory=/your-directory/shop-telegram-bot/\nExecStart=/usr/bin/java -jar /your-directory/shop-telegram-bot/telegram-bot/target/telegram-bot-1.0.0-jar-with-dependencies.jar\nStandardOutput=journal\nStandardError=journal\nSyslogIdentifier=shop-telegram-bot\nSuccessExitStatus=143\nType=simple\nRestart=always\n\n[Install]\nWantedBy=multi-user.target reboot.target default.target poweroff.target\n ```\n\n`systemctl daemon-reload`\n\n`systemctl enable shop-telegram-bot.service`\n\n`systemctl start shop-telegram-bot.service`\n\u003c/details\u003e\n\n## Screenshots\n#### Chatbot\n![](resources/images/1.jpg)\n![](resources/images/2.jpg)\n![](resources/images/3.jpg)\n![](resources/images/4.jpg)\n![](resources/images/5.jpg)\n#### Admin panel\n![](resources/images/6.jpg)\n![](resources/images/7.jpg)\n![](resources/images/8.jpg)\n![](resources/images/9.jpg)\n![](resources/images/10.jpg)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fivan-zaitsev%2Fshop-telegram-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fivan-zaitsev%2Fshop-telegram-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fivan-zaitsev%2Fshop-telegram-bot/lists"}