.. | ||
.github | ||
.storybook | ||
.vscode | ||
components | ||
docs | ||
interfaces | ||
pages | ||
public | ||
services | ||
stories | ||
styles | ||
types | ||
utils | ||
.editorconfig | ||
.env.development | ||
.env.production | ||
.eslintignore | ||
.eslintrc.js | ||
.gitignore | ||
.prettierignore | ||
.prettierrc | ||
favicon.ico | ||
LICENSE | ||
next-env.d.ts | ||
next.config.js | ||
package-lock.json | ||
package.json | ||
postcss.config.js | ||
README.md | ||
renovate.json | ||
tsconfig.json |
Owncast Web
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
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 until /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:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
Style guide and components
We are currently experimenting with using Storybook to build components, experiment with styling, and have a single place to find colors, fonts, and other styles.
To work with Storybook:
npm run storybook