🇳 Free and Open-source Telegram bot to use the services of Ncell App.
MIT License
The bot is designed in a way to protect the privacy of users. You can learn more about this topic here.
Currently, the latest version of Ncell App is not open-sourced yet. I will try to release a new version as soon as possible.
Clone the repository, create a virtual environment, and install the requirements
git clone https://github.com/hemantapkh/ncellbot && virtualenv ncellenv && source ncellenv/bin/activate && cd ncellbot && pip install -r requirements.txt
Add your bot token in config.json file
Run the migration.py file to open a database.
python migrations.py
Now, start the bot polling
python telegrambot.py
While polling and webhooks both accomplish the same task, webhooks are far more efficient. Polling sends a request for new events (specifically, Create, Retrieve, and Delete events, which signal changes in data) at a predetermined frequency and waits for the endpoint to respond whereas, webhooks only transfer data when there is new data to send, making them 100% efficient. That means that polling creates, on average, 66x more server load than webhooks. (r)
Generate an SSL certificate
>> openssl genrsa -out sslPrivateKey.pem 2048
>> openssl req -new -x509 -days 3650 -key sslPrivateKey.pem -out sslCertificate.pem
"Common Name (e.g. server FQDN or YOUR name)" should be your Host IP.
Edit config.json file and set
And, start the aioHttp server.
python telegrambot.py
You can set up GitHub actions to update the bot automatically on every push.
Fork the repository on your GitHub account.
Create a directory
mkdir /opt/ncell
You should create a directory with the same name as above inside /opt, or edit the deploy.yml and deployScript.sh
Create a virtual environment in the directory with name ncellenv
virtualenv ncellenv
Clone the repository and install the requirements in the virtual environment
git clone https://github.com/hemantapkh/ncellbot && cd ncellbot && source /opt/ncell/ncellenv/bin/activate && pip install -r requirements.txt
Create a database and move the database into /opt/ncell
python migrations.py && mv database.sqlite /opt/ncell
Generate SSH keys for your VPS and keep the private key in your GitHub secrets
ssh-keygen
command. You must leave the passphrase empty while generating the SSH key.sh-copy-id -i your_public_key user@host
command.SSHKEY
. (Repository settings >> secrets >> New repository secret)
Create another GitHub secret with name HOST
and save your Host IP.
Edit config.json file and set
/opt/ncell
and set
Copy the content of the edited config.json and save it on your repository secrets with name CONFIG
. Don't forget to wrap the content of config file with single quotes like this 'Content of config.json'
.
And, start the bot.
source /opt/ncell/ncellenv/bin/activate && screen -dm python /opt/ncell/ncellbot/telegrambot.py
Now, every time you push on the main
branch, the bot automatically gets updated.
Any contributions you make are greatly appreciated.
For minor fix, you can directly create a pull request and for adding a new feature, let's first discuss it in our telegram group or in GitHub Discussion.
Distributed under the MIT License. See LICENSE for more information.
Made using Ncell App and pyTelegramBotApi in Python by Hemanta Pokharel [ ]