t1enne c8b5c013ef Prettified Code! 2 年之前
..
.storybook da153b83c9 Update some links in storybook readme. 2 年之前
.vscode 72c01e1b9a Fix web project build errors 2 年之前
assets 9bb37679c0 Add some images+icons to assets section 2 年之前
components c8b5c013ef Prettified Code! 2 年之前
docs 72c01e1b9a Fix web project build errors 2 年之前
interfaces 19e4e99127 First pass at the social/federated chat component. Closes #2172 2 年之前
pages 215a3096db Do not allow enabling federation features on if not port 443. Closes #2008 2 年之前
public 6de93f9651 Move the favicons 2 年之前
services 65b6feb40d Do not point to localhost 2 年之前
stories 88919efde9 Add read-write chat embed. Closes #1906 2 年之前
style-definitions a9f97346a7 added chat bg variable and updated bg color to match design 2 年之前
styles a9f97346a7 added chat bg variable and updated bg color to match design 2 年之前
types a521ba21d8 Add admin field for setting offline message. Closes #1901 2 年之前
utils fcf488c577 Fix slider marks by changing the corresponding labels to non-empty string (#2171) 2 年之前
.env.development c7dc2a4030 blah 4 年之前
.env.production 3eb7b8b84a Support API calls without auth and without cors 4 年之前
.eslintignore da2fb45d21 Configure eslint action 3 年之前
.eslintrc.js a91a2229bc changed tsconfig to have absolute imports "~/components/*" 2 年之前
.gitignore 3ce6fd4cb3 Add support for less variables and using a custom theme 2 年之前
.prettierignore fe6c285b43 Add linting and code formatting 4 年之前
.prettierrc 72c01e1b9a Fix web project build errors 2 年之前
LICENSE 76d281f35c Initial commit 4 年之前
README.md 2ea638909d docs: add how-to docs for creating components (#2124) 2 年之前
favicon.ico a062856726 a bit of refactor, use context for overall broacast status; move files around for routing 4 年之前
next-env.d.ts 084a01fb02 Admin social features (#408) 2 年之前
next.config.js cedfd18208 Fix next builds 2 年之前
package-lock.json cd0db12ac6 chore(deps): update typescript-eslint monorepo to v5.39.0 2 年之前
package.json cd0db12ac6 chore(deps): update typescript-eslint monorepo to v5.39.0 2 年之前
postcss.config.js 1c77219a75 First pass at component library 2 年之前
renovate.json 72c01e1b9a Fix web project build errors 2 年之前
tsconfig.json a91a2229bc changed tsconfig to have absolute imports "~/components/*" 2 年之前

README.md

Owncast Web Frontend

The Owncast web frontend is a Next.js project with React components, TypeScript, Sass styling, using Ant Design UI components.

Getting Started

First, install the dependencies.

npm install --include=dev

Components and Styles

You can start the Storybook UI for exploring, testing, and developing components by running:

npm run storybook

This allows for components to be made available without the need of the server to be running and changes to be made in isolation.

Contribute

  1. Find a component that hasn't yet been worked on by looking through the UIv2 milestone and the sidebar of components in storybook.
  2. See if you can have an example of this functionality in action via the Owncast Demo Server or Owncast Nightly Build so you know how it's supposed to work if it's interactive.
  3. Visit the Docs tab to read any specific documentation that may have been written about how this component works.
  4. Go to the Canvas tab of the component you selected and see if there's a Design attached to it.
  5. If there is a design, then that's a starting point you can use to start building out the component.
  6. If there isn't, then visit the Owncast Demo Server, the Owncast Nightly Build, or the proposed v2 design for some ways to start.
  7. If no design exists, then you can ask around the Owncast chat for help, for come up with your own ideas!
  8. No designs are stuck in stone, and we're using this as an opportunity to level up the UI of Owncast, so all ideas are welcome.

See the extra how-to guide for components here: Components How-to.

Run the web project

Make sure you're running an instance of Owncast on localhost:8080, as your copy of the admin will look to use that as the API.

Next, start the web project with npm.

npm run dev

Update the project

You can add or edit a pages by modifying pages/something.js. The page auto-updates as you edit the file.

Routes will automatically be available for this new page components.

Since this project hits API endpoints you should make requests in componentDidMount, and not in getStaticProps, since they're not static and we don't want to fetch them at build time, but instead at runtime.

A list of API end points can be found here: https://owncast.online/api/development/

Admin Authentication

The pages under /admin require authentication to make API calls.

Auth: HTTP Basic

username: admin

pw: [your streamkey]

Learn More

To learn more about Next.js, take a look at the following resources: