Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/johnhyde/astrolabe
An Address Space Explorer for Urbit
https://github.com/johnhyde/astrolabe
Last synced: about 1 month ago
JSON representation
An Address Space Explorer for Urbit
- Host: GitHub
- URL: https://github.com/johnhyde/astrolabe
- Owner: johnhyde
- Created: 2022-01-07T21:24:11.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-01-17T17:52:44.000Z (11 months ago)
- Last Synced: 2024-08-03T01:12:43.155Z (5 months ago)
- Language: hoon
- Size: 912 KB
- Stars: 8
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-urbit - Astrolabe
README
# Astrolabe
Astrolabe (%astrolabe) is a one-stop shop %docket app for exploring Urbit address space. Main features: ID Search, Sigil Search, Sky Chart, and Ship View (for viewing a given ship's details). Astrolabe integrates with %pals wherever possible, and contains documentation to explain the many quirks of Urbit address space to a new user.# Justification
There should be a place on Urbit to explore Urbit address space. It will help new Urbiters get their bearings, and be a useful tool for anyone who wants to explore. Having open-source tools for this in one place _on Urbit_ is important.
I like the name _Astrolabe_, because it's an old-timey guide to the heavenly bodies. _Planisphere_ could also be cool.# Proposal
You can read about the proposal [here](https://urbit.org/grants/astrolabe), and discuss in the dedicated group on Urbit: `~poster-hoster-midlev-mindyr/astrolabe`# The Code
## DeskThe desk currently has the minimum amount of files necessary to distribute an application and should be distributable immediately. Any further Hoon development should happen here.
## UI
Astrolabe is built primarily using [Svelte], [Typescript], and [Tailwind CSS]. [Vite] ensures that all code and assets are loaded appropriately, bundles the application for distribution and provides a functional dev environment.
### Getting Started
To get started using Astrolabe first you need to run `npm install` inside the `ui` directory.
To develop you'll need a running ship to point to. If it's running somewhere other than `http://localhost:8081`, make a copy of `.env` in the `ui` directory and name it `.env.local`. This file will not be committed. Change `VITE_SHIP_URL` to the URL of the ship you would like to point to.
Once your URL is correctly configured, you can run `npm run dev`. This will proxy all requests to the ship except for those powering the interface, allowing you to see live data.
Regardless of what you run to develop, Vite will hot-reload code changes as you work so you don't have to constantly refresh.
# Deploying
1. Spin up a comet or distribution ship.
2. Mount an `%astrolabe` desk. In Dojo:
1. `|merge %astrolabe our %base` to create a new desk.
2. `|mount %astrolabe` to mount it.
3. Set `ASTROLABE_DESK` in `.env.local` if the path to your desk is different.
3. Create and upload `glob-http`, if applicable (see below)
4. Bump the `version` in `desk.docket-0`.
3. Install the desk
1. From the `ui` folder: `npm run install:desk`
2. (first time only, on dev ship): `|install our %astrolabe`
2. From the distribution ship's dojo: `:treaty|unpublish %astrolabe`
2. From middleman or distribution ship's dojo: `|commit %astrolabe`
3. (if using a comet as a middleman) `|public %astrolabe`
4. (if using a comet as a middleman) from the actual distribution ship: `|install ~comet-name %astrolabe` or `|resume %astrolabe`
5. (if using a comet as a middleman) from the actual distribution ship: `|pause %astrolabe`
4. Build UI and upload `glob-ames`
5. Publish the desk from dojo: `:treaty|publish %astrolabe`## Deploying with `glob-ames` glob
Initial Setup:
1. Put the line `glob-ames+[~dister-midlev-mindyr 0v0]` in `desk.docket-0` if it's not there, where `~dister-midlevi-mindyr` is the `@p` of the distribution ship.Every Time:
4. Build the UI with `npm run build` in the `ui` directory which will bundle all the code and assets into the `dist/` folder.
5. Upload the `dist/` folder as a glob to your distribution ship. Example url: https://distribution.urbit-ship.com/docket/upload## Deploying with `glob-http` glob
Initial Setup:
1. Spin up a globber ship (comet or fakezod) (or just reuse your dev ship for this).
2. Mount an `%globber` desk. In Dojo:
1. `|merge %globber our %base` to create a new desk.
2. `|mount %globber` to mount it.
3. Set `GLOBBER_DESK` in `.env.local` if the path to your globber desk is different.Every Time:
3. From the `ui` directory, run `npm run release` to build the ui, make the glob, and copy it to the `globs` folder. The command will also print out the glob hash/id.
4. Copy the string printed by the last step, and paste it into `desk.docket-0`.
5. Upload the glob in `/globs/` to any publicly available HTTP endpoint that can serve files. This allows the glob to be distributed over HTTP.
6. Once you've uploaded the glob, paste the url into `desk/desk.docket-0`. Both the full URL and the hash should be updated to match the glob we just created, on the line that looks like this:
```hoon
glob-http+['https://bootstrap.urbit.org/glob-0v5.fdf99.nph65.qecq3.ncpjn.q13mb.glob' 0v5.fdf99.nph65.qecq3.ncpjn.q13mb]
```[svelte]: https://svelte.dev/
[typescript]: https://www.typescriptlang.org/
[tailwind css]: https://tailwindcss.com/
[vite]: https://vitejs.dev/