Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

romasan/node-rtmp-stream

Repository files navigation

basic

(!) - high priority

  • auth by twitch
  • auth by discord
  • auth by telegram
  • auth by vkplay
  • auth by vk
  • auth by steam
  • countdown
  • githib actions deploy (front only?)
  • ssl support
  • bot protection
  • session caching
  • replace res/ -> assets/
  • online users list
  • reset countdown on login
  • buy pixel-battle.ru | pixelbattles.ru
  • use one countdown for every session with one authorization
  • fix zoom on click on non canvas and "pixel" elements
  • chat mute user
  • add datetime for logs
  • chat moderation (delete all by user)
  • read chat from stream(s)?
  • support for multiple colors
  • twitch extension (https://dev.twitch.tv/docs/extensions/)
  • rename all qq to admin or super
  • use one countdown for active unauthorized users with one ip address
  • do not allow more than one (or percentage of the number online) user with one IP address
  • integration tests
  • webassembly + canvas =) rust?
  • add to telegram web app
  • add qr to stream) (like https://github.com/hip-hyena/PaintBot)
  • chat rate limit
  • check has new banned users/IP in pixels.log
  • rating for groups/squads/tags
  • achievements!
    • used all colors;
    • joined the squad;
    • put 100, 1k, 10k, 100k pixels;
    • put dots without leaving for 1, 8, 24 hours;
    • participated every day for a week;
  • chat slow mode
  • chat messages from user
  • chat delete all for banned
  • fix typescript warnings and remove all "any" plug
  • use account uuid for stats
  • moderators tools
    • users on selected region, with count of pixel (ban status, count of pixel inside / outside region, registration date, chat messages count)
    • ban / mute controls in "whose pixel" panel, ant banned status
    • checbox, translate to chat message " is banner by "
    • control for fast show activity map for session / username in "whose pixel" panel
    • chat moderation in separate wide window
    • update moderation panel layout
    • add popup messages on ban user (banned / already banned)
    • tool for restore canvas without pixels of banned users (with pause mode)
    • preview canvas without pixels of banned users
    • activity map banned and unbanned (banned colors for sessions)
    • mute / ban with timeout
    • ban with chat access
    • admin add / remove moderators
    • log of moderation actions
    • newest map by index for session / nick / ip

admin panel

  • add admin route
  • update stream frame
  • cover up area
  • change countdown in runtime
  • preview last changes, heatmap, changes by user
  • change countdown for uuid/nick/ip
  • freeze area
  • statistic (online, total pixels, online/pixels by hour/day)
  • get pixel author (uuid, IP, nickname, auth service)
  • get users on IP address
  • ban by uuid (shadow)
  • ban by IP address (shadow)

server

  • backup frames / pixels for timelapse
  • auto restart on fail (fix ffmpeg problems)
  • auto restart: write process.pid to file
  • auto restart (use PM2)
  • freeze frame to stream from admin panel
  • move ssl handle to nginx? (https://www.sitepoint.com/configuring-nginx-ssl-node-js/)
  • const.js -> config.json
  • if not use database, replace: pixels.log, inout.png, pid, expands.log, messages.log, sessions/x/x/x/, sessions/auth.json, sessions/list, sessions/logout.log to DB/
  • sessios file structure like git objects a/b/c/abcdefg000000 -> ab/abcdefg000000
  • replace server/tools/getPixelInfo -> server/
  • remove event emitter
  • auto restart: add servise with chatbot for notification
  • fit the canvas into the frame
  • rotated access log
  • use database instead files
  • binary ws messages? (protobufjs)
  • merge token|uuid vars name?
  • use nestjs?
  • stress testing (apache benchmark?)
  • DDoS protection

web

  • drawing
  • zooming
  • select color
  • zooming at cursor
  • zooming at mobile
  • fix pixel cursor position
  • mobile layout
  • link to stream
  • contrast border for pixel placeholder
  • timelapse page
  • build svg inside page (https://github.com/albinotonnina/parcel-plugin-inlinesvg)
  • replace Bar panel to App
  • check is offline
  • FAQ page
  • fix layout after resize
  • dont rerender canvas conponent in update countdown timer (and on move pixel)
  • scale with canvas instead of css (for safari?)
  • decomposite canvas component by hooks (useDrag, useWheel, useTouch)
  • offline indicator
  • add react router and make SPA
  • play button in center of timelapse canvas
  • hash link to coordinate, like https://pixelbattles.ru/#100,200 go to position, scale, higlight pixel
  • fix countdown progress position on reload page
  • fix coundown on login to ended game

page with infinity map

  • parts of map like geo

configurate

how to update ssl certificate

sudo systemctl stop nginx
sudo certbot certonly --standalone -d api.pixelbattles.ru
sudo systemctl start nginx

nginx

sudo apt-get install nginx
sudo nginx
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/example
sudo ln -s /etc/nginx/sites-available/example /etc/nginx/sites-enabled/example
sudo vim /etc/nginx/sites-available/example
sudo /etc/init.d/nginx restart
sudo nginx -s reload

/etc/nginx/sites-available/example

server {
	listen 80;
	listen 443 ssl;
	server_name api.pixelbattles.ru;
	# allow 93.100.95.191;
	# deny all;
	# deny 192.3.228.238;
	location / {
		proxy_pass http://localhost:7000;
		proxy_http_version 1.1;
		proxy_set_header Upgrade $http_upgrade;
		proxy_set_header Connection 'upgrade';
		proxy_set_header Host $host;
		# proxy_set_header Forwarded $proxy_add_forwarded;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		# proxy_set_header X-Forwarded-For "$realip_remote_addr";
		proxy_cache_bypass $http_upgrade;
	}
	ssl_certificate /etc/letsencrypt/live/api.pixelbattles.ru/fullchain.pem;
	ssl_certificate_key /etc/letsencrypt/live/api.pixelbattles.ru/privkey.pem;
}

About

Canvas to RTMP stream broadcast tool

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

AltStyle によって変換されたページ (->オリジナル) /