This is a mirror! Go to the official repository on Gitlab
BGCat
BGCat, short for Boardgame Catalog, is a web app for displaying your magnificent boardgame collection to your friends. With the search and filter features you and your friends can effortlessly find the game to play!
Get Started • Demo • API Docs
Supported architectures:
-
linux/amd64
-
linux/arm64
docker run --detach --restart=always \
-e BGCAT_ADMIN_TOKEN="a_good_password" \
-e BGCAT_SECRET="super_secret_cookie_that_should_be_really_long" \
-p 8000:8000 \
-v </your/local/data>:/app/data \
registry.gitlab.com/imstevenxyz/bgcat:latest
By default the container will run with user uid and gid 65534 (nobody). Running with an arbritrary id is possible using --user {uid}:{gid}
. Make sure this matches the ownership of your local data directory.
The images include a local installation of SurrealDB. To use this instance don’t change the db_start_local and db_cmd configuration options!
-
Install Rust
-
Download this repo
-
Build BGCat for your native architecture:
cargo build --release
-
Run the build binary:
./target/release/bgcat
BGCat can be configured using a config file (bgcat.toml
) or environment variables.
Environment variables should be all uppercase and prefixed with BGCAT_
, eg: BGCAT_ADMIN_TOKEN
Possible options:
Option | Description | Type | Default |
---|---|---|---|
admin_token |
The token for the admin interface |
string |
|
secret |
Secret token used for session cookie |
string |
|
adr |
Address to listen on |
string |
|
port |
Port to listen on |
u16 |
|
data_dir |
The directory to store the assets and db file if applicable |
string |
|
webp_quality |
The encoding quality to use when converting uploaded images |
f32 |
|
default_page_limit |
The default limit of items to show per page |
u32 |
|
ui_page_limit_step |
Step interval of the page limit input field |
u32 |
|
db_start_local |
Wether to start a local SurrealDB instance |
bool |
|
db_cmd |
SurrealDB command to start local instance |
string |
|
db_adr |
The address of the database |
string |
|
db_ns |
Database namespace |
string |
|
db_name |
Database name |
string |
|
db_user |
Database authentication username |
string |
|
db_pass |
Database authentication password |
string |
|
log_level |
The log level to show in console |
string ( |
|
The interface is available at the /admin
endpoint, eg: localhost:8000/admin
.
Here you can create, delete and update your boardgames. Uploaded images are converted to webp and stored in the assets
folder under your data directory.
cargo build --release --target x86_64-unknown-linux-gnu --target-dir ./builds
ln -sr ./builds/x86_64-unknown-linux-gnu ./builds/amd64
buildah build --file container/Containerfile -t bgcat:dev .
podman run --rm --name bgcat -p 8000:8000 -e BGCAT_ADMIN_TOKEN=password -e BGCAT_SECRET=really_long_super_secret_token localhost/bgcat:dev
Inspirations for theme and colors:
-
bastienwirtz/homer (Header and light/dark theme)
-
catppuccin/catppuccin (Colors)