Public Groups - a bot to let others join your channel

“Strangers are just friends you haven’t met yet.”

  • (proverb)

The Public Groups bot is a nice tool to create public channels, where any Delta Chat user can join - even if you don’t know each other yet.

You can see the existing public groups bots here: Public Groups bot instances list

This post shows three things:

  • How you can join public groups
  • How you can start a public group
  • How to run it

How Can I Join a Public Group?

As a user, you open a website - it shows a login page with a QR code. You need to scan the QR code with Delta Chat to login, as if you would add another user:

Then you see an overview over the existing public groups:

This is where you can join a public group with only one mouse click. The bot adds you to the group in Delta Chat, then you can write with others about Game of Thrones quotes, Dancing, or whatever you like.

How Do I Open a Public Group?

If you want to offer such a channel yourself, you need a public groups instance somewhere. Find out below how to run one.

The starting point is the webpage where you login. If you scanned the QR code, you have the bot in your contact list. Now you can create a group and add the bot. After you created the group, you have to send “/publish” to the group - then the bot will show it to other people who login at the bot.

After this, you can see the group in the web interface - and so can everyone else who scanned the QR code to log in.

If you want to unpublish the group again, to prevent strangers from joining, that’s easy as well - just write “/unpublish” to the group, and the bot will remove it from the public page. Now you have a private group again.

How Can I Run the Bot Myself?

To find out how to run the bot, take a look at its readme file. It’s only a few commands on a command line.

You also need an email account for the bot, of course. If you want to find a good provider, take a look at our provider database.

Other than most bots, this bot doesn’t make much sense if its running in a local network only - you need a website if you want strangers to join. So rent a small VPS, install NGINX, and let it forward the traffic to localhost:3000. This is a short example nginx config which you can use:

server {
        server_name example.org;
	location / {
		proxy_pass http://127.0.0.1:3000;
	}

        listen [::]:443 ssl ipv6only=on; # managed by Certbot
        listen 443 ssl; # managed by Certbot
        ssl_certificate /etc/letsencrypt/live/example.org/fullchain.pem; # managed by Certbot
        ssl_certificate_key /etc/letsencrypt/live/example.org/privkey.pem; # managed by Certbot
        include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
        if ($host = example.org) {
                return 301 https://$host$request_uri;
        } # managed by Certbot

	listen 80 default_server;
	listen [::]:80 default_server;

	server_name example.org;
        return 404; # managed by Certbot
}

Was this post helpful for you? You can leave a comment if you have a question or any other ideas :slight_smile:

3 Likes

Could you please explain the difference of the QR scan thing that got touted as “secure groups”, and now the “public groups” bot?

Would you say using the QR (QR group join or QR login) does not allow the bot to replace your contacts? Is there absolutely no larger difference to a usual meaning of a “secure group” communication?

It has nothing to do with secure/verified groups.

The QR code scanning method this bot is using is only a workaround for now, but a very interesting one, because it enables “login with Delta Chat”. For now, it’s using a QR code to join a normal group, but not the QR code to join a verified group. In the long term we want to have a separate kind of QR code for this “login with Delta Chat” method.

This method does not at all allow the bot to replace your contacts. Under the hood, the bot is just one of your contacts, an email address - and of course your contacts can’t replace other contacts.

The difference between secure/verified groups, normal groups, and public groups depend on what their members want to do with them:

  • If you want to start a verified group, you have to explicitly create it as a verified group. Then you can invite people with a QR code. It is still an experimental feature.
  • If you want to start a normal group, you can create one. then you can invite people with a QR code, or by just adding your contacts to the group.
  • If you want to start a public group, you have to add a public-groups-bot to a normal group, and write “/publish” to the group. Then others can see it in the web interface, and join.

So it’s about what the users want to do with it.

BTW, this instance list probably belongs to this thread: Public Groups bot instances list

1 Like

Ok, it’s important to know that there is actually no authentication beyond email reachability, and thus no protection against man in the middle attacks put in place.

And that one-way thing that’s called “secure QR” is probably still deliberately designed to inject keys but actually never verify the contact’s keys.

BTW: "A bot to let others join your channel"
I think what might make sense could be something like a mailman QR plugin, for easy control of the mailing list subscription manager. That would have a chance to work beyond the To: group member limit.

1 Like