Waarom GCP?
Bij het schrijven van Telegram-bots stuitte ik op de vraag hoe ik het snel en gratis kon doen zodat de bot constant werkte. De opties met Heroku en PythonAnywhere hebben te kleine limieten als je meer dan ƩƩn bot hebt. Daarom besloot ik om GCP te gebruiken. Het platform biedt $300 gratis voor een jaar + enorme kortingen bij het gebruik van deze middelen (tot 94%).

Hoe host je je bot?
Stap 1. Registratie op GCP
Ga naar de website and click Begin gratis.

Vul je gegevens en creditcard in. Geld van de creditcard wordt niet afgeschreven, tenzij je zelf een betaalabonnement activeert.

Stap 2. Maak een virtuele machine aan
Na registratie kom je op de hoofdpagina van de service. Je moet in het gedeelte Bronnen het tabblad Compute Engine selecteren.

Je moet een nieuwe instantie aanmaken.

Als je geen database wilt implementeren op een virtuele machine, kun je g1-small gebruiken, anders raad ik n1-standard aan.

Je moet ook een besturingssysteem kiezen. Ik koos voor Debian GNU/Linux 9 (stretch).

Dat is het, de VM is gemaakt. Gewoonlijk duurt het opzetten van de VM tussen de 1 en 5 minuten.
Stap 3. Configuratie van de virtuele machine
Je kunt verbinding maken via SSH vanaf je pc of interactief werken via het platform.
Klik hiervoor op SSH.
![]()
Er opent een Linux-terminal in een nieuw venster.

Laten we nu naar de configuratie gaan. Voer eerst het commando in:
sudo apt-get updateom informatie over de nieuwste versies van pakketten bij te werken.
Vervolgens voer je in:
sudo apt-get install python3-setuptools
sudo apt-get install python3-pipJe hoeft Python zelf niet te installeren, dat is al aanwezig.
Nu is het tijd om alle benodigde bibliotheken te installeren. Er is één klein punt: alle bibliotheken moeten twee keer worden geïnstalleerd:
pip3 install āname_of_packageāvoor gebruik met het commando python3, en
sudo pip3 install āname_of_packageā voor systemd. Dit hulpmiddel helpt je om de bot te starten en opnieuw te starten als hij crasht.
De eenvoudigste manier om de bot via python3 te starten, maar hij stopt als je jezelf afmeldt. Je kunt screen gebruiken, maar de bot zal niet automatisch opnieuw opstarten. Je kunt ook crontab gebruiken met poortcontrole, maar ik vind die optie moeilijker dan systemd.
Stap 4. Upload de bot naar de server
Er zijn twee manieren om je bot te uploaden. Als je niet goed met Git bent, kun je de bot gewoon archiveren in .tar en deze naar de server uploaden:

Daarna unzippen we het met het commando:
tar -xvf yourfile.tarNu wordt je bot opgeslagen in de map met de naam van het archief.
De tweede manier is via Git. Ik denk niet dat het nodig is uit te leggen hoe je dit moet doen voor mensen die het kunnen gebruiken.
Na de installatie met het commando:
sudo apt install gitJe kunt het voor jezelf naar de VM klonen.
Daarna gaan we verder met de configuratie van systemd. Hiervoor gaan we naar zijn map:
cd /etc/systemd/systemEn we maken het bestand bot.service aan:
sudo nano bot.serviceWe schrijven het volgende in het geopende venster:
[Unit]
Description=Telegram bot 'Bot Naam'
After=syslog.target
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/home/je gebruikersnaam/de map waarin de bot zich bevindt
ExecStart=/usr/bin/python3 /home/je gebruikersnaam/de map waarin de bot zich bevindt/bot.py
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
Sluit het bestand en sla het op. Sluiten doe je met de opdracht Ctrl+X.
Voer daarna de onderstaande commando's ƩƩn voor ƩƩn in:
sudo systemctl daemon-reload
sudo systemctl enable bot
sudo systemctl start bot
sudo systemctl status bot
Als alles goed gaat, zie je ongeveer het volgende:

Dat is het, je bot draait nu zelfstandig. Ik hoop dat mijn artikel je helpt je bot te hosten.
P.S.
1. Controleer je bot op fouten
Start je bot en controleer of deze goed werkt voordat je deze via systemd start. Ga daarvoor naar de map met de bot en start deze via python.
cd 2. Voeg codering toe aan de py-scriptbestanden
#!/usr/bin/env python
# -*- coding: utf-8 -*-
Plaats dit aan het begin van het bestand.
3. Fouten in systemd
Als je de bot op fouten hebt gecontroleerd en hij normaal werkte, maar hij wil niet starten in systemd, kun je de logbestanden bekijken en begrijpen wat de fout is door het bestand te bekijken:
sudo nano /var/log/syslogJe kunt dit bestand downloaden en op je computer bekijken met Notepad++.
4. Bot bijwerken
Als je de bot wilt aanpassen of een nieuwe versie wilt uploaden, voer dan het volgende commando in:
sudo systemctl stop botVoer alle noodzakelijke handelingen uit. Voer daarna de volgende commando's in om het weer te laten werken:
sudo systemctl daemon-reload
sudo systemctl start bot
sudo systemctl status botBron: habr.com
