(!) - 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
- 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)
- 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
- 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
- parts of map like geo
sudo systemctl stop nginx sudo certbot certonly --standalone -d api.pixelbattles.ru sudo systemctl start 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;
}