on master help sign in
rework install guide location, footer links, etc.
f90f604Josh Lehman
content/blog/events-series.md+1−1
@@ -25,7 +25,7 @@ Something we tend to talk less about is the fact that Urbit itself is also a com
25
25
26One of the reasons you don’t hear about the Urbit community as much is that community is difficult to pin down: you'd be hard-pressed to put "the community" into a room together. It's a weird, fuzzy notion and doesn't have clear boundaries.
26One of the reasons you don’t hear about the Urbit community as much is that community is difficult to pin down: you'd be hard-pressed to put "the community" into a room together. It's a weird, fuzzy notion and doesn't have clear boundaries.
27
27
28−Other parts of Urbit do have clear boundaries. If you decided to learn more about Urbit, chances are you started by reading the docs. You might learn about [Nock](https://urbit.org/docs/tutorials/nock/), [Hoon](https://urbit.org/docs/glossary/hoon/), and [Arvo](https://urbit.org/docs/glossary/arvo/). You might get an [Urbit ID](https://urbit.org/understanding-urbit/urbit-id/) and [launch your own ship](https://urbit.org/using/install/). These things are all pretty well documented and, while not necessarily easy, their respective processes are relatively straightforward and [getting easier](https://urbit.org/blog/hosting-the-future/) every day. Community is less well documented. It’s more difficult to document—it’s something you just have to experience.
28+Other parts of Urbit do have clear boundaries. If you decided to learn more about Urbit, chances are you started by reading the docs. You might learn about [Nock](https://urbit.org/docs/tutorials/nock/), [Hoon](https://urbit.org/docs/glossary/hoon/), and [Arvo](https://urbit.org/docs/glossary/arvo/). You might get an [Urbit ID](https://urbit.org/understanding-urbit/urbit-id/) and [launch your own ship](https://urbit.org/getting-started/). These things are all pretty well documented and, while not necessarily easy, their respective processes are relatively straightforward and [getting easier](https://urbit.org/blog/hosting-the-future/) every day. Community is less well documented. It’s more difficult to document—it’s something you just have to experience.
29
29
30We lead with technology because it’s what we’re good at and because it’s easier to write about. But the social side of Urbit is no less important. Since so many of us are working on and contributing to Urbit in order to solve our own problems, and since we’re dogfooding as we go, you could define Urbit as the minimal technological infrastructure needed to sustain the Urbit community. It’s circular, but it’s as good a definition of Urbit as you’re likely to find. For this reason, you can’t really understand Urbit without some degree of exposure to the cultural knowledge of its community. When the Urbit community did fit in a single room together, transmitting cultural knowledge was easy and happened over pizza and beer. As the number and diversity of Urbit stakeholders continue to grow, we need to find ways to scale the transmission of this cultural knowledge.
30We lead with technology because it’s what we’re good at and because it’s easier to write about. But the social side of Urbit is no less important. Since so many of us are working on and contributing to Urbit in order to solve our own problems, and since we’re dogfooding as we go, you could define Urbit as the minimal technological infrastructure needed to sustain the Urbit community. It’s circular, but it’s as good a definition of Urbit as you’re likely to find. For this reason, you can’t really understand Urbit without some degree of exposure to the cultural knowledge of its community. When the Urbit community did fit in a single room together, transmitting cultural knowledge was easy and happened over pizza and beer. As the number and diversity of Urbit stakeholders continue to grow, we need to find ways to scale the transmission of this cultural knowledge.
31
31
content/blog/urbit-for-normies.md+1−1
@@ -160,7 +160,7 @@ Imagine, as is already becoming the case, that it becomes highly valuable to hav
160
160
161Some of these cases are, admittedly, a bit speculative since we haven’t built all the functionality yet. But it’s coming, and quite soon.
161Some of these cases are, admittedly, a bit speculative since we haven’t built all the functionality yet. But it’s coming, and quite soon.
162
162
163−For now, if you like the way this sounds you can [get yourself an Urbit ID](https://urbit.org/using/install/#id) and start learning about how to safely store cryptographic keys (it’s really not that hard, and we give you suggestions). If you’re feeling technical or adventurous, you can try booting our beta OS interface to see what it looks like. It’s fussy, but it exists. Soon it will be less fussy. You can check out our [roadmap](https://urbit.org/understanding-urbit/roadmap/) if you’d like to know when.
163+For now, if you like the way this sounds you can [get yourself an Urbit ID](https://urbit.org/getting-started/#id) and start learning about how to safely store cryptographic keys (it’s really not that hard, and we give you suggestions). If you’re feeling technical or adventurous, you can try booting our beta OS interface to see what it looks like. It’s fussy, but it exists. Soon it will be less fussy. You can check out our [roadmap](https://urbit.org/understanding-urbit/roadmap/) if you’d like to know when.
164
164
165## Why we need Urbit
165## Why we need Urbit
166
166
content/community/governance.md+1−1
@@ -20,6 +20,6 @@ For off-chain process around proposals, as suggested by core developers, please
20
20
21The group of core developers manages Urbit’s [GitHub repository](https://github.com/urbit/), which controls Arvo, Urbit’s operating system. Changes and upgrades are decided upon by consensus.
21The group of core developers manages Urbit’s [GitHub repository](https://github.com/urbit/), which controls Arvo, Urbit’s operating system. Changes and upgrades are decided upon by consensus.
22
22
23−You can participate in the governance of the senate by acquiring a galaxy. If you would like to be involved with the governance of Arvo, check out our [developer guide](@/using/develop.md) to learn how you can contribute to core development.
23+You can participate in the governance of the senate by acquiring a galaxy. If you would like to be involved with the governance of Arvo, check out our [developer guide](@/docs/development/develop.md) to learn how you can contribute to core development.
24
24
25
25
content/faq.md+5−5
@@ -237,7 +237,7 @@ All events are logged to disk, so you can always restore the system to a previou
237
237
238When an [Arvo](@/docs/glossary/arvo.md) ship (instance) is started for the first time you must use a "[keyfile](@/docs/glossary/keyfile.md)" containing the private keys for your identity's networking keys. Urbit ID uses the Ethereum blockchain as its decentralized ledger.
238When an [Arvo](@/docs/glossary/arvo.md) ship (instance) is started for the first time you must use a "[keyfile](@/docs/glossary/keyfile.md)" containing the private keys for your identity's networking keys. Urbit ID uses the Ethereum blockchain as its decentralized ledger.
239
239
240−See our [Getting Started](@/using/planet.md) guide to learn how to get your ship onto the Urbit OS / [Ames](@/docs/glossary/ames.md) network.
240+See our [Getting Started](@@/getting-started/planet.md.md) guide to learn how to get your ship onto the Urbit OS / [Ames](@/docs/glossary/ames.md) network.
241
241
242### Will the Urbit OS network survive if Ethereum dies? {#if-ethereum-dies}
242### Will the Urbit OS network survive if Ethereum dies? {#if-ethereum-dies}
243
243
@@ -245,7 +245,7 @@ Yes. It would be annoying, but Urbit ID / [Azimuth](@/docs/glossary/azimuth.md)
245
245
246### How do I install Urbit OS? {#install-urbit-os}
246### How do I install Urbit OS? {#install-urbit-os}
247
247
248−Check out our guides [here](@/using/planet.md).
248+Check out our guides [here](@@/getting-started/planet.md.md).
249
249
250### How do I use Urbit OS? {#use-urbit-os}
250### How do I use Urbit OS? {#use-urbit-os}
251
251
@@ -261,7 +261,7 @@ Your sponsor, a star or galaxy that your ship is connected to, may send you new
261
261
262### I have an Urbit ID, now what? {#now-what}
262### I have an Urbit ID, now what? {#now-what}
263
263
264−Follow our guide on how to boot a ship [here](@/using/planet.md).
264+Follow our guide on how to boot a ship [here](@@/getting-started/planet.md.md).
265
265
266Get on the [mailing list](https://urbit.us11.list-manage.com/subscribe/post?u=972a03db9e0c6c25bb58de8c8&id=be143888d2). Learn [Hoon](@/docs/hoon/hoon-school/_index.md). Sign up for [Hooniversity](https://hooniversity.org/). [Make stuff](https://grants.urbit.org).
266Get on the [mailing list](https://urbit.us11.list-manage.com/subscribe/post?u=972a03db9e0c6c25bb58de8c8&id=be143888d2). Learn [Hoon](@/docs/hoon/hoon-school/_index.md). Sign up for [Hooniversity](https://hooniversity.org/). [Make stuff](https://grants.urbit.org).
267
267
@@ -375,7 +375,7 @@ One day we’d really like the Urbit ID registry to be hosted on [Urbit OS](#wha
375
375
376### Why is Hoon so weird? {#why-hoon}
376### Why is Hoon so weird? {#why-hoon}
377
377
378−There are things about Urbit that are weird by design, and some that are weird because we haven’t gotten around to cleaning them up. [Hoon](@/docs/glossary/hoon.md), for the most part, is weird by design, but there are a few things about it we’d like to clean up.
378+There are things about Urbit that are weird by design, and some that are weird because we haven’t gotten around to cleaning them up. [Hoon](@/docs/glossary/hoon.md), for the most part, is weird by design, but there are a few things about it we’d like to clean up. For a complete description of why we created Hoon, see the [Hoon overview](@/docs/hoon/overview.md).
379
379
380The runes are, once you get the hang of them, pretty nice. Your mileage may vary, of course, but many talented engineers have spent many, many hours writing Hoon. It’s a simple, practical language. But the learning curve can be a bit high.
380The runes are, once you get the hang of them, pretty nice. Your mileage may vary, of course, but many talented engineers have spent many, many hours writing Hoon. It’s a simple, practical language. But the learning curve can be a bit high.
381
381
@@ -383,7 +383,7 @@ The standard library and naming is something we’ve discussed changing, and it
383
383
384The right way to think about Hoon is as the ‘C of Urbit’. It’s a bare bones language that gets you pretty close to Nock. Eventually, we’ll probably implement more expressive languages that compile to Urbit. But for now, satisfy your curiosity and [sign up for Hooniversity](https://hooniversity.org/), a community led Hoon educational organization.
384The right way to think about Hoon is as the ‘C of Urbit’. It’s a bare bones language that gets you pretty close to Nock. Eventually, we’ll probably implement more expressive languages that compile to Urbit. But for now, satisfy your curiosity and [sign up for Hooniversity](https://hooniversity.org/), a community led Hoon educational organization.
385
385
386−Another option is to treat [Urbit as an API](@/using/integrating-api.md), which allows one to use common languages such as Python and Javascript to build userspace programs. For now this option is not as powerful as Hoon, but there is still a lot that a developer without the time or inclination to learn Hoon can do.
386+Another option is to treat [Urbit as an API](@/docs/arvo/eyre/using-eyre.md), which allows one to use common languages such as Python and Javascript to build userspace programs. For now this option is not as powerful as Hoon, but there is still a lot that a developer without the time or inclination to learn Hoon can do.
387
387
388### What is the point of Nock? {#why-nock}
388### What is the point of Nock? {#why-nock}
389
389
content/using/install.md → content/getting-started.mdrenamed+5−5
@@ -2,7 +2,7 @@
2title = "Getting Started"
2title = "Getting Started"
3weight = 1
3weight = 1
4description = "How to install Urbit."
4description = "How to install Urbit."
5−template = "doc.html"
5+template = "page_indiced.html"
6aliases = ["/docs/getting-started/"]
6aliases = ["/docs/getting-started/"]
7+++
7+++
8
8
@@ -16,7 +16,7 @@ There are currently two ways to run Urbit:
16
16
17If you use Mac or Linux and are not afraid of a few terminal commands, we recommend you run it yourself. That is the aim of this guide.
17If you use Mac or Linux and are not afraid of a few terminal commands, we recommend you run it yourself. That is the aim of this guide.
18
18
19−If you run Windows or just want to give it a shot without worrying about the gritty bits, you may want to consider a [hosting provider](/using/planet#hosting-providers).
19+If you run Windows or just want to give it a shot without worrying about the gritty bits, you may want to consider a [hosting provider](@/getting-started/planet.md#hosting-providers).
20
20
21## Installing Urbit {#macos-and-linux}
21## Installing Urbit {#macos-and-linux}
22
22
@@ -122,9 +122,9 @@ There are five kinds of Urbit IDs but to get started you only need to know about
122
122
123A planet name looks like `~sampel-palnet`.
123A planet name looks like `~sampel-palnet`.
124
124
125−[Follow this guide](/using/planet) if you have already acquired a planet.
125+[Follow this guide](@/getting-started/planet.md) if you have already acquired a planet.
126
126
127−[Find a planet to purchase](/using/planet#purchase)
127+[Find a planet to purchase](@/getting-started/planet.md#purchase)
128
128
129***
129***
130
130
@@ -211,4 +211,4 @@ You can continue using this comet indefinitely. There are currently few differen
211
211
212A comet also comes with a long and fairly unmemorable name whereas a planet has a short name and a "sigil" (avatar) associated with it that makes it more identifiable on the network. You may notice all this within the first few minutes of using Urbit.
212A comet also comes with a long and fairly unmemorable name whereas a planet has a short name and a "sigil" (avatar) associated with it that makes it more identifiable on the network. You may notice all this within the first few minutes of using Urbit.
213
213
214−[To read instructions on how to purchase and use a planet, visit this page](/using/planet).
214+[To read instructions on how to purchase and use a planet, visit this page](@/getting-started/planet.md).
content/getting-started/_index.mdnew file+4
@@ -0,0 +1,4 @@
1++++
2+title = "Getting Started"
3+render = false
4++++
content/using/planet.md → content/getting-started/planet.mdrenamed+3−3
@@ -2,10 +2,10 @@
2title = "Setting up Your Planet"
2title = "Setting up Your Planet"
3weight = 1
3weight = 1
4description = "Getting started with a permanent Urbit identity."
4description = "Getting started with a permanent Urbit identity."
5−template = "doc.html"
5+template = "page/getting_started.html"
6+++
6+++
7
7
8−A planet is a permanent Urbit identity. Like all Urbit identities, they can never be taken away from you. Unlike comets which are free, planets are designed for use well into the future. If you're not yet familiar with the Urbit network, please follow the [Getting Started guide](@/using/install.md), which will explain the basics and walk you through using a free identity. This guide explains the next steps.
8+A planet is a permanent Urbit identity. Like all Urbit identities, they can never be taken away from you. Unlike comets which are free, planets are designed for use well into the future. If you're not yet familiar with the Urbit network, please follow the [Getting Started guide](@/getting-started.md), which will explain the basics and walk you through using a free identity. This guide explains the next steps.
9
9
10### Purchase a planet {#purchase}
10### Purchase a planet {#purchase}
11
11
@@ -126,4 +126,4 @@ Now that you’re up and running, take some time to deepen your understanding by
126
126
127- [Host your Ship in the Cloud](@/using/os/hosting.md): Follow this guide to set your ship up to run as a cloud server, accessible from anywhere.
127- [Host your Ship in the Cloud](@/using/os/hosting.md): Follow this guide to set your ship up to run as a cloud server, accessible from anywhere.
128- [Read the Operations Manual](@/using/os/getting-started.md): Become an expert pilot by learning to use your ship.
128- [Read the Operations Manual](@/using/os/getting-started.md): Become an expert pilot by learning to use your ship.
129−- [Learn to Develop on Urbit](@/using/develop.md): Learn how to contribute to or develop on Urbit.
129+- [Learn to Develop on Urbit](@/docs/development/develop.md): Learn how to contribute to or develop on Urbit.
content/media.mdnew file+4
@@ -0,0 +1,4 @@
1++++
2+title = "Media"
3+template = "media/list.html"
4++++
content/reset.md+3−3
@@ -74,11 +74,11 @@ Alternatively, you can perform the migration manually (see below).
74
74
75Yes, by following these steps (note that these steps **will not** back up your data as is the case with `flagday`):
75Yes, by following these steps (note that these steps **will not** back up your data as is the case with `flagday`):
76
76
77−1. Download your [keyfile from Bridge](https://urbit.org/using/install/#keyfile).
77+1. Download your [keyfile from Bridge](https://urbit.org/getting-started/#keyfile).
782. Shut down your ship.
782. Shut down your ship.
793. [Archive and move your old pier](https://urbit.org/using/operations/using-your-ship/#moving-your-pier) (this is the directory that contains your urbit event log).
793. [Archive and move your old pier](https://urbit.org/using/operations/using-your-ship/#moving-your-pier) (this is the directory that contains your urbit event log).
80−4. [Download the latest version](@/using/install.md#macos-and-linux) of the urbit binary.
80+4. [Download the latest version](@/getting-started.md#macos-and-linux) of the urbit binary.
81−5. [Boot your ship with the new keyfile](@/using/install.md#boot-your-planet).
81+5. [Boot your ship with the new keyfile](@/getting-started.md#boot-your-planet).
82
82
83## I’m hosted by Tlon, or someone else—what do I need to do?
83## I’m hosted by Tlon, or someone else—what do I need to do?
84
84
content/understanding-urbit/interface.md+1−1
@@ -43,7 +43,7 @@ OS 1 is a minimal, multipurpose interface for bringing a group together to chat,
43
43
44We built OS 1 for ourselves. We were sick of using centralized, mainstream software. We didn’t want to be stuck switching between bloated, monolithic services in order to keep in touch and move our work forward. We were done relying on some third party to take care of our community—so we exited to Urbit, and it feels good.
44We built OS 1 for ourselves. We were sick of using centralized, mainstream software. We didn’t want to be stuck switching between bloated, monolithic services in order to keep in touch and move our work forward. We were done relying on some third party to take care of our community—so we exited to Urbit, and it feels good.
45
45
46−If you’re curious to get a complete overview of OS 1, check out [this post](https://urbit.org/blog/introducing-os1/), watch the [release event](https://www.youtube.com/watch?v=71ViyftPkGk&feature=youtu.be&t=3963) or feel free to [boot a node](@/using/install.md#comet) to come talk to us.
46+If you’re curious to get a complete overview of OS 1, check out [this post](https://urbit.org/blog/introducing-os1/), watch the [release event](https://www.youtube.com/watch?v=71ViyftPkGk&feature=youtu.be&t=3963) or feel free to [boot a node](@/getting-started.md#comet) to come talk to us.
47
47
48(Running Urbit still requires a little fiddling around in the command-line, so it’s not for everyone—but we do have [plans for that to improve](https://urbit.org/blog/providers/).)
48(Running Urbit still requires a little fiddling around in the command-line, so it’s not for everyone—but we do have [plans for that to improve](https://urbit.org/blog/providers/).)
49
49
content/understanding-urbit/people-history.md+1−1
@@ -97,7 +97,7 @@ Building Urbit is about building a future where technology doesn’t control us.
97
97
98Keep in touch while we make build this vision into reality by [joining our mailing list](https://urbit.us11.list-manage.com/subscribe/post?u=972a03db9e0c6c25bb58de8c8&id=be143888d2) or following us on [Twitter](https://twitter.com/urbit) or [GitHub](https://github.com/urbit).
98Keep in touch while we make build this vision into reality by [joining our mailing list](https://urbit.us11.list-manage.com/subscribe/post?u=972a03db9e0c6c25bb58de8c8&id=be143888d2) or following us on [Twitter](https://twitter.com/urbit) or [GitHub](https://github.com/urbit).
99
99
100−If you’re somewhat technical and you’d like to help and contribute, [install Urbit](/using/install) and consider [applying for a grant](https://grants.urbit.org/s).
100+If you’re somewhat technical and you’d like to help and contribute, [install Urbit](/getting-started) and consider [applying for a grant](https://grants.urbit.org/s).
101
101
102If you’re interested in homesteading a community when OS 1 comes out, [apply here](/community/community-grants).
102If you’re interested in homesteading a community when OS 1 comes out, [apply here](/community/community-grants).
103
103
content/understanding-urbit/roadmap.md+2−2
@@ -40,7 +40,7 @@ Let’s walk through the next few phases of Landscape to get a sense of where we
40
40
41We built OS 1 for ourselves, because we wanted to use a communication tool that we can trust and put our system to work for real.
41We built OS 1 for ourselves, because we wanted to use a communication tool that we can trust and put our system to work for real.
42
42
43−Today we use OS 1 every day to chat, write, and share links. It’s a calm, minimalist tool that gets us one step away from the ads, tracking, distraction and disruption of mainstream software. (We won’t get into the details of OS 1 here, but you can check out [this post](https://urbit.org/blog/introducing-os1/) for a walkthrough. You’re also welcome to try [booting a node yourself](https://urbit.org/using/install/).)
43+Today we use OS 1 every day to chat, write, and share links. It’s a calm, minimalist tool that gets us one step away from the ads, tracking, distraction and disruption of mainstream software. (We won’t get into the details of OS 1 here, but you can check out [this post](https://urbit.org/blog/introducing-os1/) for a walkthrough. You’re also welcome to try [booting a node yourself](https://urbit.org/getting-started/).)
44
44
45The first version of OS 1 shipped in March and we’ve been improving it continuously ever since. OS 1 now runs on a much faster, more reliable Urbit OS kernel and network. The interface itself has been cleaned up and made vastly more efficient. If we weren’t so busy, we would have called it OS 1.12 by now.
45The first version of OS 1 shipped in March and we’ve been improving it continuously ever since. OS 1 now runs on a much faster, more reliable Urbit OS kernel and network. The interface itself has been cleaned up and made vastly more efficient. If we weren’t so busy, we would have called it OS 1.12 by now.
46
46
@@ -93,6 +93,6 @@ Our goal with Landscape is to give communities the tools they deserve to customi
93But Landscape in early 2021 will likely still only come with a few modules out of the box. Our major next step during 2021 is to make it easy for anyone to add their own modules and for developers to build and publish their own. Enabling third-party development will really enable Urbit-centric communities to tailor their own software.
93But Landscape in early 2021 will likely still only come with a few modules out of the box. Our major next step during 2021 is to make it easy for anyone to add their own modules and for developers to build and publish their own. Enabling third-party development will really enable Urbit-centric communities to tailor their own software.
94
94
95
95
96−We can’t cover everything about Landscape in a short post, nor about how the community works or evolves what we do. If you’re curious to learn more, try [booting a node](https://urbit.org/using/install/) and joining the Urbit Community group where most of us hang out. That’s where we hang out most of the time, but you can also find us working in public on [GitHub](https://github.com/urbit) and on the [urbit-dev](https://groups.google.com/a/urbit.org/g/dev) mailing list.
96+We can’t cover everything about Landscape in a short post, nor about how the community works or evolves what we do. If you’re curious to learn more, try [booting a node](https://urbit.org/getting-started/) and joining the Urbit Community group where most of us hang out. That’s where we hang out most of the time, but you can also find us working in public on [GitHub](https://github.com/urbit) and on the [urbit-dev](https://groups.google.com/a/urbit.org/g/dev) mailing list.
97
97
98For now, let’s move on to who builds this thing and where it came from.
98For now, let’s move on to who builds this thing and where it came from.
content/updates/2020-04-04-update.md+1−1
@@ -19,7 +19,7 @@ If you’re a Hoon School graduate, we’ve got a big announcement: The inaugura
19
19
20Haven’t done Hoon School? Don’t worry! We will be running more hackathons in the future, at least two a year. The next Hoon School session begins on Monday the 6th, so there’s still time to sign up. Go to [urbit.org/community/hoonschool/](https://urbit.org/community/hoonschool/) to enroll.
20Haven’t done Hoon School? Don’t worry! We will be running more hackathons in the future, at least two a year. The next Hoon School session begins on Monday the 6th, so there’s still time to sign up. Go to [urbit.org/community/hoonschool/](https://urbit.org/community/hoonschool/) to enroll.
21
21
22−OS1 is for [homesteaders and tinkerers](https://urbit.org/understanding-urbit/roadmap/). It’s profoundly new. It’s not our final destination, but it’s an important and foundational tool for getting there. And it’s a big leap towards allowing individuals and communities to use it for their needs. There’s already a growing constellation of public communities on Urbit. When you’re ready to launch OS1, check out our [install guide](https://urbit.org/using/install/).
22+OS1 is for [homesteaders and tinkerers](https://urbit.org/understanding-urbit/roadmap/). It’s profoundly new. It’s not our final destination, but it’s an important and foundational tool for getting there. And it’s a big leap towards allowing individuals and communities to use it for their needs. There’s already a growing constellation of public communities on Urbit. When you’re ready to launch OS1, check out our [install guide](https://urbit.org/getting-started/).
23
23
24If you need a planet, you can buy one from [Urbit Live](https://urbit.live).
24If you need a planet, you can buy one from [Urbit Live](https://urbit.live).
25
25
content/updates/2020-06-15-update.md+1−1
@@ -27,7 +27,7 @@ We’ve got two exciting lines of work coming together right now. The first is
27
27
283 -
283 -
29
29
30−The Urbit Community group has been fun and engaging lately. If you’ve booted your Urbit and haven’t joined, we encourage it. We’re there talking about the future of Urbit, core development, and all things Urbit adjacent and related. Ask for an invite in /urbit-help once you’ve gotten [set up](https://urbit.org/using/install).
30+The Urbit Community group has been fun and engaging lately. If you’ve booted your Urbit and haven’t joined, we encourage it. We’re there talking about the future of Urbit, core development, and all things Urbit adjacent and related. Ask for an invite in /urbit-help once you’ve gotten [set up](https://urbit.org/getting-started).
31
31
32
32
334 -
334 -
content/using/develop.mddeleted−117
@@ -1,117 +0,0 @@
1−+++
2−title = "Developer's Guide"
3−description = "How to get started developing on Urbit."
4−weight = 3
5−template = "doc.html"
6−aliases = ["/docs/using/creating-a-development-ship/", "/docs/getting-started/contributing"]
7−+++
8−
9−You can develop on Urbit in three ways:
10−
11−- [Applications using Urbit](#api), which use Urbit as the back-end to store data and communicate with others
12−- [Urbit Applications](#application), which are written in [Hoon](/docs/glossary/hoon/), and run as part of Urbit
13−- [Urbit Core](#core), which involves contributing to Urbit's operating system ([Arvo](https://github.com/urbit/urbit/tree/master/pkg/arvo)) or runtime ([Vere](https://github.com/urbit/urbit/tree/master/pkg/urbit))
14−
15−This guide will start by getting you set up to run an Urbit ship, and then tell you everything you need to know to do either.
16−
17−### Setting up your environment
18−
19−We assume you’ve gotten a basic introduction to Urbit. If you haven’t, read the [Understanding Urbit](@/understanding-urbit/_index.md) series.
20−
21−Once you’re ready, you can get started on the network right away and take some first steps, without acquiring an identity, by [creating a comet](@/using/install.md#comet).
22−
23−When developing, however, we recommend [booting a development ship](#creating-a-development-ship) and working locally -- you may need to make changes that could, in the wrong hands, destroy the ship’s environment, and it’s best to do so in a safe, separate place.
24−
25−## Applications using Urbit {#api}
26−
27−Urbit ships with its own set of apps written in its own language, Hoon. However it is also meant to integrate with applications written in other languages via an API. The clearest example of an application using Urbit is Landscape, the default client. Although it does currently ship with Urbit, its front-end is a separate piece of software that uses Urbit's HTTP APIs to interact with an Urbit ship. You can create your own application that uses Urbit to store data and interact with other Urbit ships without writing any Hoon code thanks to Urbit's HTTP APIs. This could be a chat client, a writing app, a game, or anything else that can communicate over HTTP.
28−
29−To get started quickly with the language of your choice, see the following libraries that provide HTTP interfaces to Urbit:
30−
31− - [Python](https://github.com/baudtack/urlock-py) (Stable)
32− - [Swift](https://github.com/dclelland/UrsusAirlock) (Under development)
33− - [Haskell](https://github.com/bsima/urbit-airlock) (Under active development)
34− - [JavaScript](https://www.npmjs.com/package/urbit) (Under active development)
35− - Go (Pending release)
36−
37−[View details about using the API or creating your own implementation here.](/using/integrating-api/)
38−
39−## Urbit Applications {#application}
40−
41−Urbit applications are still young, but can be fun to experiment with.
42−
43−When creating user applications on Urbit, you aren’t tied to any particular user interface. They can work without providing a response to the user, or by printing to the Dojo, or with an interface in Landscape, which uses [Eyre](@/docs/arvo/eyre/eyre.md) (the Arvo vane that serves HTTP to serve a React-based interface to the application through a web browser).
44−
45−When writing applications, you will often make use of [Gall](@/docs/hoon/hoon-school/gall.md), the Arvo vane that manages user applications.
46−
47−If you want to see examples of Urbit applications with common functionality requirements, you can see our [examples](https://github.com/urbit/examples) repository. If you want to get started building applications with a Landscape interface, check out our [create-landscape-app](https://github.com/urbit/create-landscape-app) repository.
48−
49−## Urbit Core {#core}
50−
51−Working on the core means improving the Urbit project itself, working with the existing community of Urbit developers. The kernel is much more stable, but generally more challenging from an engineering standpoint.
52−
53−Just arrived and unsure what to work on? An ideal way to get started is by experimenting with the system, talking to other developers, and reading (or [contributing to](https://github.com/urbit/docs)) the [documentation](/docs/).
54−
55−Prefer learning with an instructor? Our community runs an online course that covers the basics of Urbit development called [Hooniversity](https://hooniversity.org/). If course-based learning works well for you, we recommend you sign up.
56−
57−The Urbit developer community congregates around [the urbit-dev mailing list](https://groups.google.com/a/urbit.org/forum/#!forum/dev), the `~bitbet-bolbel/urbit-community` group on Landscape, and [Urbit’s GitHub repository](https://github.com/urbit/urbit). It’s a good idea to sign up, see what people are talking about, and introduce yourself.
58−
59−Once you’re comfortable working with Urbit, check out the [project’s issues on GitHub](https://github.com/urbit/urbit/issues) or some of our [contribution bounties](https://grants.urbit.org/).
60−
61−If you’re looking for some guidance, need help, or would prefer direct communication for your ideas, you can also always reach out to us directly at [support@urbit.org](mailto:support@urbit.org).
62−
63−## Creating a development ship {#creating-a-development-ship}
64−
65−To do work with Hoon and with the system, we recommended using a "fake" ship -- one not connected to the network.
66−
67−Because such a ship has no presence on the network, you don't need an Azimuth identity for its purposes. You just need to have [installed our software](/using/install).
68−
69−To create a fake ship named `~zod`, run the command below. You can replace `zod` with any valid Urbit ship-name.
70−
71−```
72−./urbit -F zod
73−```
74−
75−Now you should see a block of boot messages, starting with the Urbit version number. Welcome!
76−
77−## Community tutorials {#community-tutorials}
78−
79−Here are some tutorials written by members of the Urbit community.
80−
81−- [A Nock Interpreter](https://jtobin.io/nock) by `~nidsut-tomdun`
82−- [Basic Hoonery](https://jtobin.io/basic-hoonery) by `~nidsut-tomdun`
83−- [The Complete Guide to
84− Gall](https://github.com/timlucmiptev/gall-guide/blob/master/overview.md) by
85− `~timluc-miptev`
86−- [Nock for Everyday Coders](https://blog.timlucmiptev.space/part1.html) by `~timluc-miptev`
87−- [Rote - An Annotated Flashcard App](https://github.com/lukechampine/rote)
88−
89−If you want to add something to the list, [shoot us an email](mailto:support@urbit.org) or make a pull request in the [docs repository](https://github.com/urbit/docs).
90−
91−## How else can I contribute? {#how}
92−
93−The Urbit project is a global community of developers, users, and fans. If you’re interested in getting involved, there’s space for you; you don’t have to be a developer to be a part of the project.
94−
95−### Running stars and galaxies
96−
97−There are two ways to participate in the Arvo network: as a user running a planet and as an infrastructure provider running a galaxy or a star.
98−
99−For planets, Urbit is a peer-to-peer network where users can interact with each other via Landscape, or using custom applications that anyone can write.
100−
101−Running a planet helps build Urbit’s community, surfaces bugs, and helps core developers improve Urbit under realistic conditions.
102−
103−Stars and galaxies, however, have additional responsibilities and play a role in peer discovery as well as star and planet distribution. You can think of stars and galaxies as similar to the DNS system in the modern Internet. Most users don’t know it exists, but without it, the web wouldn’t work at all.
104−
105−Running a reliable galaxy or star, and spawning stars and planets from them, are excellent ways to help bootstrap the Urbit network.
106−
107−If you’re interested in running a galaxy or star, you’ll be reliably providing peer discovery for your children just by running your node – and we’re doing our best to make this both easy and profitable. If you’re interested in this, see [Star and Galaxy Operations](@/using/os/stars-and-galaxies.md).
108−
109−If you’re interested in distributing planets, read on.
110−
111−### Distribute points
112−
113−Want to get your friends and family into Urbit? Distribute planets using Bridge with a feature called **delegated sending**.
114−
115−Here’s how it works: any star can grant a number of invites to any of its child planets. Those planets can then send one-time-use invite codes via email to anyone of their choosing.
116−
117−For instructions on how to grant and send invites, check out [Using Bridge](@/using/id/using-bridge.md).
content/using/id/_index.md+2−1
@@ -1,6 +1,7 @@
1+++
1+++
2−title = "ID"
2+title = "Urbit ID"
3template = "sections/docs/chapters.html"
3template = "sections/docs/chapters.html"
4sort_by = "weight"
4sort_by = "weight"
5description = "How to interact with Urbit ID."
5description = "How to interact with Urbit ID."
6+weight = 10
6+++
7+++
content/using/id/bridge-troubleshooting.md+2
@@ -5,6 +5,8 @@ description = "Troubleshooting Bridge if you are running into errors"
5weight = 5
5weight = 5
6+++
6+++
7
7
8+This page covers common issues encountered with the [Bridge](https://bridge.urbit.org) application.
9+
8### Canvas Issues
10### Canvas Issues
9
11
10Bridge uses an HTML element called canvas to create your wallets. Unfortunately malicious websites can use canvas to identify and track users. As a result, some browsers and anti-tracking extensions can interfere with Bridge's ability to generate wallets.
12Bridge uses an HTML element called canvas to create your wallets. Unfortunately malicious websites can use canvas to identify and track users. As a result, some browsers and anti-tracking extensions can interfere with Bridge's ability to generate wallets.
content/using/id/guide-to-breaches.md+3−3
@@ -34,7 +34,7 @@ personal breach, follow the steps below.
34- Download your new keyfile following these instructions: [Generate your
34- Download your new keyfile following these instructions: [Generate your
35 keyfile](@/using/id/using-bridge.md#generate-your-keyfile).
35 keyfile](@/using/id/using-bridge.md#generate-your-keyfile).
36- Delete or archive your old [pier](@/docs/glossary/pier.md).
36- Delete or archive your old [pier](@/docs/glossary/pier.md).
37−- Proceed to [boot your ship](@/using/install.md#boot-your-planet) with the new keyfile.
37+- Proceed to [boot your ship](@/getting-started.md#boot-your-planet) with the new keyfile.
38- Delete your keyfile after successfully booting.
38- Delete your keyfile after successfully booting.
39- Rejoin your favorite chat channels and subscriptions.
39- Rejoin your favorite chat channels and subscriptions.
40
40
@@ -57,7 +57,7 @@ you are transferring to another address you own. The process here is slightly di
57 keyfile](@/using/id/using-bridge.md#generate-your-keyfile). The option
57 keyfile](@/using/id/using-bridge.md#generate-your-keyfile). The option
58 whether or not to breach is in the Accept your Transfer step.
58 whether or not to breach is in the Accept your Transfer step.
59- Delete or archive your old [pier](@/docs/glossary/pier.md).
59- Delete or archive your old [pier](@/docs/glossary/pier.md).
60−- Proceed to [boot your ship](@/using/install.md#boot-your-planet) with the new keyfile.
60+- Proceed to [boot your ship](@/getting-started.md#boot-your-planet) with the new keyfile.
61- Delete your keyfile after successfully booting.
61- Delete your keyfile after successfully booting.
62- Rejoin your favorite chat channels and subscriptions.
62- Rejoin your favorite chat channels and subscriptions.
63
63
@@ -85,6 +85,6 @@ If a network breach is happening, follow the steps below.
85
85
86- Delete your old Urbit binary.
86- Delete your old Urbit binary.
87- Delete or archive your old pier.
87- Delete or archive your old pier.
88−- Download the new Urbit binary by following the instructions in the [Install page](@/using/install.md).
88+- Download the new Urbit binary by following the instructions in the [Install page](@/getting-started.md).
89- Create a new pier by booting your ship with your key, according to the instructions on the install page. (Note: You do _not_ need to use a new key to boot into a new continuity era.)
89- Create a new pier by booting your ship with your key, according to the instructions on the install page. (Note: You do _not_ need to use a new key to boot into a new continuity era.)
90- Rejoin your favorite chat channels and subscriptions.
90- Rejoin your favorite chat channels and subscriptions.
content/using/id/using-bridge.md+2−2
@@ -14,7 +14,7 @@ This guide assumes that you have an Urbit ID, or that you have found someone to
14
14
15To connect to Bridge, go to [https://bridge.urbit.org](https://bridge.urbit.org) into your browser, and enter your identity's credentials in the appropriate fields. If you were invited to claim an Urbit ID, it's very likely that you received an email that would direct you to Bridge, and you can simply follow the hyperlink in that email.
15To connect to Bridge, go to [https://bridge.urbit.org](https://bridge.urbit.org) into your browser, and enter your identity's credentials in the appropriate fields. If you were invited to claim an Urbit ID, it's very likely that you received an email that would direct you to Bridge, and you can simply follow the hyperlink in that email.
16
16
17−You'll arrive at a page and see two major choices: `ID` and `OS`. `OS` is the only option that you're interested in right now; click on it. On the `OS` page, click the `Download Arvo Keyfile` button. Once you have downloaded the keyfile, you can exit Bridge and proceed to [install the Urbit binary](@/using/install.md).
17+You'll arrive at a page and see two major choices: `ID` and `OS`. `OS` is the only option that you're interested in right now; click on it. On the `OS` page, click the `Download Arvo Keyfile` button. Once you have downloaded the keyfile, you can exit Bridge and proceed to [install the Urbit binary](@/getting-started.md).
18
18
19### Local Bridge
19### Local Bridge
20
20
@@ -72,7 +72,7 @@ It should be noted that setting your network keys is an event on the Ethereum ne
72From the detail page associated with your point, click the `Generate Arvo Keyfile` link and you'll be taken to a page with a field titled `Network seed`. This field should already be filled in, and should match the hexadecimal string that you entered in the previous step. If it's not filled in or does not match, fill it in with the correct string.
72From the detail page associated with your point, click the `Generate Arvo Keyfile` link and you'll be taken to a page with a field titled `Network seed`. This field should already be filled in, and should match the hexadecimal string that you entered in the previous step. If it's not filled in or does not match, fill it in with the correct string.
73Click `Generate ->`, which will download a keyfile onto your machine.
73Click `Generate ->`, which will download a keyfile onto your machine.
74
74
75−With that keyfile in hand, you can now exit Bridge and continue to the guide to [install the Urbit binary](@/using/install.md).
75+With that keyfile in hand, you can now exit Bridge and continue to the guide to [install the Urbit binary](@/getting-started.md).
76
76
77### Escaping your sponsor
77### Escaping your sponsor
78
78
content/using/integrating-api.mddeleted−224
@@ -1,224 +0,0 @@
1−+++
2−title = "Integrating with Urbit for Developers"
3−description = "How to use Urbit's API."
4−weight = 4
5−template = "doc.html"
6−+++
7−
8−This guide is aimed at developers who have a working knowledge of HTTP grammar (`PUT`, `GET`), and should not require any special knowledge of Urbit's internals. To learn more about a specific application within Urbit, please search for that with the docs once you have finished this guide.
9−
10−## Authentication
11−
12−The first step in creating an application *on* Urbit (to be distinguished from an Urbit application) is to authenticate with the desired ship. This can be a planet, comet, or any other Urbit ship. For the purposes of this example, we will be running a "fakezod" on port 8080. Run this code, substituting the appropriate path to your Urbit binary:
13−
14−```bash
15−/path/to/urbit -p 8080 -F zod
16−```
17−
18−(for the unfamiliar, this will create a folder named "zod" in your working directory, from which the ship will run. Use `/path/to/urbit -p 8080 zod` in the future)
19−
20−You can run `+code` in the dojo to get the key, but a fakezod's key is always `lidlut-tabwed-pillex-ridrup`. This is our password, our API token that we will use.
21−
22−Run this code in your bash terminal (requires cURL):
23−
24−```bash
25−curl -i localhost:8080/~/login -X POST -d "password=lidlut-tabwed-pillex-ridrup"
26−```
27−Let's explain what this does:
28−
29− - `-i` displays the headers, so that you can see the cookie that gets sent
30− - `localhost:8080/~/login` is the URL to which you are POSTing. You will note this is also the URL you visit when you log into Landscape.
31− - `-X POST` specifies that you are POSTing data, not GETting.
32− - `-d "password=lidlut-tabwed-pillex-ridrup"` specifies the key for your Urbit that we retrieved above. It is sent as form data, as if it were sent from an HTML form input field (which it is in Landscape)
33−
34−You should see the following:
35−
36−```bash
37−HTTP/1.1 200 ok
38−Date: Sun, 01 Jan 2020 00:00:00 GMT
39−Connection: keep-alive
40−Server: urbit/vere-0.10.8
41−set-cookie: urbauth-~zod=0v3.fvaqc.nnjda.vude1.vb5l6.kmjmg; Path=/; Max-Age=604800
42−transfer-encoding: chunked
43−```
44−
45−The `Date` and `set-cookie` will be slightly different of course.
46−
47−Take a look at the `set-cookie` line. This is now your session authentication, and will need to be sent with any future requests. It consists of three parts:
48−
49− - `urbauth` is a prefix that Eyre uses to check for presence of authentication
50− - `~zod` is the name of the ship you are logging in as
51− - `0v3.fvaqc.nnjda.vude1.vb5l6.kmjmg` is the actual authentication token.
52−
53−At present there is no way to separate these parts — you must pass a cookie *as* a cookie. This string must be in the `Cookie` header. The `set-cookie` header is only used for this request upon response. It is what browsers expect when receiving a cookie.
54−
55−## Interacting with Urbit
56−
57−Once authenticated, you will perform all your operations on a channel. You may open as many channels as needed using the same authentication token, but this will increase complexity and memory usage on your Urbit ship.
58−
59−Interacting with Urbit comprises two parts:
60−
61−1. Sending information via PUT requests, which receive HTTP status code `204` (no content) upon success. We will not receive updated information (as in a POST request).
62−2. Receiving data on channels, which must first be subscribed to via an initial request. These come in the form of SSEs ([Server-Sent Events](https://www.w3.org/TR/eventsource/))
63−
64−These can be used independently, i.e. you may choose to only send information or only receive information from your Urbit, based on your application. Both can take place on the same channel.
65−
66−### Creating a Channel
67−
68−For this example, we will use the following channel:
69−
70−```
71−http://localhost:8080/~/channel/1601844290-ae45b
72−```
73−
74−Let's examine the parts. A channel is simply a URL in this pattern: `{url}/~/channel/{uid}` where `{uid}` is a string of your choosing. Most libraries default to the current unix time plus six hexadecimal characters. Your program should determine a channel for its current session and store that in its state.
75−
76−The channel does not yet exist in Urbit, however. To subscribe to events on this URL, you must first make a request (PUT) to Urbit on this URL. The simplest way to do this is to `hi` ourselves, as if we had entered `|hi our` in the dojo. A `hi` is analogous to a ping, and does not manipulate state. Let's learn how to make requests using this as an example.
77−
78−### Making Requests
79−
80−All requests will take the form of sending a message. Messages can take different forms, such as `subscribe`s, `ack`s, and `poke`s. These are called actions and there are more than these, but these will cover most basic use cases. You can think of them as a somewhat more sophisticated HTTP grammar. A message always requires an `id` and an `action`. Other fields depend on the specific action.
81−
82−Let's look at the structure of a message by examining the most basic `hi` we will send.
83−
84−```js
85−{
86− 'id': 1, // Required. A sequential ID. Keep track of which messages you have sent.
87− 'action': 'poke', // Required. The action to take. poke is the most basic way of sending data, like HTTP POST
88− 'ship': 'zod', // Required by poke. The ship on which to perform the poke. You can only poke foreign ships with JSON, but this is the authenticated ship.
89− 'app': 'hood', // Required by poke. The Urbit app to which to send the data.
90− 'mark': 'helm-hi', // Required by poke. The "mark," or type, of data being sent.
91− 'json': 'Opening airlock' // Required by poke. The actual data being sent.
92−}
93−```
94−
95−Let's open our channel by sending the following request using cURL (**remember to change the cookie**):
96−
97−```bash
98−curl --header "Content-Type: application/json" \
99− --cookie "urbauth-~zod=0v3.fvaqc.nnjda.vude1.vb5l6.kmjmg" \
100− --request PUT \
101− --data '[{"id":1,"action":"poke","ship":"zod","app":"hood","mark":"helm-hi","json":"Opening airlock"}]' \
102− http://localhost:8080/~/channel/1601844290-ae45b
103−```
104−
105−If you switch to your fakezod's dojo, you should see `< ~zod: Opening airlock`.
106−
107−Note that in the JSON that we sent via `--data`, the payload is wrapped in `[]`. This is because we can send multiple messages in a single payload, and Eyre expects a list of items, even if we are only sending one.
108−
109−You will always receive a `204` status code if the `PUT` request successfully reached Urbit, authentication succeeded, and the payload was valid. This is merely an HTTP status code, however. If the request failed within Urbit itself, however, you will receive a "nack" event that you will have to process separately.
110−
111−Let's look at how to receive events from Urbit.
112−
113−### Subscribing to Events
114−
115−Now that Urbit has opened an Eyre channel at our URL, we can watch for events on that URL by sending a `subscribe` message. Let's look at the anatomy of a `susbcribe`:
116−
117−```js
118−{
119− 'id': 2, // Required. This is the next message we are sending, so we give it the next ID.
120− 'action': 'subscribe', // Required.
121− 'ship': 'zod', // Required by subscribe.
122− 'app': 'chat-view', // Required by subscribe. In this case, we want to watch events that occur in the chat-view app, which is responsible for handling incoming chats.
123− 'path': '/primary' // Required by subscribe. All apps have different path structures. In the case of chat-view, this is where we see all incoming chats.
124−}
125−```
126−
127−This is all we need to send Urbit to say "On this URL through which I am sending information, send me SSEs whenever something occurs on this app at this path."
128−
129−You should be able to send this information if you were able to send the above cURL example. However, we now need to be able to listen to the SSEs. The `EventSource` object is available for JavaScript in the browser context, as this is why SSEs were invented, but there should be a library for it in your chosen language. Take a look at a Browser JavaScript example:
130−
131−```js
132−const eventSource = new EventSource('http://localhost:8080/~/channel/1601844290-ae45b', {
133− withCredentials: true // Required, sends your cookie
134−});
135−
136−eventSource.addEventListener('message', function (event) {
137− ack(Number(event.lastEventId)); // See section below
138− const payload = JSON.parse(event.data); // Data is sent in JSON format
139− payload.id === event.lastEventId; // The SSE spec includes event IDs. This information is duplicated in the payload.
140− const data = payload.json; // Beyond this, the actual data will vary between apps
141−});
142−
143−eventSource.addEventListener('error', function (event) {
144− handleError(event);
145−});
146−
147−```
148−
149−### Handling Received Events
150−
151−Once you have received an event, it is expected that you will "ack" or "acknowledge" that you have received them. To do so, simply send a message in the following format:
152−
153−```js
154−{
155− 'id': 3, // Required. Picking up where we left off
156− 'action': 'ack', // Required.
157− 'event-id': 15, // Required by ack. Whichever SSE of which you are acknowledging receipt
158−}
159−```
160−
161−### Unsubscribing from Events
162−
163−You may want to stop receiving events from a particular app path, but you don't want to close the channel altogether yet. Let's look at how to do that. Take a look at the example for subscribing. We sent that message with `id: 2`. We will use that ID to cancel the relevant subscription:
164−
165−```javascript
166−{
167− 'id': 4, // Required. We always increment the ID as we send messages.
168− 'action': 'unsubscribe', // Required.
169− 'subscription': 2 // Required by unsubscribe. This corresponds to the id of a subscribe message sent earlier.
170−}
171−```
172−
173−### Deleting a Channel
174−
175−You should clean up your channel when able. To do so, simply send a `delete` message and Eyre will handle the rest so your program can safely exit.
176−
177−```javascript
178−{
179− 'id': 5, // Required.
180− 'action': 'delete' // Required.
181−}
182−```
183−
184−## Other Operations
185−
186−There are other operations which require authentication but do not require the use of a channel. Some operations are app-specific and will not be enumerated here, but there are two operations that exist across Urbit: `scry` and `spider`.
187−
188−### Scrying
189−
190−Scrying lets you see what an app has exposed at a particular path. It does not manipulate state.
191−
192−It takes the form `{url}/~/scry/{app}{path}.{mark}`
193−
194− Let's get the base hash of our fakezod in the same way that Landscape does it.
195−
196−```bash
197−curl --header "Content-Type: application/json" \
198− --cookie "urbauth-~zod=0v3.fvaqc.nnjda.vude1.vb5l6.kmjmg" \
199− --request GET \
200− http://localhost:8080/~/scry/file-server/clay/base/hash.json
201−```
202−
203−Note the use of a `GET` request.
204−
205−In this example we're scrying the `file-server` app at the path `/clay/base/hash` and using the `json` mark, which is most common. We receive `"0"` which is correct because we are at the top level of the hierarchy using a fake ship.
206−
207−Scry will fail with a 500 or return a 404 if no data is found.
208−
209−### Running Threads with Spider
210−
211−Running threads is an exception to the rule that we outlined in the section on channels. It uses a `POST` request and both manipulates state and receives information back. It also exposes the ability to send a sequence of commands, i.e. a "thread," hence the name.
212−
213−It takes the form `{url}/spider/{inputMark}/{threadname}/{outputmark}.json`
214−
215−This should be considered an advanced technique, but the basic structure of a request can be seen here:
216−
217−```bash
218−curl --header "Content-Type: application/json" \
219− --cookie "urbauth-~zod=0v3.fvaqc.nnjda.vude1.vb5l6.kmjmg" \
220− --request POST \
221− --data '[{"foo": "bar"}]' \
222− http://localhost:8080/spider/graph-view-action/graph-create/json.json
223−
224−```
content/using/os/_index.md+3−2
@@ -1,6 +1,7 @@
1+++
1+++
2−title = "OS"
2+title = "Urbit OS"
3sort_by = "weight"
3sort_by = "weight"
4description = "How to use Urbit OS"
4description = "How to use Urbit OS"
5template = "sections/docs/chapters.html"
5template = "sections/docs/chapters.html"
6+weight = 1
6−+++
7++++
content/using/os/filesystem.md−2
@@ -4,8 +4,6 @@ template = "doc.html"
4weight = 3
4weight = 3
5+++
5+++
6
6
7−## Filesystem {#filesystem}
8−
9Urbit has its own revision-controlled filesystem, Clay. Clay is a typed, global,
7Urbit has its own revision-controlled filesystem, Clay. Clay is a typed, global,
10referentially transparent namespace. An easy way to think about it is like typed
8referentially transparent namespace. An easy way to think about it is like typed
11`git`.
9`git`.
content/using/os/getting-started.md+3−4
@@ -8,9 +8,8 @@ aliases = ["docs/using/messaging/", "docs/using/admin/"]
8hidetitle = "true"
8hidetitle = "true"
9+++
9+++
10
10
11−## Using your ship
12−
13−Your urbit (also called your _ship_) is a persistent Unix process that you mainly control from the console.
11+Your urbit (also called your _ship_) is a persistent Unix process that you
12+mainly control from its console, called the `dojo`.
14
13
15### Shutdown
14### Shutdown
16
15
@@ -155,7 +154,7 @@ in this example.
155
154
156Put `<key>` in a file and that file becomes `<keyfile>`.
155Put `<key>` in a file and that file becomes `<keyfile>`.
157
156
158−You can use the resulting output in the same installation flow from the [Installing Urbit](@/using/install.md) guide, following the same scheme as for booting a planet. That scheme is:
157+You can use the resulting output in the same installation flow from the [Installing Urbit](@/getting-started.md) guide, following the same scheme as for booting a planet. That scheme is:
159
158
160```sh
159```sh
161$ ./urbit -w <moonname> -G <key> -c <piername>
160$ ./urbit -w <moonname> -G <key> -c <piername>
content/using/os/hosting.md+2−2
@@ -103,7 +103,7 @@ Continuing to follow the DO docs we're going to configure the ufw firewall.
103 ```
103 ```
104
104
105## Installing Urbit
105## Installing Urbit
106−Finally we're ready to install Urbit on your very own server. This part is actually pretty easy, if you haven't installed Urbit locally then the instructions are the exact same as the ones in the Urbit [install doc](@/using/install.md). If you have a local ship already, we're going to install Urbit on the server and then send your local ship up.
106+Finally we're ready to install Urbit on your very own server. This part is actually pretty easy, if you haven't installed Urbit locally then the instructions are the exact same as the ones in the Urbit [install doc](@/getting-started.md). If you have a local ship already, we're going to install Urbit on the server and then send your local ship up.
107 - **WARN**: Since Urbit is p2p you don't want to ever run two copies of your ship simultaneously. This is because other nodes that interact with each of your copies will be confused by which one is the most up to date. If you end up accidentally doing this you'll have to do a 'personal breach' described in the [guide to breaches](@/using/id/guide-to-breaches.md) to fix things.
107 - **WARN**: Since Urbit is p2p you don't want to ever run two copies of your ship simultaneously. This is because other nodes that interact with each of your copies will be confused by which one is the most up to date. If you end up accidentally doing this you'll have to do a 'personal breach' described in the [guide to breaches](@/using/id/guide-to-breaches.md) to fix things.
108 - The first thing you're going to want to do is shut down your local ship, either with control-d or `|exit` in dojo.
108 - The first thing you're going to want to do is shut down your local ship, either with control-d or `|exit` in dojo.
109 - Next we're going to install Urbit on the server and permit it to bind to the web ports:
109 - Next we're going to install Urbit on the server and permit it to bind to the web ports:
@@ -166,7 +166,7 @@ On iOS you can save a website to your homescreen as an icon. If you do this for
166 - [Digital Ocean Nginx Installation][DO Nginx Install]
166 - [Digital Ocean Nginx Installation][DO Nginx Install]
167 - [Digital Ocean Nginx Config][DO Nginx Config]
167 - [Digital Ocean Nginx Config][DO Nginx Config]
168 - [Digital Ocean SSL Cert Setup][DO SSL Config]
168 - [Digital Ocean SSL Cert Setup][DO SSL Config]
169− - [Urbit Install Docs](@/using/install.md)
169+ - [Urbit Install Docs](@/getting-started.md)
170 - [Urbit Basic Cloud Install][Urbit Basic Cloud Install]
170 - [Urbit Basic Cloud Install][Urbit Basic Cloud Install]
171
171
172 [Gandi]: https://www.gandi.net/
172 [Gandi]: https://www.gandi.net/
content/using/os/messaging.md+3−3
@@ -4,9 +4,9 @@ template = "doc.html"
4weight = 2
4weight = 2
5+++
5+++
6
6
7−## Messaging {#messaging}
8−
9−Let’s get started using the `:chat-cli` application, also known more simply as _Chat_. It's the simplest way to talk to people using the command line interface.
7+Let’s get started using the `:chat-cli` application, also known more simply as
8+_Chat_. It's the simplest way to talk to people using the command line
9+interface.
10
10
11### Quickstart
11### Quickstart
12
12
content/using/os/s3.md−2
@@ -4,8 +4,6 @@ template = "doc.html"
4weight = 2
4weight = 2
5+++
5+++
6
6
7−## S3 {#s3}
8−
9Amazon S3, which stands for Amazon Simple Storage Service, is a technology that was introduced by Amazon Web Services for cloud storage that has since been extended more broadly into a [standard programming interface](https://en.wikipedia.org/wiki/Amazon_S3#S3_API_and_competing_services).
7Amazon S3, which stands for Amazon Simple Storage Service, is a technology that was introduced by Amazon Web Services for cloud storage that has since been extended more broadly into a [standard programming interface](https://en.wikipedia.org/wiki/Amazon_S3#S3_API_and_competing_services).
10
8
11Our S3 support lets you store credentials for your S3 object storage buckets on your Urbit ship; once you have done so, you will get additional functionality for uploading your own media within Chat and Groups (for avatars).
9Our S3 support lets you store credentials for your S3 object storage buckets on your Urbit ship; once you have done so, you will get additional functionality for uploading your own media within Chat and Groups (for avatars).
content/using/os/shell.md−2
@@ -4,8 +4,6 @@ template = "doc.html"
4weight = 2
4weight = 2
5+++
5+++
6
6
7−## Shell {#using-the-shell}
8−
9The Dojo is our shell; it processes system commands and returns output. It's a
7The Dojo is our shell; it processes system commands and returns output. It's a
10good place to quickly experiment with Urbit. On the surface the Dojo is just a
8good place to quickly experiment with Urbit. On the surface the Dojo is just a
11Hoon REPL. On the inside, the Dojo is a system for operating on and transforming
9Hoon REPL. On the inside, the Dojo is a system for operating on and transforming
content/using/os/ship-troubleshooting.md+1−1
@@ -38,7 +38,7 @@ When you first start your ship, you should make sure you put it a place where yo
38
38
39### Keep up-to-date builds
39### Keep up-to-date builds
40
40
41−Check for latest Urbit version at https://github.com/urbit/urbit/releases. If you're behind, update using [this guide](@/using/install.md#updating).
41+Check for latest Urbit version at https://github.com/urbit/urbit/releases. If you're behind, update using [this guide](@/getting-started.md#updating).
42
42
43### `|hi` your star to see if you're connected
43### `|hi` your star to see if you're connected
44
44
content/using/os/stars-and-galaxies.md+2−2
@@ -6,7 +6,7 @@ aliases = ["/docs/using/operating-a-star/"]
6template = "doc.html"
6template = "doc.html"
7+++
7+++
8
8
9−To boot your galaxy or star, follow our [installation instructions](@/using/install.md).
9+To boot your galaxy or star, follow our [installation instructions](@/getting-started.md).
10
10
11### Hosting your star
11### Hosting your star
12
12
@@ -27,7 +27,7 @@ By default, your star accepts software updates from its galaxy and routes them t
27
27
28#### Breaches
28#### Breaches
29
29
30−To ensure new planets can connect to your ship, users are expected to participate in network-wide breaches by [updating to the latest Urbit version](@/using/install.md), deleting (or archiving) your pier, and then booting your ship using the new binary. If you don’t participate, you won’t be able to communicate with anyone on the network who has updated to the new era.
30+To ensure new planets can connect to your ship, users are expected to participate in network-wide breaches by [updating to the latest Urbit version](@/getting-started.md), deleting (or archiving) your pier, and then booting your ship using the new binary. If you don’t participate, you won’t be able to communicate with anyone on the network who has updated to the new era.
31
31
32Network-wide breaches are distinct from personal breaches, wherein an individual ship cycles its personal network keys using Bridge, and then follows the same steps outlined above.
32Network-wide breaches are distinct from personal breaches, wherein an individual ship cycles its personal network keys using Bridge, and then follows the same steps outlined above.
33
33
templates/index.html+1−1
@@ -38,7 +38,7 @@
38<section class="full lh-copy c2-7-md c3-7-lg mb6">
38<section class="full lh-copy c2-7-md c3-7-lg mb6">
39 <ul class="list mt0">
39 <ul class="list mt0">
40 <li class="mt0">
40 <li class="mt0">
41− <a class="b--blue2 blue2 bb" href="/using/install/">Join the Network</a><br />
41+ <a class="b--blue2 blue2 bb" href="/getting-started/">Get Started</a><br />
42 Learn more about how to join the Urbit network.
42 Learn more about how to join the Urbit network.
43 </li>
43 </li>
44 <li class="mt3">
44 <li class="mt3">
templates/page/getting_started.htmlnew file+68
@@ -0,0 +1,68 @@
1+{% extends "base.html" %}
2+<!-- JAL(2021.3.12) This page is a hack in order to get the title set properly in the /getting-started/planet route because I'm a Zola noob. -->
3+{% block bodyclasses %}class="page-indiced"{% endblock bodyclasses %}
4+
5+{% block title %}
6+ <meta name="og:title" content="{{ page.title }} - {{ config.title }}">
7+ <title>{{ page.title }} - {{ config.title }}</title>
8+{% endblock title %}
9+
10+{% block description %}
11+ {% if page.description %}
12+ <meta name="og:description" content="{{ page.description }}">
13+ <meta name="description" content="{{ page.description }}">
14+ {% else %}
15+ <meta name="og:description" content="{{ config.description }}">
16+ <meta name="description" content="{{ config.description }}">
17+ {% endif %}
18+{% endblock description %}
19+
20+{% block image %}
21+ {% if page.extra.image %}
22+ <meta name="twitter:image" content="{{ page.extra.image }}">
23+ {% else %}
24+ <meta name="twitter:image" content="https://media.urbit.org/logo/urbit-logo-card.png">
25+ {% endif %}
26+{% endblock image %}
27+
28+{% block content %}
29+
30+<!-- header -->
31+<!-- content -->
32+<nav class="mt4 fixed-xl full fourth-1-lg page-indiced mb3 mb0-m mb0-l mb0-xl">
33+ <a class="gray3" href="/">Urbit</a>
34+ <span class="gray3"> / </span>
35+ <a href="/{{ page.components[0] }}{% if page.components[2] %}/{{ page.components[1] }}{% endif %}">
36+ Getting Started
37+ </a>
38+
39+ {% include "partials/navigation-search.html" %}
40+
41+{% for h2 in toc %}
42+{% if h2.children %}
43+<details class="dn mw5-xl mt2 mw5-l db-xl page-indiced f6"><summary>{{ h2.title }}</summary>
44+ {% for h3 in h2.children %}
45+ <li class="ml3 mv1"><a href="{{h3.permalink | safe}}">{{h3.title}}</a></li>
46+ {% endfor %}
47+</details>
48+{% else %}
49+ <li class="dn mw5-xl mw5-l db-xl page-indiced mv2"><a class="f6" href="{{h2.permalink}}">{{h2.title}}</a></li>
50+{% endif %}
51+{% endfor %}
52+</nav>
53+ <article class="mt4 mb6 c1-13 c4-12-lg measure-wide">
54+ {% if page.extra.hidetitle %} {% else %}<h1>{{ page.title }}</h1>{% endif %}
55+ {% if page.extra.author %}
56+ <span class="mt2 dib" rel="author"> {{ page.extra.author }} </span>
57+ {% if page.extra.ship %}
58+ <address class="mono">{{ page.extra.ship }}</address>
59+ {% endif %}
60+ {% if page.date %}
61+ <time class="mono db mv1 gray4 f5">{{page.date | date(format="~%Y.%-m.%-d") }}</time>
62+ {% endif %}
63+ {% endif %}
64+ <!-- body -->
65+ {{ page.content | safe }}
66+ {% include "partials/pagination.html" %}
67+ </article>
68+{% endblock content %}
templates/page_indiced.html+2−1
@@ -44,7 +44,8 @@
44 <a class="gray3" href="/">Urbit</a>
44 <a class="gray3" href="/">Urbit</a>
45 <span class="gray3"> / </span>
45 <span class="gray3"> / </span>
46 <a href="/{{ page.components[0] }}{% if page.components[2] %}/{{ page.components[1] }}{% endif %}">
46 <a href="/{{ page.components[0] }}{% if page.components[2] %}/{{ page.components[1] }}{% endif %}">
47+ {% if page.components[2] %}
47− {% if page.components[2] %}{{ page.components[1] | capitalize }}
48+ {{ page.components[1] | capitalize }}
48 {% else %}
49 {% else %}
49 {{ page.components[0] | capitalize }}
50 {{ page.components[0] | capitalize }}
50 {% endif %}
51 {% endif %}
templates/partials/footer.html+4−4
@@ -18,9 +18,9 @@
18
18
19 <nav class="c7-10-md c7-9-lg half-1 mt5">
19 <nav class="c7-10-md c7-9-lg half-1 mt5">
20 <h3 class="mt0 mb3 pt0 pb0">Using + Contributing</h3>
20 <h3 class="mt0 mb3 pt0 pb0">Using + Contributing</h3>
21− <li class="mt2 f6"><a href="/using/install">Install + Setup</a></li>
21+ <li class="mt2 f6"><a href="/getting-started">Getting Started</a></li>
22+ <li class="mt2 f6"><a href="/using">Operations Manual</a></li>
22− <li class="mt2 f6"><a href="/using/develop">Developer's Guide</a></li>
23+ <li class="mt2 f6"><a href="/docs/development/develop">Developer's Guide</a></li>
23− <li class="mt2 f6"><a href="/using/operations">Operations Manual</a></li>
24 </nav>
24 </nav>
25 <nav class="c10-13-md c9-11-lg half-2 mt5">
25 <nav class="c10-13-md c9-11-lg half-2 mt5">
26 <h3 class="mt0 mb3 pt0 pb0">Community</h3>
26 <h3 class="mt0 mb3 pt0 pb0">Community</h3>
@@ -34,7 +34,7 @@
34 <section class="full-bleed full grid12">
34 <section class="full-bleed full grid12">
35 <nav class="c1-4-md c3-5-lg half-1 mt4 mb5">
35 <nav class="c1-4-md c3-5-lg half-1 mt4 mb5">
36 <h3 class="mt0 mb3 pt0 pb0">Developers</h3>
36 <h3 class="mt0 mb3 pt0 pb0">Developers</h3>
37− <li class="mt2 f6"><a href="/docs">Documentation</a></li>
37+ <li class="mt2 f6"><a href="/docs">Developer Documentation</a></li>
38 <li class="mt2 f6"><a href="https://grants.urbit.org">Developer Grants</a></li>
38 <li class="mt2 f6"><a href="https://grants.urbit.org">Developer Grants</a></li>
39 <li class="mt2 f6"><a href="/bounties">Security Bounties</a></li>
39 <li class="mt2 f6"><a href="/bounties">Security Bounties</a></li>
40 </nav>
40 </nav>
templates/partials/navigation-docs.html+2−2
@@ -57,7 +57,7 @@
57 <span class="ml1 pa1 dib v-mid ba br1 b--gray3 gray3 f7" id="keyhint">Ctrl + /</span>
57 <span class="ml1 pa1 dib v-mid ba br1 b--gray3 gray3 f7" id="keyhint">Ctrl + /</span>
58</button>
58</button>
59 <ul class="lh-copy">
59 <ul class="lh-copy">
60− <li class="ml2 mt1"><a href="/get-started">Install / Get Started -> </a></li>
60+ <li class="ml2 mt1"><a href="/getting-started">Install / Get Started -> </a></li>
61 <li class="ml2 mt1 mb4">
61 <li class="ml2 mt1 mb4">
62 {% if base == "using" %}
62 {% if base == "using" %}
63 <a href="/docs/">Development Docs -></a>
63 <a href="/docs/">Development Docs -></a>
@@ -166,7 +166,7 @@
166 <select class="db mt4 pa2 b--black ba br0 mw4 f6 fw5" id="docsSelect" style="text-indent: 0.725rem;">
166 <select class="db mt4 pa2 b--black ba br0 mw4 f6 fw5" id="docsSelect" style="text-indent: 0.725rem;">
167 <option>Navigation ↓</option>
167 <option>Navigation ↓</option>
168 <option> </option>
168 <option> </option>
169− <option value="https://urbit.org/using/install">Install</option>
169+ <option value="https://urbit.org/getting-started">Install</option>
170 <option value="https://urbit.org/using/operations/">Operations Manual</option>
170 <option value="https://urbit.org/using/operations/">Operations Manual</option>
171 <option value="https://urbit.org/using/develop">Developer's Guide</option>
171 <option value="https://urbit.org/using/develop">Developer's Guide</option>
172 {% set index = get_section(path="docs/_index.md") %}
172 {% set index = get_section(path="docs/_index.md") %}
templates/understanding-urbit/list.html+1−1
@@ -57,7 +57,7 @@
57 <p class="full mt0 mb4 mb4-xl lh-copy b">2 - User experience</p>
57 <p class="full mt0 mb4 mb4-xl lh-copy b">2 - User experience</p>
58 <p class="full mt0 mb4 mb4-xl lh-copy">We want Urbit to be a single, simple interface for your whole digital life.</p>
58 <p class="full mt0 mb4 mb4-xl lh-copy">We want Urbit to be a single, simple interface for your whole digital life.</p>
59 <img class="full ba mb4" src="https://media.urbit.org/site/understanding-urbit/uu-intro-4.png"/>
59 <img class="full ba mb4" src="https://media.urbit.org/site/understanding-urbit/uu-intro-4.png"/>
60− <p class="full mt0 mb4 mb4-xl lh-copy">Over the years, Urbit has been built in public as an open source project. Anyone can <a class="bb" href="/using/install/">join the network</a> and check out what we’re up to. It’s a bit like signing on to IRC in the early 90s. </p>
60+ <p class="full mt0 mb4 mb4-xl lh-copy">Over the years, Urbit has been built in public as an open source project. Anyone can <a class="bb" href="/getting-started/">join the network</a> and check out what we’re up to. It’s a bit like signing on to IRC in the early 90s. </p>
61 <p class="full mt0 mb4 mb4-xl lh-copy">In early 2020, we released Urbit OS 1: a minimal interface for group communication, and our first complete interface. OS 1 is a tool to chat, share notes and links, and stay connected. </p>
61 <p class="full mt0 mb4 mb4-xl lh-copy">In early 2020, we released Urbit OS 1: a minimal interface for group communication, and our first complete interface. OS 1 is a tool to chat, share notes and links, and stay connected. </p>
62 <p class="full mt0 mb4 mb4-xl lh-copy">OS 1 is the first step toward a truly complete OS for a networked world. </p>
62 <p class="full mt0 mb4 mb4-xl lh-copy">OS 1 is the first step toward a truly complete OS for a networked world. </p>
63 <p class="full mt0 mb4 mb4-xl lh-copy">Over time, Urbit will grow into a system that can bring together all our different modes of communicating: chat, payments, documents, images, biometric data. We want individuals and their communities to be able to both control their software in fact, through the source code, and in action, through a simple interface.</p>
63 <p class="full mt0 mb4 mb4-xl lh-copy">Over time, Urbit will grow into a system that can bring together all our different modes of communicating: chat, payments, documents, images, biometric data. We want individuals and their communities to be able to both control their software in fact, through the source code, and in action, through a simple interface.</p>