Adiciona screenshots, SECURITY, CONTRIBUTING, atualiza README e LICENSE

This commit is contained in:
2026-04-26 12:42:01 -03:00
parent 85c337acb0
commit c5d4eadada
9 changed files with 65 additions and 5 deletions
+33
View File
@@ -0,0 +1,33 @@
# Contributing to DecapStream
## Running locally
```bash
npm install
npm run dev
```
In dev mode, all `supervisorctl` and `captureThumb` calls are mocked with console logs — no Supervisord or ffmpeg required.
## Before submitting a PR
- Run `npm run lint` and fix any errors
- Run `npx tsc --noEmit` if you changed types, interfaces, or added imports
- Keep changes focused — one concern per PR
## What's welcome
- Bug fixes
- Documentation improvements
- New stream configuration options
- UI improvements
## What to discuss first
For larger changes (new architecture, new dependencies, significant behavior changes), open an issue first to align on the approach before investing time in implementation.
## Stack
- Next.js 15 + TypeScript + Tailwind CSS v4
- Flat file persistence (`streams.json`) — no database
- Supervisord for process management (mocked in dev)
+2 -2
View File
@@ -1,6 +1,6 @@
MIT License # MIT License
Copyright (c) 2026 Kralot Copyright 2026 Eduardo Riguetto (kralot / riguettodev)
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal
+16 -3
View File
@@ -1,7 +1,19 @@
# DecapStream <p align="center">
<img src="./public/web-app-manifest-192x192.png" width="96" />
</p>
<h1 align="center">Decap Stream</h1>
Turn any web page into an RTMP/HLS stream. Chromium renders the page, ffmpeg captures it, MediaMTX publishes it. Built for NOC environments and digital signage. Turn any web page into an RTMP/HLS stream. Chromium renders the page, ffmpeg captures it, MediaMTX publishes it. Built for NOC environments and digital signage.
## Screenshots
![Dashboard](./screenshots/dashboard.png)
<p align="center">
<img src="./screenshots/stream-config.png" alt="Stream Config" width="49%" />
<img src="./screenshots/login.png" alt="Login Page" width="49%" />
</p>
## How it works ## How it works
Each stream runs its own isolated stack inside the container: Each stream runs its own isolated stack inside the container:
@@ -149,8 +161,9 @@ In dev mode (`NODE_ENV !== "production"`), all `supervisorctl` and `captureThumb
- [MediaMTX](https://github.com/bluenviron/mediamtx) - [MediaMTX](https://github.com/bluenviron/mediamtx)
- [HLS.js](https://github.com/video-dev/hls.js/) - [HLS.js](https://github.com/video-dev/hls.js/)
- [noVNC](https://novnc.com/) - [noVNC](https://novnc.com/)
- Chromium, ffmpeg - [FFmpeg](https://ffmpeg.org)
- [Chromium](https://www.chromium.org)
## License ## License
MIT [MIT](/LICENSE)
+14
View File
@@ -0,0 +1,14 @@
# Security Policy
## Reporting a Vulnerability
If you discover a security vulnerability, **please do not open a public issue**. This allows time to investigate and release a fix before the issue is publicly disclosed.
Report vulnerabilities by email to: **contact@riguetto.dev**
Include in your report:
- Description of the vulnerability
- Steps to reproduce
- Potential impact
You can expect a response within 72 hours. Once the issue is confirmed, a fix will be prioritized and a patched release will be made available before any public disclosure.
Binary file not shown.

After

Width:  |  Height:  |  Size: 180 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 648 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 746 KiB