Setup

This page describes how to setup teleghosts on a local machine and how to deploy it on a server.

Prerequisites

  • If you plan to self-host the teleghosts instance it is expected that you possess your own Telegram bot token. Under no circumstances we disclose or transfer Telegram bot tokens created by us.

  • You will also need a SimpleX Chat profile with a public address. We recommend to create a separate profile specifically for teleghosts and we recommend to avoid sharing its public address with anyone to secure yourself from fishing attacks.

  • Simplex CLI binary named simplex-chat must be either available in your $PATH or must be located in the same directory the teleghosts command is invoked from.

Local setup

Running teleghosts locally is quite trivial. teleghosts creates and manages files in ./db/ ./fs/ ./logs/ and ./setup/ directories relative to the path it is launched from and executes the simplex-chat binary either from the same directory or from $PATH. Ensure that teleghosts has required permissions and you are ready to go.

We also recommend to add teleghosts and simplex-chat to your $PATH because this way you can conveniently run multiple teleghosts instances by invoking teleghosts from different directories.

teleghosts and simplex-cli together are exptected to consume up to 256 MB of RAM and negligible amount of disk space. The ./fs directory stores files temporarily, the files there are removed automatically if they’re not accessed for ~30 minutes.

Server setup

We don’t recommend to deploy current teleghosts alpha versions on servers yet because there are some unaddressed issues that, in the worst case, may cause a message loss without any indication on the app side. If you don’t consider these issues severe enough then just follow the local setup steps on your server as there are no differences between local and server setups at this point. In the future teleghosts will be distributed in teleghosts-local and teleghosts-server bundles and teleghosts-server will require additional configuration.