Re-host bots using separate servers

Expected behavior

I can use the bots at separate servers.

Update: I think it is more like “Fork” button, so when there is a “Re-host” button, the bot will be deployed on another server.

Actual behavior

I can only use the bots with the creator hosts

Update: even with open source bots, i will need to deploy it manually outside DeltaChat.

My initial thinking

There are multiple experiments happening in DeltaChat using bots, but unlike webxdc, some users would like separate hosting/manager of the bots.

For extra convenience, the users also can pay for the servers: Pay for chatmail server

The following would support the same aim with a different, cheaper route (by providing to run bots anywhere, including on the client, possibly if they were implemented in JavaScript or wasm):

1 Like

Yeah, maybe localhost can be an option, but then maybe separate warnings need to be given (because not everyone like their computer to be a server)

No, that issue is not necessarily about running daemons 24/7 on your SBC. It is about allowing extensions which run inside DC itself. Depending on configuration, such an extension will either serve only the local DC user in front of the device, or other contacts as well.

1 Like

Yeah sure, if the bots no need to be daemon, that will be great.

You can already host the bot on multiple servers: the same bot account can be shared on multiple “devices”, in this case servers. The features of the bot must take that into account of course, and that kind of programming is not obvious.

1 Like

Most of the bots in the Public Bot Index have multiple instances on different servers. There are also many unpublished instances, for censorship evasion.

The bots are open-source. Their code is available on Codeberg and/or Github.

Anyone can set up a bot on their own server. You can also run a bot on a free account on any Chatmail server. You dont’t even need the server owner’s assistance. A bot is just an autoresponse program that automatically answers e-mails.

1 Like

I don’t understand what this post is about, what does it mean “I can use the bots at separate servers”???

if by that you meant you don’t want to use a public instance of a bot that someone shared, then you can self-host them, most of them are open source, several can be found here: DeltaChat Bots · GitHub

you don’t even need a server, I will not enter in deep details but you can even host bots in your android phone using something like Termux app and similar: Termux | F-Droid - Free and Open Source Android App Repository

if you have a Linux desktop it is also possible to run them there at home, no need to pay for any VPS etc.

1 Like

I think it is more like “Fork” button, so when there is a “Re-host” button, the bot will be deployed on another server.

You mean you want bots to give you their source code if you type “/fork“ or “/source“ at them? It would make sense if they replied with a link to their Codeberg or Github repo. But since anyone can run a bot however they like, this could just be a common convention, not a requirement.

1 Like

the bot needs to run somewhere and you can’t have a magic button “re-host”, this is not some magic thing, the bot is just a program and how and where you can run that program varies and has requirements, for example the AI chatbots need powerful machines, some bots have extra dependencies like a headless Chromium browser or PDF program in the case of some web-preview bots, etc.

it seems as a high-level user you have an oversimplified view of what a bot is, but even then let’s assume somehow that would be so easy to run everywhere, you can’t just trust any random bot to provide you a program/code that is not malicious and will not leak data etc

1 Like

I think my way forward will be gathering the source code of some bots, review their dependencies, and make it easy to deploy new instances (maybe dockerize it) just by asking a bot to do it. Then after that modifying those bots to accept /rehost command so i don’t need to go to another bot, just for convenience.

Maybe something like interface to Yunohost

1 Like