You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
You can start editing the page by modifying `pages/index.tsx`. The page auto-updates as you edit the file.
5
+
6
+
[API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.ts`.
7
+
8
+
The `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages.
9
+
10
+
### Local Integerated Development Setup
11
+
12
+
Ozone requires a PDS service to talk to, and it is convenient to point it to a local `dev-env` instance for testing during development.
13
+
14
+
1. In the separate [atproto project](https://github.com/bluesky-social/atproto), run the dev server using `yarn workspace @atproto/dev-env start`. This will run a PDS, seeded with some users and data for you.
15
+
2. Run the development server for Ozone using `yarn dev`. This will start running the Ozone frontend at `http://localhost:3000`.
16
+
3. Navigate to the login page in your browser, at [http://localhost:3000](http://localhost:3000).
17
+
4. Login using the atproto dev-env credentials, which you can find [here](https://github.com/bluesky-social/atproto/blob/a1240f0a37030766dfe0a2ccfdc2810432520ae9/packages/dev-env/src/mock/index.ts#L59-L84). For development some example login credentials that would are:
18
+
- Service URL: http://localhost:2583
19
+
- Account handle: alice.test
20
+
- Password: hunter2
21
+
- Admin Token: admin-pass
22
+
23
+
### Working with unpublished changes to the `@atproto/api` package
24
+
25
+
In the course of development there may be updates to the atproto client that are not yet published to npm, but you would like to use with Ozone. Here's the workflow for using unpublished changes to the @atproto/api package:
26
+
27
+
1. Ensure the [atproto/](https://github.com/bluesky-social/atproto) project lives as a sibling to the [ozone/](https://github.com/bluesky-social/ozone) project on your filesystem (or adjust the path used in step 4).
28
+
29
+
```
30
+
~/Documents/bluesky
31
+
❯ ls -l
32
+
total 19856
33
+
drwxr-xr-x 22 user group 704 Jan 19 15:51 atproto
34
+
drwxr-xr-x 24 user group 768 Jan 24 19:17 ozone
35
+
```
36
+
37
+
2. Checkout whichever branch you'd like to use in atproto/ for the @atproto/api package.
38
+
39
+
```
40
+
~/Documents/bluesky
41
+
❯ cd atproto
42
+
~/Documents/bluesky/atproto
43
+
❯ git checkout main
44
+
```
45
+
46
+
3. Build the @atproto/api package in atproto/.
47
+
48
+
```
49
+
~/Documents/bluesky/atproto
50
+
❯ yarn
51
+
```
52
+
53
+
4. Update the package.json file in ozone/ to reference the local build of @atproto/api.
5. Ask yarn to reinstall, creating the link from ozone/ to the local build of @atproto/api.
63
+
```
64
+
~/Documents/bluesky/ozone
65
+
❯ yarn
66
+
```
67
+
6. Take care not to check-in the changes to package.json and yarn.lock that came from the temporary linking. When you're done, you can reset everything with:
Ozone is a Next.js web application which talks directly to a PDS instance, and requires moderator or administrator privileges to function.
5
+
Ozone UI is a Next.js web application which talks directly to an Ozone "moderation service". It generally requires moderator or administrator privileges to function.
6
6
7
7
Features:
8
8
@@ -14,9 +14,20 @@ Features:
14
14
- browsing app.bsky profiles and post threads, including some taken-down content
15
15
- quick-action modal (Ctrl-K)
16
16
17
+
## Docker Quickstart
18
+
19
+
```bash
20
+
# build image
21
+
docker build -t ozone-ui .
22
+
23
+
# run the image
24
+
docker run -p 3000:3000 ozone-ui
25
+
```
17
26
18
27
## Development Quickstart
19
28
29
+
We recommend [`nvm`](https://github.com/nvm-sh/nvm) for managing Node.js installs. This project requires Node.js version 20. `yarn` is used to manage dependencies. You can install it with `npm install --global yarn`.
30
+
20
31
First, run the development server:
21
32
22
33
```bash
@@ -27,75 +38,46 @@ yarn dev
27
38
28
39
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
29
40
30
-
You can start editing the page by modifying `pages/index.tsx`. The page auto-updates as you edit the file.
31
-
32
-
[API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.ts`.
33
-
34
-
The `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages.
35
-
36
-
37
-
### Local Integration Setup
41
+
See [HACKING](./HACKING.md) for other development tricks, like development with a local PDS instance, or working with un-released changes to the `@atproto/api` package.
38
42
39
-
Ozone requires a PDS service to talk to, and it is convenient to point it to a local `dev-env` instance for testing during development.
43
+
## Contributions
40
44
41
-
1. In the separate [atproto project](https://github.com/bluesky-social/atproto), run the dev server using `yarn workspace @atproto/dev-env start`. This will run a PDS, seeded with some users and data for you.
42
-
2. Run the development server for Ozone using `yarn dev`. This will start running the Ozone frontend at `http://localhost:3000`.
43
-
3. Navigate to the login page in your browser, at [http://localhost:3000](http://localhost:3000).
44
-
4. Login using the atproto dev-env credentials, which you can find [here](https://github.com/bluesky-social/atproto/blob/a1240f0a37030766dfe0a2ccfdc2810432520ae9/packages/dev-env/src/mock/index.ts#L59-L84). For development some example login credentials that would are:
45
-
- Service URL: http://localhost:2583
46
-
- Account handle: alice.test
47
-
- Password: hunter2
48
-
- Admin Token: admin-pass
45
+
> While we do accept contributions, we prioritize high quality issues and pull requests. Adhering to the below guidelines will ensure a more timely review.
49
46
50
-
### Working with unpublished changes to the `@atproto/api` package
47
+
**Rules:**
51
48
52
-
In the course of development there may be updates to the atproto client that are not yet published to npm, but you would like to use with Ozone. Here's the workflow for using unpublished changes to the @atproto/api package:
49
+
- We may not respond to your issue or PR.
50
+
- We may close an issue or PR without much feedback.
51
+
- We may lock discussions or contributions if our attention is getting DDOSed.
52
+
- We do not provide support for build issues.
53
53
54
-
1. Ensure the [atproto/](https://github.com/bluesky-social/atproto) project lives as a sibling to the [ozone/](https://github.com/bluesky-social/ozone) project on your filesystem (or adjust the path used in step 4).
54
+
**Guidelines:**
55
55
56
-
```
57
-
~/Documents/bluesky
58
-
❯ ls -l
59
-
total 19856
60
-
drwxr-xr-x 22 user group 704 Jan 19 15:51 atproto
61
-
drwxr-xr-x 24 user group 768 Jan 24 19:17 ozone
62
-
```
56
+
- Check for existing issues before filing a new one, please.
57
+
- Open an issue and give some time for discussion before submitting a PR.
58
+
- If submitting a PR that includes a lexicon change, please get sign off on the lexicon change _before_ doing the implementation.
59
+
- Issues are for bugs & feature requests related to the TypeScript implementation of atproto and related services.
60
+
- For high-level discussions, please use the [Discussion Forum](https://github.com/bluesky-social/atproto/discussions).
61
+
- Stay away from PRs that:
62
+
- Refactor large parts of the codebase
63
+
- Add entirely new features without prior discussion
64
+
- Change the tooling or frameworks used without prior discussion
65
+
- Introduce new unnecessary dependencies
63
66
64
-
2. Checkout whichever branch you'd like to use in atproto/ for the @atproto/api package.
67
+
Remember, we serve a wide community of users. Our day-to-day involves us constantly asking "which top priority is our top priority." If you submit well-written PRs that solve problems concisely, that's an awesome contribution. Otherwise, as much as we'd love to accept your ideas and contributions, we really don't have the bandwidth.
65
68
66
-
```
67
-
~/Documents/bluesky
68
-
❯ cd atproto
69
-
~/Documents/bluesky/atproto
70
-
❯ git checkout main
71
-
```
69
+
## Security disclosures
72
70
73
-
3. Build the @atproto/api package in atproto/.
71
+
If you discover any security issues, please send an email to [email protected]. The email is automatically CCed to the entire team, and we'll respond promptly. See [SECURITY.md](https://github.com/bluesky-social/atproto/blob/main/SECURITY.md) for more info.
74
72
75
-
```
76
-
~/Documents/bluesky/atproto
77
-
❯ yarn
78
-
```
73
+
## License
79
74
80
-
4. Update the package.json file in ozone/ to reference the local build of @atproto/api.
75
+
This project is dual-licensed under MIT and Apache 2.0 terms:
- MIT license ([LICENSE-MIT](https://github.com/bluesky-social/ozone-ui/blob/main/LICENSE-MIT) or <http://opensource.org/licenses/MIT>)
78
+
- Apache License, Version 2.0, ([LICENSE-APACHE](https://github.com/bluesky-social/ozone-ui/blob/main/LICENSE-APACHE) or <http://www.apache.org/licenses/LICENSE-2.0>)
88
79
89
-
5. Ask yarn to reinstall, creating the link from ozone/ to the local build of @atproto/api.
90
-
```
91
-
~/Documents/bluesky/ozone
92
-
❯ yarn
93
-
```
94
-
6. Take care not to check-in the changes to package.json and yarn.lock that came from the temporary linking. When you're done, you can reset everything with:
95
-
```
96
-
~/Documents/bluesky/ozone
97
-
❯ git checkout package.json yarn.lock && yarn
98
-
```
80
+
Downstream projects and end users may chose either license individually, or both together, at their discretion. The motivation for this dual-licensing is the additional software patent assurance provided by Apache 2.0.
0 commit comments