This commit is contained in:
Chris Wanstrath 2025-10-01 12:25:59 -07:00
parent 8706c55585
commit f49dad32b0
3 changed files with 29 additions and 2 deletions

View File

@ -26,16 +26,40 @@ And to make sure DNS is working:
bun dev bun dev
open localhost:3000 open localhost:3000
## Production Dev
Make sure you bundle the JS:
bun run bundle
If you want to test (or run) production with DNS features, use `NO_DNS`:
env NO_DNS=1 NODE_ENV=production bun start
You can also use the package commands:
# run without DNS
bun prod-nodns
# run normally
bun prod
## Commands ## Commands
Commands can return one of three types: Commands can return one of these types:
- `string` - `string`
- `{ error: string }` - `{ error: string }`
- `{ html: string }` - `{ html: string }`
- `{ text: string }`
They can also `throw` to display an error. They can also `throw` to display an error.
Additionally, you can return JS that gets immediately run in the browser using `script:`:
- `{ html: string, script: string }`
- `{ text: string, script: string }`
- `{ script: string }`
## Fonts ## Fonts
Use this to examine what's inside the C64 .woff2 font file in public/vendor: Use this to examine what's inside the C64 .woff2 font file in public/vendor:

View File

@ -7,6 +7,7 @@
"dev": "env BUN_HOT=1 bun --hot src/server.tsx", "dev": "env BUN_HOT=1 bun --hot src/server.tsx",
"start": "bun src/server.tsx", "start": "bun src/server.tsx",
"prod": "env NODE_ENV=production bun src/server.tsx", "prod": "env NODE_ENV=production bun src/server.tsx",
"prod-nodns": "env NO_DNS=1 NODE_ENV=production bun src/server.tsx",
"build": "./scripts/build.sh", "build": "./scripts/build.sh",
"runner": "env NODE_ENV=production bun run src/runner.ts", "runner": "env NODE_ENV=production bun run src/runner.ts",

View File

@ -17,6 +17,7 @@ const host = hostRaw.toString().trim()
let dnsInit = false let dnsInit = false
export async function initDNS() { export async function initDNS() {
if (process.env.NO_DNS) return
if (process.env.NODE_ENV !== "production") return if (process.env.NODE_ENV !== "production") return
if (!await expectShellCmd("avahi-publish")) return if (!await expectShellCmd("avahi-publish")) return
@ -36,6 +37,7 @@ export async function initDNS() {
} }
export function publishAppDNS(app: string) { export function publishAppDNS(app: string) {
if (process.env.NO_DNS) return
if (process.env.NODE_ENV !== "production") return if (process.env.NODE_ENV !== "production") return
if (!dnsInit) throw "publishAppDNS() must be called after initDNS()" if (!dnsInit) throw "publishAppDNS() must be called after initDNS()"