2
Installation via pip
Stefano Pigozzi edited this page 2022-10-29 16:12:28 +02:00

This installation procedure assumes you are on a Linux system, using bash and have python3 installed.

Requirements

Consider renting a virtual private server (VPS) to host the bot on; a cheap one should do, as greed is pretty lightweight! :)

Steps

  1. Download the project files by running:

    $ git clone https://github.com/Steffo99/greed.git
    
  2. Enter the newly created folder:

    $ cd greed
    
  3. Create a new venv:

    $ python3 -m venv venv
    
  4. Activate the venv:

    $ source venv/bin/activate
    
  5. Install the project requirements:

    $ pip install -r requirements.txt
    
  6. Optional: For colored console output, install coloredlogs:

    $ pip install coloredlogs
    
  7. Generate the configuration file:

    $ python -OO core.py
    
  8. Edit the configuration file config.toml, adding your bot and payment tokens to it:

    $ nano config/config.toml
    

    (Press Ctrl+X and then two times Enter to save and quit nano.)

    Beware to not enter your configuration in the template_config.toml file, as it will be ignored and may cause trouble when updating.

  9. Optional: customize the files in the strings folder for custom messages.

  10. Start the bot:

    $ python -OO core.py
    
  11. Open Telegram, and send a /start command to your bot to be automatically promoted to 💼 Manager.

  12. Stop the bot by pressing Ctrl+C.

Running the bot

After the installation, to run the bot, you'll need to:

  1. Activate the venv (if it has not already been activated in the current console session):

    $ source venv/bin/activate
    
  2. Start the bot:

    $ python -OO core.py
    

Keep the bot running

If you want to keep the bot open even after you closed your terminal window, you'll need to use an external program, such as:

  • screen (easier, but doesn't restart automatically)
  • systemd (recommended, but more complex)

screen

  1. Open a screen that will be running the bot with the following command:
    $ screen venv/bin/python -OO core.py
    
    To safely detach the screen, press Ctrl+A and then Ctrl+D.

systemd

Assuming you downloaded greed in /srv/greed:

  1. Create a new user named greed:

    $ useradd greed --system
    
  2. Give ownership of the greed folder you downloaded earlier to the greed user:

    $ chown -R greed: /srv/greed
    
  3. Create a new file in /etc/systemd/system named bot-greed.service with the following contents:

    [Unit]
    Name=bot-greed
    Description=Greed Bot
    Wants=network-online.target
    After=network-online.target nss-lookup.target
    
    [Service]
    Type=exec
    User=greed
    WorkingDirectory=/srv/greed
    ExecStart=/srv/greed/venv/bin/python -OO /srv/greed/core.py
    Environment=PYTHONUNBUFFERED=1
    
    [Install]
    WantedBy=multi-user.target
    
  4. Start the bot-greed service:

    $ systemctl start bot-greed
    
  5. If everything goes well, enable the bot-greed service, so it will automatically start on a reboot:

    $ systemctl enable bot-greed   
    

Updating

To update the bot, run the following commands:

$ git stash
$ git pull
$ git stash pop

If you're using an older version of greed, you may need to recreate the configuration, as greed doesn't use config.ini anymore and but uses config.toml instead.