EQVPS

Πώς να φιλοξενήσετε ένα Telegram bot σε VPS (και να το κρατήσετε σε λειτουργία)

Jun 15, 2026 · 3 λεπτά ανάγνωσης · EQVPS Team

Ένα Telegram bot που τρέχει μόνο όσο το laptop σας είναι ανοιχτό δεν τρέχει πραγματικά — κάνει demo. Για να είναι πραγματικά online, να απαντά στις 3 π.μ., να επιβιώνει από τις επανεκκινήσεις σας και τα δικά του crashes, πρέπει να ζει σε έναν server. Ιδού όλη η διαδρομή, από την αρχή ως το τέλος, με τις εντολές.

Πρώτα τα καλά νέα: ένα bot είναι ένα μικροσκοπικό φορτίο. Κυρίως κάθεται αδρανές περιμένοντας μηνύματα, οπότε το φθηνότερο box το τρέχει μια χαρά — χωρίς αποκλειστικό IP, χωρίς domain, τίποτα φανταχτερό.

1. Πάρτε ένα token από το BotFather

Στο Telegram, στείλτε μήνυμα στο @BotFather, στείλτε /newbot, επιλέξτε ένα όνομα και username. Σας δίνει ένα token που μοιάζει με 12345:AAH.... Αντιμετωπίστε το σαν κωδικό — οποιοσδήποτε το έχει ελέγχει το bot σας.

2. Ένα minimal bot

Συνδεθείτε με SSH στον server, στήστε Python και τη βιβλιοθήκη:

sudo apt update && sudo apt install -y python3-venv
mkdir ~/mybot && cd ~/mybot
python3 -m venv venv && source venv/bin/activate
pip install python-telegram-bot

Ένα bot που απαντά — ~/mybot/bot.py:

import os
from telegram.ext import ApplicationBuilder, CommandHandler

async def start(update, ctx):
    await update.message.reply_text("Alive and on a server. 🟢")

app = ApplicationBuilder().token(os.environ["BOT_TOKEN"]).build()
app.add_handler(CommandHandler("start", start))
app.run_polling()

Σημειώστε ότι διαβάζει το token από ένα environment variable — όχι hardcoded. Αυτό μετρά στο επόμενο βήμα.

3. Το μέρος που πραγματικά το κρατά σε λειτουργία: systemd

Αν απλώς τρέξετε python bot.py, πεθαίνει τη στιγμή που κλείνετε το SSH. Ένα systemd service είναι αυτό που το κάνει να επιβιώνει αποσύνδεσης, crashes, και επανεκκινήσεων. Δημιουργήστε το /etc/systemd/system/mybot.service:

[Unit]
Description=Telegram bot
After=network-online.target

[Service]
WorkingDirectory=/home/youruser/mybot
Environment=BOT_TOKEN=12345:AAH...your-token
ExecStart=/home/youruser/mybot/venv/bin/python bot.py
Restart=always
RestartSec=5
User=youruser

[Install]
WantedBy=multi-user.target

Μετά:

sudo systemctl daemon-reload
sudo systemctl enable --now mybot
sudo systemctl status mybot      # should say active (running)
journalctl -u mybot -f           # live logs

Το Restart=always είναι η γραμμή που κάνει την πραγματική δουλειά — crash, και επιστρέφει σε 5 δευτερόλεπτα. Το enable σημαίνει ότι ανεβαίνει μετά από επανεκκίνηση. Αυτή είναι όλη η διαφορά μεταξύ «έτρεξα ένα bot μια φορά» και «το bot μου είναι ενεργό».

4. Γιατί χωρίς domain ή ανοιχτά ports

Το bot χρησιμοποιεί long polling — καλεί προς τα έξω το Telegram για ενημερώσεις, οπότε τίποτα δεν χρειάζεται να φτάσει προς τα μέσα. Χωρίς δημόσιο URL, χωρίς εισερχόμενο κανόνα firewall, χωρίς αποκλειστικό IP. Γι' αυτό ακριβώς ένα NAT VPS (κοινόχρηστο IP, SSH σε ένα port) είναι ένα καλό και φθηνό σπίτι για ένα bot. Τα webhooks υπάρχουν για πολύ μεγάλο όγκο, αλλά σχεδόν σίγουρα δεν τα χρειάζεστε για να ξεκινήσετε.

Έντιμες επιφυλάξεις

Αυτό είναι. Κλειδώστε το box πρώτα με την checklist ασφαλείας, ρίξτε το service μέσα, και το bot σας μένει online είτε είστε εσείς είτε όχι. Σε ένα crypto-paid VPS μπορείτε να το έχετε σε λειτουργία ένα λεπτό αφού αποφασίσετε.

Συχνές ερωτήσεις

Ποιο VPS χρειάζομαι για ένα Telegram bot;

Το μικρότερο. Ένα Telegram bot είναι κυρίως αδρανές, περιμένοντας ενημερώσεις, οπότε 1 GB RAM και 2 πυρήνες είναι άφθονα για τα περισσότερα bots — ακόμη και αρκετά πολυάσχολα. Χρειάζεστε περισσότερα μόνο αν το bot κάνει βαριά δουλειά μόνο του (επεξεργασία εικόνων, τοπικό μοντέλο, μεγάλη βάση δεδομένων).

Πώς κρατάω ένα Telegram bot να τρέχει αφού κλείσω το SSH;

Τρέξτε το ως systemd service. Σε αντίθεση με την εκκίνησή του στο terminal σας, το systemd το κρατά ζωντανό μετά την αποσύνδεσή σας, το επανεκκινεί αν κρασάρει, και το ξεκινά ξανά μετά από επανεκκίνηση. Αυτή είναι η διαφορά μεταξύ ενός παιχνιδιού και κάτι που μένει ενεργό.

Γιατί σταματά το bot μου όταν αποσυνδέομαι;

Επειδή το ξεκινήσατε στη συνεδρία SSH σας, οπότε πεθαίνει όταν τελειώνει αυτή η συνεδρία. Τυλίξτε το σε ένα systemd service (ή tmux για μια γρήγορη δοκιμή) και τρέχει ανεξάρτητα από τη σύνδεσή σας.

Χρειάζομαι domain ή webhook για ένα Telegram bot;

Όχι. Το long polling (getUpdates) δεν χρειάζεται δημόσιο URL, domain, ή εισερχόμενο port — το bot καλεί προς τα έξω το Telegram. Γι' αυτό ένα NAT VPS χωρίς αποκλειστικό IP είναι απόλυτα εντάξει για ένα bot. Τα webhooks είναι μια προαιρετική βελτιστοποίηση για μεγάλο όγκο.

Είναι ασφαλές να βάλω το token του bot μου σε ένα VPS;

Ναι, αν το αντιμετωπίσετε σαν κωδικό: κρατήστε το σε ένα environment variable ή ένα αρχείο αναγνώσιμο μόνο από τον χρήστη του bot, ποτέ μην το commit-άρετε στο git, και κλειδώστε τον server με SSH keys. Αν ένα token διαρρεύσει, ανακαλέστε το στο BotFather και εκδώστε νέο.

← Πίσω στο BlogΔείτε πακέτα & τιμές →

Σχόλια

Δεν υπάρχουν ακόμη σχόλια. Γίνετε ο πρώτος.

Αφήστε ένα σχόλιο

Τα σχόλια ελέγχονται πριν εμφανιστούν.