3.0 KiB
3.0 KiB
NOSE:pluto
Installation
-
Make a fresh RPi image with a "nose" user.
-
Clone this repo
-
From the root of this repo, run:
bun remote:install
-
When it's done (it'll reboot) visit:
And to make sure DNS is working:
http://ping.nose-pluto.local/
- Have fun!
Local Dev
Running the server will create ~/nose for you to play with.
# setup git w/ two `origin` remotes + pre-commit hook
git config --unset-all remote.origin.pushurl
git remote set-url --push origin https://github.com/defunkt/nose-pluto
git remote set-url --add --push origin https://git.nose.space/defunkt/nose-pluto
git config core.hooksPath .githooks
# go about your business
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:
Pluto Goals: Phase 1
- Hosts valtown-style Bun apps (for your home network)
- Provides a NOSE terminal/shell GUI
- Runs one-shot TypeScript commands (via NOSE terminal)
- Has a 960x540 (16:9) virtual screen size that scales to the actual size of the display
- Runs on a Raspberry Pi 5
Pluto Goals: Phase 2
noseCLI- game/bin/www cartridges
- public tunnel for your NOSE webapps
- public tunnel lives through reboots
- [o] tunnel to the terminal -- Not doing this for now!
- web browser
- browser commands
- remember your "mode"
- status bar on terminal UX
- quickly open the current webapp
- "project"-based rehaul
- self updating NOSE server
pub/static hosting in webapps- upload files to projects
- [-] pico8-style games
- init/update/draw
- simple drawing api
- gamepad support
- sounds
- maps
- etc...?
Future Goals (need to be split into Phases)
nosecan find your NOSEputer via mDNS/Bonjour- Shrimp!
- CodeMirror Editor
- cron tasks
- prompt()
- confirm()
- faster boot (turn off stuff like CUPS)
- SSD
- NOSE App Store -- "There's an app for that" (browse + install carts)
- System dashboard (CPU, memory)
- Write Your Own Daemons (MUD? FTPd?)
- Daemon Dashboard
- cloud backup for projects
- "sleep" / "wake" (disable monitor)
- themes
- pixel art boot animation