https://github.com/groundsgg/b3
🌍 B3 is your all-in-one home for Minecraft schematics, heightmaps, and everything your builds need
https://github.com/groundsgg/b3
fastasyncworldedit go golang heightmaps minecraft schematics worldedit
Last synced: 5 months ago
JSON representation
🌍 B3 is your all-in-one home for Minecraft schematics, heightmaps, and everything your builds need
- Host: GitHub
- URL: https://github.com/groundsgg/b3
- Owner: groundsgg
- License: agpl-3.0
- Created: 2026-01-11T17:59:51.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2026-02-04T21:31:40.000Z (5 months ago)
- Last Synced: 2026-02-05T09:40:32.173Z (5 months ago)
- Topics: fastasyncworldedit, go, golang, heightmaps, minecraft, schematics, worldedit
- Language: Go
- Homepage:
- Size: 52.7 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Block3
B3 is your all-in-one home for Minecraft schematics, heightmaps, and everything your builds need.
Table of Contents
- [Configuration](#configuration)
- [Environment Variables](#environment-variables)
- [Auth Method: Basic Authentication](#auth-method-basic-authentication)
- [Format](#format)
- [Permission Levels](#permission-levels)
- [Password Hash](#password-hash)
- [Auth Method: OpenID Connect](#auth-method-openid-connect)
- [Required Scopes](#required-scopes)
- [Scope Mapping](#scope-mapping)
- [Supported b3\_group Values](#supported-b3_group-values)
- [License](#license)
## Configuration
### Environment Variables
All variables are read from the environment. Defaults are listed when present.
| Variable | Default | Required | Notes |
| --- | --- | --- | --- |
| `LOGGING_LEVEL` | `info` | No | Sets the log level. |
| `WEB_LISTEN_ADDR` | `:8080` | No | HTTP listen address. |
| `WEB_BASE_URL` | `http://localhost:8080` | No | Public base URL used for redirects and CORS. |
| `WEB_SESSION_KEY` | none (generated) | No | If unset, a random key is generated. Set in production to keep sessions stable. |
| `AUTH_TYPE` | none | Yes | `basic_auth` or `oidc`. Controls which auth variables are required. |
| `AUTH_BASIC_USERS` | none | Yes (basic_auth) | Comma-separated list: `name:permission-level:bcrypt-hash`. |
| `AUTH_OIDC_DISCOVERY_URL` | none | Yes (oidc) | OIDC discovery URL. |
| `AUTH_OIDC_CLIENT_ID` | none | Yes (oidc) | OIDC client ID. |
| `AUTH_OIDC_CLIENT_SECRET` | none | Yes (oidc) | OIDC client secret. |
### Auth Method: Basic Authentication
Basic Authentication expects a list of users to be provided via the `AUTH_BASIC_USERS` environment variable.
See the provided [Docker Compose](/examples/basic_auth/compose.yml) example for a complete setup.
#### Format
Each user must be defined using the following format:
```
::
```
Multiple users must be separated by commas:
```
user1:10:$2b$...,user2:5:$2b$...
```
#### Permission Levels
Permission levels are defined numerically as follows:
| Role | Level |
|------|-------|
|VIEWER| 5 |
|EDITOR| 10 |
|ADMIN | 20 |
#### Password Hash
Passwords must be provided as bcrypt hashes.
A bcrypt hash can be generated using the following command:
```shell
$ b3 hash
Enter Password:
Hash:
```
### Auth Method: OpenID Connect
To enable OpenID Connect (OIDC), the client ID (`AUTH_OIDC_CLIENT_ID`), client secret (`AUTH_OIDC_CLIENT_SECRET`), and discovery URL (`AUTH_OIDC_DISCOVERY_URL`) must be configured.
See the provided [Docker Compose](/examples/oidc/compose.yml) example for a complete setup.
#### Required Scopes
B3 requests the following scopes during authentication:
- `openid`
- `profile`
- `b3`
The `b3` scope is **mandatory**. If it is not granted, the login attempt will be rejected.
#### Scope Mapping
In the identity provider, a scope-to-claim mapping must be configured:
- Scope: `b3`
- Claim: `b3_group`
If the `b3_group` claim is not present in the UserInfo, authentication will fail.
#### Supported b3_group Values
The following values are supported for the `b3_group` claim:
- `viewer`
- `editor`
- `admin`
## License
This project is licensed under the GNU Affero General Public License v3 (AGPLv3).
If you use this software to provide a service over a network, you must make the
complete corresponding source code available to the users of that service,
as required by the AGPL.