93 lines
1.9 KiB
Markdown
93 lines
1.9 KiB
Markdown
# NOSE:pluto
|
|
|
|
## Installation
|
|
|
|
1. Make a fresh RPi image with a "nose" user.
|
|
|
|
2. Clone this repo
|
|
|
|
3. From the root of this repo, run:
|
|
|
|
bun remote:install`
|
|
|
|
4. When it's done (it'll reboot) visit:
|
|
|
|
http://nose-pluto.local
|
|
|
|
And to make sure DNS is working:
|
|
|
|
http://ping.nose-pluto.local/
|
|
|
|
5. Have fun!
|
|
|
|
## Local Dev
|
|
|
|
bun install
|
|
bun dev
|
|
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 can return one of these types:
|
|
|
|
- `string`
|
|
- `{ error: string }`
|
|
- `{ html: string }`
|
|
- `{ text: string }`
|
|
|
|
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
|
|
|
|
Use this to examine what's inside the C64 .woff2 font file in public/vendor:
|
|
|
|
https://wakamaifondue.com/
|
|
|
|
## Pluto Goals: Phase 1
|
|
|
|
- [x] Hosts valtown-style Bun apps (for your home network)
|
|
- [x] Provides a NOSE terminal/shell GUI
|
|
- [x] Runs one-shot TypeScript commands (via NOSE terminal)
|
|
- [x] Has a 960x540 (16:9) virtual screen size that scales to the actual size of the display
|
|
- [x] Runs on a Raspberry Pi 5
|
|
|
|
## Pluto Goals: Phase 2
|
|
|
|
- [x] public tunnel for your NOSE webapps
|
|
- [x] public tunnel lives through reboots
|
|
- [x] self updating NOSE server
|
|
- [x] `pub/` static hosting in webapps
|
|
- [x] upload files to projects
|
|
- [ ] "project"-based rehaul
|
|
- [ ] game/bin/www cartridges
|
|
- [-] pico8-style games
|
|
- [x] init/update/draw
|
|
- [x] simple drawing api
|
|
- [x] gamepad support
|
|
- [ ] sounds
|
|
- [ ] maps
|
|
- [ ] etc
|