initial commit

This commit is contained in:
Joel Wetzell
2025-12-03 17:58:59 -06:00
commit 63e9108fb2
21 changed files with 8035 additions and 0 deletions
+10
View File
@@ -0,0 +1,10 @@
version: 2
updates:
- package-ecosystem: 'npm'
directory: '/'
schedule:
interval: 'weekly'
- package-ecosystem: 'github-actions'
directory: '/'
schedule:
interval: 'weekly'
+23
View File
@@ -0,0 +1,23 @@
name: Check docs builds
on:
pull_request:
branches:
- main
jobs:
build-docs:
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
- name: Set up Node.js
uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0
with:
node-version-file: '.nvmrc'
cache: 'npm'
cache-dependency-path: 'package-lock.json'
- name: Install Node.js dependencies
run: npm ci
- run: npm run build
+35
View File
@@ -0,0 +1,35 @@
name: Publish to docs site
on:
workflow_dispatch:
push:
branches:
- main
jobs:
build-docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
- name: Set up Node.js
uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0
with:
node-version-file: '.nvmrc'
cache: 'npm'
cache-dependency-path: 'package-lock.json'
- name: Install Node.js dependencies
run: npm ci
- name: build docs
run: npm run build:prod
- name: publish docs
uses: SamKirkland/FTP-Deploy-Action@a51268f67f6605236975928ae28b0f7e9971d50a # v4.3.6
with:
server: ${{secrets.FTP_HOST}}
username: ${{secrets.DOCS_FTP_USERNAME}}
password: ${{secrets.DOCS_FTP_PASSWORD}}
local-dir: ./dist/
server-dir: docs/
port: 21
protocol: ftps
+18
View File
@@ -0,0 +1,18 @@
# build output
dist/
# generated types
.astro/
# dependencies
node_modules/
# logs
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# environment variables
.env
.env.production
+1
View File
@@ -0,0 +1 @@
v24.11.1
+33
View File
@@ -0,0 +1,33 @@
import starlight from '@astrojs/starlight';
import { defineConfig } from 'astro/config';
// https://astro.build/config
export default defineConfig({
integrations: [
starlight({
title: 'showbridge',
favicon: '/favicon.ico',
social: [
{
icon: 'github',
label: 'GitHub',
href: 'https://github.com/jwetzell/showbridge-go',
},
],
sidebar: [
{
label: 'showbridge',
autogenerate: { directory: '/showbridge' },
},
{
label: 'Run',
autogenerate: { directory: 'run' },
},
{
label: 'Reference',
autogenerate: { directory: 'reference' },
},
],
}),
],
});
+7754
View File
File diff suppressed because it is too large Load Diff
+23
View File
@@ -0,0 +1,23 @@
{
"name": "@showbridge/docs",
"type": "module",
"version": "0.1.0",
"files": [
"dist"
],
"scripts": {
"dev": "astro dev",
"start": "astro dev",
"build": "astro check && astro build",
"build:prod": "astro check && astro build --base /docs",
"preview": "astro preview",
"astro": "astro"
},
"devDependencies": {
"@astrojs/starlight": "0.37.0",
"astro": "5.15.9",
"sharp": "0.34.5",
"@astrojs/check": "0.9.5",
"typescript": "5.9.3"
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

+6
View File
@@ -0,0 +1,6 @@
import { defineCollection } from 'astro:content';
import { docsSchema } from '@astrojs/starlight/schema';
export const collections = {
docs: defineCollection({ schema: docsSchema() }),
};
+7
View File
@@ -0,0 +1,7 @@
---
title: Showbridge
sidebar:
order: 1
---
Welcome to the showbridge docs, this is an every changing store of information related to showbridge. If you find something that doesn't make sense or needs more documentation/clarification please open an issue on [github](https://github.com/jwetzell/showbridge-go/issues).
+9
View File
@@ -0,0 +1,9 @@
---
title: Config
sidebar:
order: 2
---
The showbridge router's config is entirely controlled by a YAML/JSON config file. This file must be made by hand for now. I do provide some starter/example configs to look at to get a general idea of what one entails.
Resources
- good idea to start with [config.yaml](https://github.com/jwetzell/showbridge-go/blob/main/config.yaml)
+10
View File
@@ -0,0 +1,10 @@
---
title: Dictionary
sidebar:
order: 1
---
- **router**: throughout documentation I will use the term router to refer to configured/running instance of showbridge
- **modules**: modules are configured instances that can produce or consume message like a TCP server or a UDP client
- **routes**: routes take messages coming from a module (input), do some optional processing and send that message to a module (output)
- **processors**: processors process messages, the processors are localized to the route the processor is a part of. Examples of processors or turning bytes into an OSC message or parsing a string into an integer
+5
View File
@@ -0,0 +1,5 @@
---
title: Modules
sidebar:
order: 3
---
+5
View File
@@ -0,0 +1,5 @@
---
title: Processors
sidebar:
order: 5
---
+5
View File
@@ -0,0 +1,5 @@
---
title: Routes
sidebar:
order: 4
---
+41
View File
@@ -0,0 +1,41 @@
---
title: CLI
sidebar:
order: 1
---
import { Steps } from '@astrojs/starlight/components';
<Steps>
1. install
- via go: `go install github.com/jwetzell/showbridge-go/cmd/showbridge@latest`
- [binaries](https://github.com/jwetzell/showbridge-go/releases/latest)
2. create a config file (see [config](/reference/config/))
3. run
- `showbridge --config config.yaml`
- see below for all flags
- use the `-h` flag to see other available flags
</Steps>
```
NAME:
showbridge - Simple protocol router /s
USAGE:
showbridge [global options]
GLOBAL OPTIONS:
--config string (default: "./config.yaml")
--help, -h show help
```
+19
View File
@@ -0,0 +1,19 @@
---
title: Source
sidebar:
order: 2
---
import { Steps } from '@astrojs/starlight/components';
<Steps>
1. clone repo
2. install dependencies: `go mod tidy`
3. run cli:
- `go run ./cmd/showbridge --config config.yaml`
- see [CLI Usage](/guides/cli-usage) for more flags
</Steps>
+26
View File
@@ -0,0 +1,26 @@
---
title: Overview
sidebar:
order: 1
---
showbridge is a kind of re-imagining of [OSCulator](https://osculator.net/) taken way too far.
### Included Modules
- HTTP
- client
- server
- UDP
- client
- server
- TCP
- client
- server
- [MQTT](https://mqtt.org/)
- client
- [NATS](https://nats.io/)
- client
- [PosiStageNet](https://posistage.net/)
- client
- MIDI
- client (not included in pre-built binaries yet)
+2
View File
@@ -0,0 +1,2 @@
/// <reference path="../.astro/types.d.ts" />
/// <reference types="astro/client" />
+3
View File
@@ -0,0 +1,3 @@
{
"extends": "astro/tsconfigs/strict"
}