Bubble

Bulletin Boards for Gemini

🔖 Tags
🗎 File Tree
⌥ Branches [main]
Clone URL

Latest Commits

2025-12-02 Admin can lock threads permanently; bumped version to 9.24
2025-11-30 Omit drafts from comment count; bumped version to 9.23
2025-11-19 Added Leafy Green avatar
2025-11-01 Fixed: Error when admin views the feed
2025-10-26 Admin: Changing user role from user feed page
2025-10-26 Bumped version to 9.21
2025-10-26 User: Viewing post/comment index by date or subspace
2025-10-26 Fixed error when viewing comment on a deleted post
More...

💬 Bubble — Bulletin Boards for Gemini

Bubble is a Gemini-based bulletin board system that can be summarized as a union of station.martinrue.com, Reddit, WordPress, and issue trackers like GitHub Issues. It is implemented as an extension module to GmCapsule.

Bubble has been designed to be useful for both individuals and communities. It has multiple objectives and target audiences:

GmCapsule

Requirements

Installation

1. Decide on the database user name and password that will be used by Bubble to access your database server.

2. Create a MariaDB database using your admin credentials:

CREATE DATABASE bubble CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
GRANT ALL PRIVILEGES ON bubble.* TO 'db_user'@'localhost' IDENTIFIED BY 'db_password';

3. Configure GmCapsule to load the Bubble extension. In the server's configuration file, add the Bubble source directory (where *50_bubble.py* can be found) to your `modules`:

modules = /home/username/src/bubble

4. Copy the example configuration from _example.ini_ to your GmCapsule configuration file. Edit the configuration and update the database parameters with the correct values:

db.host = localhost
db.port = 3306
db.user = db_user
db.password = db_password
db.name = bubble

5. Update the rest of the `[bubble]` configuration including the capsule name, icon, description, and code of conduct.

6. Email notifications require a working sendmail-compatible CLI tool. This feature can be disabled by leaving `email.cmd` empty.

email.cmd = /usr/sbin/sendmail
email.from = admin@example.com

7. An account called "admin" is created when the Bubble database is initialized on the first run of the server. However, it does not have any registered client certificates so it is impossible to log in as "admin". The `admin.certpass` config variable sets a temporary password using which you can register certificates for the admin account.

admin.certpass = mypassword

After these steps, you should be able to access the "admin" account and use Bubble itself to continue the capsule configuration.

License

Bubble is licensed under BSD-2-Clause.

BSD-2-Clause