Updated README, added LICENSE

This commit is contained in:
Jaakko Keränen 2023-05-13 23:24:15 +03:00
parent 95c5400fb0
commit a615e2523f
No known key found for this signature in database
GPG Key ID: BACCFCFB98DB2EDC
2 changed files with 37 additions and 11 deletions

11
LICENSE.md Normal file
View File

@ -0,0 +1,11 @@
# BSD 2-Clause License
**Copyright 2023 Jaakko Keränen (jaakko.keranen@iki.fi)**
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

View File

@ -1,17 +1,32 @@
# Bubble: Bulletin Boards for Gemini
# 💬 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](https://git.skyjake.fi/gemini/gmcapsule).
Bubble has been designed to be useful for both individuals and communities. It has multiple objectives and target audiences:
* Someone could run Bubble in a manner similar to WordPress, as a Gemini-based CMS for their capsule. Every user on a Bubble server gets their own personal "u/" feed that is available both for Gemini subscriptions and Tinylog followers.
* A group of people can run Bubble as their own version of Station. Users' posts appear in the shared All Posts feed on the front page.
* Groups of people can set up their own moderated "s/" subspaces on a larger Bubble instance for topic-specific discussions, much like subreddits on Reddit. Users can freely create new Bubble subspaces. Subspaces have their own home pages and Gemini feeds.
* A developer of Gemini software can switch a subspace to issue tracking mode and link it with a Git repository. Issue tracking subspaces behave like GitHub Issues (and other Git forges on the web) in that posts have an open/closed status and they can cross-reference other issues in the tracker and commits in the Git repository.
## Requirements
- Python 3.6+ (same as GmCapsule)
- MariaDB database
- MariaDB Python Connector module ("mariadb" on PyPI)
## Installation
1. Configure GmCapsule to load the Bubble extension. In the server's configuration file, add the Bubble source directory to your `modules` (where *50_bubble.py* can be found):
```ini
modules = /home/username/src/bubble
```
2. Decide on the database user name and password that will be used by Bubble to access your database server.
3. Create a MariaDB database using your admin credentials:
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:
```sql
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`:
```ini
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:
```ini
db.host = localhost
@ -21,18 +36,18 @@ 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.
6. Email notifications require a working sendmail-compatible CLI tool. This feature can be disabled by leaving `email.cmd` empty.
```ini
email.cmd = /usr/sbin/sendmail
email.from = admin@example.com
```
7. An "admin" account 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.
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.
```ini
admin.certpass = mypassword
```
After these steps, you should be able to access the "admin" account and use Bubble itself to continue the capsule configuration.
## Capsule Setup
## License
Bubble is licensed under [BSD-2-Clause](https://opensource.org/license/bsd-2-clause/).