{"id":13638474,"url":"https://github.com/assemblycapital/houston","last_synced_at":"2025-04-19T18:30:35.247Z","repository":{"id":46823728,"uuid":"515243260","full_name":"assemblycapital/houston","owner":"assemblycapital","description":"urbit moon manager","archived":false,"fork":false,"pushed_at":"2024-03-11T18:32:19.000Z","size":973,"stargazers_count":16,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-11-09T08:39:44.353Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/assemblycapital.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-07-18T15:36:54.000Z","updated_at":"2024-03-30T17:44:56.000Z","dependencies_parsed_at":"2023-02-16T09:16:11.647Z","dependency_job_id":"50bf3664-4295-4212-ae29-9fce9068dff0","html_url":"https://github.com/assemblycapital/houston","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/assemblycapital%2Fhouston","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/assemblycapital%2Fhouston/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/assemblycapital%2Fhouston/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/assemblycapital%2Fhouston/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/assemblycapital","download_url":"https://codeload.github.com/assemblycapital/houston/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249764699,"owners_count":21322286,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-02T01:00:46.473Z","updated_at":"2025-04-19T18:30:34.852Z","avatar_url":"https://github.com/assemblycapital.png","language":"TypeScript","funding_links":[],"categories":["Applications"],"sub_categories":[],"readme":"# houston\n\nurbit moon dashboard\n\nhouston exposes a poke api for your moon utilities:\n\n- |moon\n- |moon-breach\n- |moon-cycle-keys\n\nhouston only accepts pokes from our.bowl\n\njael is still the source of truth for each moons pubkey, life, and rift.\nwhen a moon is created or rekeyed through houston, houston keeps a copy of the private key.\nthe private key / seed is needed when launching the moon for the first time or after a breach.\n\nmoons can be initially booted using the following command:\n\n`./urbit -w \u003cmoon-name\u003e -G \u003cseed\u003e`\nor\n`/urbit -w sampel-sampel-palnet -G 0wm4W1E.ees11.MtSXj.-51oT.NN-7E.O1uch.2eM0g.2QhRf.KyiER.ke7cN.qynND.qAkrn.sJUOr.CkbEC.JRtiD.gqwz7.DDDYf.Q82M0.ecoac.ag000.1rwg1`\nor\n`./urbit -w sampel-sampel-palnet -k ./sampel-sampel-palnet.key`\n\nthe next time you boot, just run:\n\n`./urbit \u003cmoon-name\u003e`\nor\n`./urbit sampel-sampel-palnet`\n\n## Using The Frontend\n\nthe `create` button spawns a new moon. this maps to |moon.\nit can optionally be given a @p. if not, it will create a random moon.\n\neach moon has a `breach` button and a `cycle keys` button. these correspond with |moon-breach and |moon-cycle-keys respectively.\nmoons also have a `forget` button. this simply removes the moon from houstons agent state. it doesnt affect the actual moon.\n\nusers can `import` a moon, which just adds the moon @p into houston without any metadata.\nthis allows existing moons to be tracked and tagged as part of the same database.\nimported moons can still be breached and can still have their keys reset from the houston UI.\nwhen an imported moon has its keys reset, the new data will be stored in houston.\n\nmoons can be given `tags` which are just arbitrary text. this should be useful to track:\n\n- what services the moon is responsible for\n- what machine the moon is running on\n- who operates the moon\n\n## Using The API\n\nhouston can be poked by other apps to create / breach / rekey moons. previously, this was only possible through dojo.\nfor a spec of the poke API, refer to the source code.\n\nto get a moons data from houston:\n\n```hoon\n+houston!get ~sampel-sampel-palnet\n```\n\nthis is a generator that wraps a scry endpoint.\n\nmore cli tools for houston\n\n```hoon\n:houston|create\n:houston|create ~sampel-sampel-palnet\n:houston|tag ~sampel-sampel-palnet 'best moon ever'\n:houston|rekey ~sampel-sampel-palnet\n:houston|breach ~sampel-sampel-palnet\n```\n\n## Installing the Desk From Source\n\nin dojo:\n\n```\n|merge %houston our %base\n|mount %houston\n```\n\nin unix:\n\n```\ncd \u003cmounted_houston_desk\u003e\nrm -r ./*\ncp -rL \u003c(urbit)/pkg/base-dev\u003e/* .\ncp -rL \u003c(urbit)/pkg/garden-dev\u003e/* .\ncd \u003cthis_repo\u003e/desk/\n./install.sh -w \u003cmounted_houston_desk\u003e\n```\n\nin dojo:\n\n```\n|commit %houston\n|install our %houston\n```\n\n## UI\n\nhouston is built primarily using [React], [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.\n\n### Getting Started\n\nTo get started using houston first you need to run `npm install` inside the `ui` directory.\n\nTo develop you'll need a running ship to point to. To do so you first need to add a `.env.local` file to the `ui` directory. This file will not be committed. Adding `VITE_SHIP_URL={URL}` where **{URL}** is the URL of the ship you would like to point to, will allow you to run `npm run dev`. This will proxy all requests to the ship except for those powering the interface, allowing you to see live data.\n\nRegardless of what you run to develop, Vite will hot-reload code changes as you work so you don't have to constantly refresh.\n\n### Deploying\n\nTo deploy, run `npm run build` in the `ui` directory which will bundle all the code and assets into the `dist/` folder. This can then be made into a glob, and linked to from the desk.docket-0 file\n\n[urbit.org glob docs](https://developers.urbit.org/reference/additional/dist/glob)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fassemblycapital%2Fhouston","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fassemblycapital%2Fhouston","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fassemblycapital%2Fhouston/lists"}