Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
602 commits
Select commit Hold shift + click to select a range
ff0f842
[mirotalksfu] - refactoring emoji sound
miroslavpejic85 Oct 29, 2025
7191e1c
[mirotalksfu] - ops, fix typo
miroslavpejic85 Oct 29, 2025
d8e8afb
[mirotalksfu] - add producer video/screen focus mode, update dep
miroslavpejic85 Oct 31, 2025
556e297
[mirotalksfu] - improve attachSinkId, update dep
miroslavpejic85 Oct 31, 2025
b93c91c
[mirotalksfu] - improve icegatheringstatechange logs
miroslavpejic85 Oct 31, 2025
e7967bd
[mirotalksfu] - add handleDropdownHover
miroslavpejic85 Nov 1, 2025
b1dc4a4
[mirotalksfu] - add attachParticipantsDropdownHover, fix dropdown typo
miroslavpejic85 Nov 1, 2025
cc3fe7f
[mirotalksfu] - improve audioConstraints
miroslavpejic85 Nov 1, 2025
d8d260a
[mirotalksfu] - fix typo
miroslavpejic85 Nov 1, 2025
5d61843
[mirotalksfu] - prevent memory leaks
miroslavpejic85 Nov 2, 2025
8e5c792
[mirotalksfu] - fix typo
miroslavpejic85 Nov 3, 2025
1a88a50
[mirotalksfu] - fix getIP, getIpSocket, update dep
miroslavpejic85 Nov 4, 2025
30efc3d
[mirotalksfu] - ops
miroslavpejic85 Nov 4, 2025
2510403
[mirotalksfu] - handle malformed URI
miroslavpejic85 Nov 4, 2025
d4d9ae9
[mirotalksfu] - add timeout 5s webhook
miroslavpejic85 Nov 4, 2025
d887fe9
[mirotalksfu] - log refactoring
miroslavpejic85 Nov 4, 2025
274d63c
[mirotalksfu] - add missing
miroslavpejic85 Nov 4, 2025
b26825f
[mirotalksfu] - logs refactoring
miroslavpejic85 Nov 4, 2025
0ee7da3
[mirotalksfu] - improve ice logs
miroslavpejic85 Nov 4, 2025
7233bd4
[mirotalksfu] - update dep
miroslavpejic85 Nov 5, 2025
6e99fc9
[mirotalksfu] - update dep
miroslavpejic85 Nov 6, 2025
8d23a5f
[mirotalksfu] - fix widget checkOnlineStatus, update dep
miroslavpejic85 Nov 8, 2025
dffc992
[mirotalksfu] - add support us section
miroslavpejic85 Nov 10, 2025
3d7d1de
[mirotalksfu] - fix typo, add events
miroslavpejic85 Nov 10, 2025
38d37f8
[mirotalksfu] - improve landing UI, update dep
miroslavpejic85 Nov 11, 2025
38250cc
[mirotalksfu] - improve landing
miroslavpejic85 Nov 11, 2025
a3e6413
[mirotalksfu] - add discord, update dep
miroslavpejic85 Nov 12, 2025
a2510dc
[mirotalksfu] - add missing OG
miroslavpejic85 Nov 12, 2025
bfa2df7
[mirotalksfu] - fix typo
miroslavpejic85 Nov 12, 2025
5ce39c1
[mirotalksfu] - use RNNoise by default
miroslavpejic85 Nov 13, 2025
b5623cf
[mirotalksfu] - disable RNNOise form config
miroslavpejic85 Nov 13, 2025
964bb58
[mirotalksfu] - improve landing support US
miroslavpejic85 Nov 13, 2025
2537637
[mirotalksfu] - keep aspect ratio settings
miroslavpejic85 Nov 13, 2025
ddb451e
[mirotalksfu] - fix typo [skip ci]
miroslavpejic85 Nov 13, 2025
02fe66d
[mirotalksfu] - fix typo [skip ci]
miroslavpejic85 Nov 13, 2025
5261bbe
[mirotalksfu] - ops
miroslavpejic85 Nov 13, 2025
839d07d
[mirotalksfu] - update dep
miroslavpejic85 Nov 13, 2025
b4fa6ed
[mirotalksfu] - make recording and rtmp dir configurable
miroslavpejic85 Nov 14, 2025
b2a41e5
[mirotalksfu] - fix activeRooms OG injection
miroslavpejic85 Nov 14, 2025
1106e19
[mirotalksfu] - add advanced settings for custom S3, update dep
miroslavpejic85 Nov 15, 2025
a0a4278
[mirotalksfu] - imporve landing support us footer
miroslavpejic85 Nov 16, 2025
e59b24b
[mirotalksfu] - fix typo
miroslavpejic85 Nov 16, 2025
cbffbcb
Fixup .env.template - rename AWS_S3_BUCKET_NAME to correct AWS_S3_BUCKET
BrutalBirdie Nov 16, 2025
8677c18
[mirotalksfu] - fix typo
miroslavpejic85 Nov 16, 2025
afaa45a
[mirotalksfu] - indent comment [skip ci]
miroslavpejic85 Nov 16, 2025
8f48f7e
[mirotalksfu] - add mime-type, update dep
miroslavpejic85 Nov 17, 2025
43f329a
[mirotalksfu] - refactor S3, update dep
miroslavpejic85 Nov 18, 2025
eed71dd
[mirotalksfu] - move [skip ci]
miroslavpejic85 Nov 18, 2025
6c29677
[mirotalksfu] - move [skip ci]
miroslavpejic85 Nov 18, 2025
aaa16f5
[mirotalksfu] - fix recording on leave room
miroslavpejic85 Nov 18, 2025
518f15e
[mirotalksfu] - fix typo, add showRecServerSideAdvice
miroslavpejic85 Nov 18, 2025
3c53f4a
[mirotalksfu] - move showRecServerSideAdvice, update dep
miroslavpejic85 Nov 18, 2025
cd2dbd5
[mirotalksfu] - fix rec on leave room, update dep
miroslavpejic85 Nov 19, 2025
e30c762
[mirotalksfu] - improve rec on leave room
miroslavpejic85 Nov 19, 2025
a8c0a7e
[mirotalksfu] - fix typo
miroslavpejic85 Nov 19, 2025
5d67f21
[mirotalksfu] - save rec if in progress on tab close, refreshing, pop…
miroslavpejic85 Nov 19, 2025
196b923
[mirotalksfu] - add cloudron.io in the readme, update dep
miroslavpejic85 Nov 21, 2025
0d0434a
[mirotalksfu] - update dep
miroslavpejic85 Nov 21, 2025
d7f08f2
[mirotalksfu] - improve landing
miroslavpejic85 Nov 22, 2025
2d0efca
[mirotalksfu] - add option widget draggable
miroslavpejic85 Nov 22, 2025
3d5b0dc
[mirotalksfu] - add missing supporUs
miroslavpejic85 Nov 22, 2025
21fce6e
[mirotalksfu] - add env, config version [skip ci]
miroslavpejic85 Nov 22, 2025
61082fc
[mirotalksfu] - add configurable max login attempts and block time
miroslavpejic85 Nov 23, 2025
b194b16
[mirotalksfu] - add missing
miroslavpejic85 Nov 23, 2025
19bdb45
[mirotalksfu] - fix typo
miroslavpejic85 Nov 23, 2025
c5e65cf
[mirotalksfu] - add participants button
miroslavpejic85 Nov 25, 2025
6a03599
[mirotalksfu] - fix typo
miroslavpejic85 Nov 25, 2025
a4a8802
[mirotalksfu] - move logic
miroslavpejic85 Nov 25, 2025
d4695eb
[mirotalksfu] - add participants badge
miroslavpejic85 Nov 25, 2025
c7816e3
[mirotalksfu] - fix toggleParticipants
miroslavpejic85 Nov 25, 2025
51b5322
[mirotalksfu] - update dep
miroslavpejic85 Nov 26, 2025
df5a218
[mirotalksfu] - add empityChat.svg
miroslavpejic85 Nov 26, 2025
ef27c00
[mirotalksfu] - add emptyTranscription.svg and logic
miroslavpejic85 Nov 26, 2025
2dca6d9
[mirotalksfu] - fix updateChatEmptyNotice
miroslavpejic85 Nov 26, 2025
50dea93
[mirotalksfu] - fix typo
miroslavpejic85 Nov 27, 2025
d8abf6c
[mirotalksfu] - update dep
miroslavpejic85 Nov 27, 2025
7daf86a
[mirotalksfu] - responsive badge
miroslavpejic85 Nov 27, 2025
8750654
[mirotalksfu] - enable light effect, update dep
miroslavpejic85 Nov 29, 2025
a10bbcd
[mirotalksfu] - improve UI
miroslavpejic85 Nov 29, 2025
f97c875
[mirotalksfu] - improve geoLocation error handle, update dep
miroslavpejic85 Nov 30, 2025
3e71fbf
[mirotalksfu] - improve whiteboard
miroslavpejic85 Dec 1, 2025
80fdeee
[mirotalksfu] - show whiteboard shortcuts, update dep
miroslavpejic85 Dec 1, 2025
4329a81
[mirotalksfu] - fix typo
miroslavpejic85 Dec 1, 2025
84114c6
[mirotalksfu] - fix wb undo-redo
miroslavpejic85 Dec 2, 2025
dadca30
[mirotalksfu] - fix
miroslavpejic85 Dec 2, 2025
60c5123
[mirotalksfu] - improve stick Note
miroslavpejic85 Dec 2, 2025
b46fee3
[mirotalksfu] - improve whiteboard
miroslavpejic85 Dec 2, 2025
eeb4766
[mirotalksfu] - fix typo
miroslavpejic85 Dec 2, 2025
27829e1
[mirotalksfu] - move wb eraser, hide extra buttons on wb transparent
miroslavpejic85 Dec 2, 2025
4ad1d0d
[mirotalksfu] - fix wb
miroslavpejic85 Dec 2, 2025
78ef8f3
[mirotalksfu] - improve whiteboard responsive UI, update dep
miroslavpejic85 Dec 3, 2025
5c99d6c
[mirotalksfu] - add missing
miroslavpejic85 Dec 3, 2025
b68b761
[mirotalksfu] - fix wb grid
miroslavpejic85 Dec 4, 2025
a466840
[mirotalksfu] - set color to whiteboardGridBtn
miroslavpejic85 Dec 4, 2025
4db15ea
[mirotalksfu] - fix wb clear, update dep
miroslavpejic85 Dec 4, 2025
fc87b23
[mirotalksfu] - fix typo
miroslavpejic85 Dec 4, 2025
1f49958
[mirotalksfu] - update readme [skip-ci]
miroslavpejic85 Dec 4, 2025
7240156
[mirotalksfu] - add slef-hosting section [skip ci]
miroslavpejic85 Dec 5, 2025
b4bb60b
[mirotalksfu] - update dep and readme
miroslavpejic85 Dec 5, 2025
d3930fc
[mirotalksfu] - fix typo
miroslavpejic85 Dec 5, 2025
f882086
[mirotalksfu] - add dockerignore
miroslavpejic85 Dec 6, 2025
fb766e4
[mirotalksfu] - ops [skip ci]
miroslavpejic85 Dec 6, 2025
58d1350
[mirotalksfu] - fix typo [skip ci]
miroslavpejic85 Dec 6, 2025
94dda11
[mirotalksfu] - fix login, update dep
miroslavpejic85 Dec 9, 2025
b658b55
[mirotalksfu] - fix typo, update dep
miroslavpejic85 Dec 9, 2025
04e522f
[mirotalksfu] - fix typo
miroslavpejic85 Dec 10, 2025
a16be0a
[mirotalksfu] - add data validation
miroslavpejic85 Dec 11, 2025
2390112
[mirotaksfu] - improve vodeo resizes, update dep
miroslavpejic85 Dec 11, 2025
b09b171
[mirotaksfu] - improvements
miroslavpejic85 Dec 11, 2025
595cdc6
[mirotalksfu] - improve whiteboard resize
miroslavpejic85 Dec 11, 2025
a275d03
[mirotalksfu] - fix and improve whiteboard, update dep
miroslavpejic85 Dec 13, 2025
6c06467
[mirotalksfu] - add missing
miroslavpejic85 Dec 13, 2025
057521d
[mirotalksfu] - add missing
miroslavpejic85 Dec 13, 2025
2a36e23
[mirotalksfu] - update dep
miroslavpejic85 Dec 15, 2025
019f5cf
[mirotalksfu] - fix, add quick audio/video devices switch
miroslavpejic85 Dec 15, 2025
70185f9
[mirotalksfu] - fix typo
miroslavpejic85 Dec 15, 2025
aa29bc4
[mirotalksfu] - fix typo
miroslavpejic85 Dec 15, 2025
0745430
[mirotalksfu] - fix typo
miroslavpejic85 Dec 15, 2025
4eabbff
[mirotalksfu] - fix typo
miroslavpejic85 Dec 16, 2025
5e92454
[mirotalksfu] - fix typo
miroslavpejic85 Dec 16, 2025
3487bfe
[mirotalksfu] - improve quick devices access UI
miroslavpejic85 Dec 16, 2025
5832375
[mirotalksfu] - improve UI
miroslavpejic85 Dec 16, 2025
4c03ea7
[mirotalksfu] - add speaker quick access
miroslavpejic85 Dec 16, 2025
3b5a53d
[mirotalksfu] - fix border
miroslavpejic85 Dec 16, 2025
be12ac2
[mirotalksfu] - add wake lock, update dep
miroslavpejic85 Dec 17, 2025
29981de
[mirotalksfu] - refactor noise processor
miroslavpejic85 Dec 17, 2025
f25f8c9
fixed WakeLock.js faulty script src path
MeikTranel Dec 17, 2025
cdfa870
[mirotalksfu] - applyKeepAwake-referenceError
miroslavpejic85 Dec 17, 2025
0c74ffb
[mirotalksfu] - fix typo
miroslavpejic85 Dec 17, 2025
75cca47
[mirotalksfu] - update dep
miroslavpejic85 Dec 18, 2025
9d7f460
[mirotalksfu] - improve error handling
miroslavpejic85 Dec 18, 2025
eebbb72
[mirotalksfu] - fix video circle
miroslavpejic85 Dec 18, 2025
0065517
[mirotalksfu] - remove not needed, update dep
miroslavpejic85 Dec 18, 2025
1956410
[mirotalksfu] - add init leave room, update dep
miroslavpejic85 Dec 18, 2025
06f4e4b
[mirotalksfu] - fix typo
miroslavpejic85 Dec 18, 2025
74fcec8
[mirotalksfu] - fix w/h
miroslavpejic85 Dec 18, 2025
389ad52
[mirotalksfu] - fix typo
miroslavpejic85 Dec 18, 2025
ac17f3b
[mirotalksfu] - improve quick devices access, fix test speaker, updat…
miroslavpejic85 Dec 19, 2025
8bfc188
[mirotalksfu] - add wb del shortcut, update dep
miroslavpejic85 Dec 19, 2025
640c888
[mirotalksfu] - refactoring
miroslavpejic85 Dec 19, 2025
d1b8c45
[mirotalksfu] - ops
miroslavpejic85 Dec 19, 2025
d700840
[mirotalksfu] - improve wb shortcuts UI popup
miroslavpejic85 Dec 19, 2025
8cb9af2
[mirotalksfu] - fix selection
miroslavpejic85 Dec 19, 2025
a249831
[mirotalksfu] - fix typo
miroslavpejic85 Dec 20, 2025
c4d85b8
[mirotalksfu] - #213 - move extra buttons
miroslavpejic85 Dec 21, 2025
f1d378b
[mirotalksfu] - move wb close button
miroslavpejic85 Dec 21, 2025
b38e543
[mirotalksfu] - improve session time, update dep, fix typo
miroslavpejic85 Dec 22, 2025
e69de49
[mirotalksfu] - fix typo
miroslavpejic85 Dec 22, 2025
2f96faf
[mirotalksfu] - update dep
miroslavpejic85 Dec 22, 2025
1dffaf9
[mirotalksfu] - update dep
miroslavpejic85 Dec 25, 2025
566cfaf
[mirotalksfu] - add random name
miroslavpejic85 Dec 25, 2025
816f196
[mirotalksfu] - add random room
miroslavpejic85 Dec 25, 2025
b0af244
[mirotalksfu] - hide buttons when whiteborad bg transparent
miroslavpejic85 Dec 25, 2025
f649125
[mirotalksfu] - ops
miroslavpejic85 Dec 25, 2025
11d2d78
[mirotalksfu] - fix whiteboard
miroslavpejic85 Dec 26, 2025
348b0b4
[mirotalksfu] - fix typo
miroslavpejic85 Dec 26, 2025
465937c
[mirotalksfu] - fix typo, update dep
miroslavpejic85 Dec 26, 2025
cfd29aa
[mirotalksfu] - improve settings UI
miroslavpejic85 Dec 26, 2025
2bf4ab5
[mirotalksfu] - fix typo
miroslavpejic85 Dec 26, 2025
1c9fe48
[mirotalksfu] - improve whiteboard
miroslavpejic85 Dec 26, 2025
7936cd1
[mirotalksfu] - imporve Chat UI 4 mobile
miroslavpejic85 Dec 27, 2025
a2f9521
[mirotalksfu] - move participants list btn
miroslavpejic85 Dec 28, 2025
da710fe
[mirotalksfu] - fix typo
miroslavpejic85 Dec 28, 2025
497054a
[mirotalksfu] - improve file sharing
miroslavpejic85 Dec 28, 2025
1453cbb
[mirotalksfu] - fix typo
miroslavpejic85 Dec 30, 2025
2b7d569
[mirotalksfu] - fix(client): defer initialization until socket is con…
Heartbreaker16 Jan 6, 2026
1aef104
fix(storage): add missing return in getItemLocalStorage
Heartbreaker16 Jan 7, 2026
3380d46
fix(client): allow re-join for ghost peers via peer_uuid
Heartbreaker16 Jan 7, 2026
ada55b7
refactor(client): cleanup socket listeners in clean function
Heartbreaker16 Jan 7, 2026
68204ac
[mirotalksfu] - Merge pull request #236 from Heartbreaker16/fix-clie…
miroslavpejic85 Jan 12, 2026
9664af7
[mirotalksfu] - Merge pull request #237 from Heartbreaker16/fix-client
miroslavpejic85 Jan 12, 2026
11c2980
[mirotalksfu] - update dep
miroslavpejic85 Jan 12, 2026
d4ac18f
[mirotalksfu] - update dep
miroslavpejic85 Jan 14, 2026
c65ea97
[mirotalksfu] - #239 mute if no audio, update dep
miroslavpejic85 Jan 15, 2026
96c5b85
[mirotalksfu] - change year
miroslavpejic85 Jan 15, 2026
5438139
[mirotalksfu] - update readme [skip ci]
miroslavpejic85 Jan 15, 2026
6d64dc6
[mirotalksfu] - improve screenshare encodings, update dep
miroslavpejic85 Jan 17, 2026
4574ada
[mirotalksfu] - update sponsor and dep
miroslavpejic85 Jan 19, 2026
5fcec1e
[mirotalksfu] - update dep
miroslavpejic85 Jan 20, 2026
de2ba59
[mirotalksfu] - add orange, update dep
miroslavpejic85 Jan 23, 2026
611337a
[mirotalksfu] - #240 rename Umami to Stats, update dep
miroslavpejic85 Jan 23, 2026
83e0d02
[mirotalksfu] - update dep
miroslavpejic85 Jan 28, 2026
ab628bc
[mirotalksfu] - update dep
miroslavpejic85 Jan 29, 2026
6cb877d
[mirotalksfu] - ops
miroslavpejic85 Jan 30, 2026
b047f44
[mirotalksfu] - update dep
miroslavpejic85 Feb 2, 2026
dd41360
[mirotalksfu] - add customRoom
miroslavpejic85 Feb 2, 2026
fc87f76
[mirotalksfu] - refactoring customize room
miroslavpejic85 Feb 2, 2026
577cb73
[mirotalksfu] - add home btn
miroslavpejic85 Feb 2, 2026
c9e8deb
[mirotalksfu] - update readme [skip ci]
miroslavpejic85 Feb 3, 2026
0a13bc6
[mirotalksfu] - improve btn UI
miroslavpejic85 Feb 3, 2026
a1c1bb4
[mirotalksfu] - fix duration
miroslavpejic85 Feb 3, 2026
b69a247
[mirotalksfu] - fix typo
miroslavpejic85 Feb 3, 2026
76ea8d1
[mirotalksfu] - fix exitRoom
miroslavpejic85 Feb 3, 2026
b7d40e5
[mirotalksfu] - fix typo, update dep
miroslavpejic85 Feb 5, 2026
f05cef9
[mirotalksfu] - update dep
miroslavpejic85 Feb 5, 2026
6f4e6e9
[mirotalksfu] - add random room button, update dep
miroslavpejic85 Feb 5, 2026
af8136f
[mirotalksfu] #241 - Fix mirrored video in fullscreen/privacy mode
miroslavpejic85 Feb 5, 2026
162a81c
[mirotalksfu] #241 - Fix typo
miroslavpejic85 Feb 5, 2026
4c9f46a
[mirotalksfu] - add missing, update dep
miroslavpejic85 Feb 7, 2026
1a7651d
[mirotalksfu] - refactor get audio constraints, update dep
miroslavpejic85 Feb 11, 2026
791bb20
[mirotalksfu] - refactoring
miroslavpejic85 Feb 11, 2026
0d538c4
[mirotalksfu] - fix typo
miroslavpejic85 Feb 11, 2026
d6720f5
[mirotalksfu] - toggle username on fs
miroslavpejic85 Feb 11, 2026
ec2c06c
[mirotalksfu] - fix typo
miroslavpejic85 Feb 11, 2026
b0ad6f1
[mirotalksfu] - add qr and share btn
miroslavpejic85 Feb 12, 2026
9266080
[mirotalksfu] - update link
miroslavpejic85 Feb 12, 2026
7f02359
[mirotalksfu] - update dep
miroslavpejic85 Feb 16, 2026
8be4b75
[mirotalksfu] - add video drawing mode, update dep
miroslavpejic85 Feb 17, 2026
92fa6f9
[mirotalksfu] - improve noise suppression, update dep
miroslavpejic85 Feb 18, 2026
f692be1
[mirotalksfu] - enable audio in getScreenConstraints
miroslavpejic85 Feb 18, 2026
1d6b3f5
[mirotalksfu] - fix recording on leave room
miroslavpejic85 Feb 18, 2026
ca3f2a7
[mirotalksfu] - update Rnnoise sync module
miroslavpejic85 Feb 18, 2026
3348235
[mirotalksfu] - fix audioContext for noise suppression...
miroslavpejic85 Feb 19, 2026
995ae89
[mirotalksfu] - fix audio echo
miroslavpejic85 Feb 19, 2026
7988616
[mirotalksfu] - add API endpoint to remotely end meetings
miroslavpejic85 Feb 19, 2026
e4fe117
[mirotalksfu] - fix screen share audio tab
miroslavpejic85 Feb 19, 2026
56d2bbf
[mirotalksfu] - update dep
miroslavpejic85 Feb 24, 2026
af9a224
[mirotalksfu] - auto-switch chat tab on new message when panel is clo…
miroslavpejic85 Feb 25, 2026
a600740
[mirotalksfu] - fix recording, update dep
miroslavpejic85 Feb 27, 2026
1f23fdf
[mirotalksfu] - fix typo
miroslavpejic85 Feb 27, 2026
9ca02b0
[mirotalksfu] - add rec indicator after peer name
miroslavpejic85 Feb 27, 2026
e5ca3ac
[mirotalksfu] - update dep
miroslavpejic85 Mar 9, 2026
886f5be
[mirotalksfu] - update dep
miroslavpejic85 Mar 11, 2026
93ee967
[mirotalksfu] - fix: show init screen (device/background selection) a…
miroslavpejic85 Mar 11, 2026
430b034
[mirotalksfu] - fix: resolve memory leaks causing OOM crash after pro…
miroslavpejic85 Mar 12, 2026
ae3e45e
[mirotalksfu] - fix: lock display name on init screen when HOST_PROTE…
miroslavpejic85 Mar 12, 2026
0b9307a
[mirotalksfu] - fix: resolve unnamed avatar voices by using correct A…
miroslavpejic85 Mar 12, 2026
a034803
[mirotalksfu] - fix: strip ANSI escape codes from Sentry log messages
miroslavpejic85 Mar 12, 2026
6a17c28
[mirotalksfu] - fix: preserve room parameter through login flow when …
miroslavpejic85 Mar 12, 2026
0ee7e9a
[mirotalksfu] - fix: move validation before debug log for roomAction …
miroslavpejic85 Mar 13, 2026
3d70eba
[mirotalksfu] - add HTTP server clientError handler for malformed req…
miroslavpejic85 Mar 13, 2026
f9658e6
[mirotalksfu] - update dep
miroslavpejic85 Mar 13, 2026
e50a0e2
[mirotalksfu] - update dep
miroslavpejic85 Mar 13, 2026
e8baf2d
[mirotalksfu] - fix: handle Video AI error message
miroslavpejic85 Mar 13, 2026
e8fcae3
[mirotalksfu] - migrate Video AI integration from HeyGen to LiveAvata…
miroslavpejic85 Mar 14, 2026
f1dda0f
[mirotalksfu] - fix lint
miroslavpejic85 Mar 14, 2026
348b3a8
[mirotalksfu] - add speech-to-text microphone button to VideoAI avata…
miroslavpejic85 Mar 15, 2026
f9c0418
[mirotalksfu] - fix: Video AI mobile speech - remove welcome message …
miroslavpejic85 Mar 15, 2026
3ff7703
[mirotalksfu] - add avatars count
miroslavpejic85 Mar 15, 2026
267da00
[mirotalksfu] - Improve VideoAI avatar selection UI
miroslavpejic85 Mar 15, 2026
ccfd71c
[mirotalksfu] - feat: add VideoAI session countdown timer in avatar h…
miroslavpejic85 Mar 15, 2026
fe7fbd8
[mirotalksfu] - #239 fix: mute remote video elements to bypass browse…
miroslavpejic85 Mar 15, 2026
94080cc
[mirotalksfu] - fix: make top sponsor div fully clickable instead of …
miroslavpejic85 Mar 16, 2026
b54fefa
[mirotalksfu] - improve avatar UI
miroslavpejic85 Mar 16, 2026
112ac88
[mirotalksfu] - fix: show clear rate-limit message on login page when…
miroslavpejic85 Mar 17, 2026
001556b
[mirotalksfu] - redesign login & waiting room pages
miroslavpejic85 Mar 17, 2026
b49a2ce
[mirotalksfu] - feat: add hero section with animated figure to login …
miroslavpejic85 Mar 17, 2026
2d03973
[mirotalksfu] - refactor: enlarge login/waiting cards and simplify vi…
miroslavpejic85 Mar 17, 2026
33da6be
[mirotalksfu] - Update .env.template: sync whoAreYou, login, and bran…
miroslavpejic85 Mar 17, 2026
1562c72
[mirotalksfu] - fix: prevent login/waiting room card squeezing on resize
miroslavpejic85 Mar 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# git folder
.git
.gitignore

# npm
node_modules
npm-debug.log
yarn-error.log

# build artifacts
dist
coverage

# mac
.DS_Store

# cache
.cache

# personal env
.env
460 changes: 460 additions & 0 deletions .env.template

Large diffs are not rendered by default.

7 changes: 4 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,18 +8,19 @@
node_modules
npm-debug.log

# package
package-lock.json

# cache
.cache

# personal
.env
config.js
docker-compose.yml
docker-push.sh
data
rec
rtmp
rnnoiseBuild
security

# virtual background
custom
1 change: 1 addition & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
.github
public/sfu
2 changes: 1 addition & 1 deletion .prettierrc.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module.exports = {
semi: true,
trailingComma: 'all',
trailingComma: 'es5', // Trailing commas only where valid in ES5 (objects, arrays, not function arguments)
singleQuote: true,
printWidth: 120,
tabWidth: 4,
Expand Down
7 changes: 4 additions & 3 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ WORKDIR /src

# Set environment variable to skip downloading prebuilt workers
ENV MEDIASOUP_SKIP_WORKER_PREBUILT_DOWNLOAD="true"
ENV NODE_ENV="production"

# Install necessary system packages and dependencies
RUN apt-get update \
Expand All @@ -19,9 +20,9 @@ RUN apt-get update \
# Rename config.template.js to config.js
COPY ./app/src/config.template.js ./app/src/config.js

# Copy package.json and install npm dependencies
COPY package.json .
RUN npm install
# Copy package*.json and install npm dependencies
COPY package*.json ./
RUN npm ci --only=production --silent

# Cleanup unnecessary packages and files
RUN apt-get purge -y --auto-remove \
Expand Down
319 changes: 247 additions & 72 deletions README.md

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions app/api/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ Embedding a meeting into a `service` or `app` requires using an `iframe` with th

```html
<iframe
allow="camera; microphone; display-capture; fullscreen; clipboard-read; clipboard-write; web-share; autoplay"
allow="camera; microphone; speaker-selection; display-capture; fullscreen; clipboard-read; clipboard-write; web-share; autoplay; picture-in-picture"
src="https://sfu.mirotalk.com/join/your_room_name"
style="height: 100vh; width: 100vw; border: 0px;"
></iframe>
Expand All @@ -55,7 +55,7 @@ Develop your `website` or `application`, and bring `video meetings` in with a si

```html
<iframe
allow="camera; microphone; display-capture; fullscreen; clipboard-read; clipboard-write; web-share; autoplay"
allow="camera; microphone; speaker-selection; display-capture; fullscreen; clipboard-read; clipboard-write; web-share; autoplay; picture-in-picture"
src="https://sfu.mirotalk.com/newroom"
style="height: 100vh; width: 100vw; border: 0px;"
></iframe>
Expand Down
8 changes: 5 additions & 3 deletions app/api/join/join.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,11 @@ async function getJoin() {
room: 'test',
roomPassword: false,
name: 'mirotalksfu',
audio: true,
video: true,
screen: true,
avatar: false,
audio: false,
video: false,
screen: false,
chat: false,
hide: false,
notify: true,
duration: 'unlimited',
Expand Down
8 changes: 5 additions & 3 deletions app/api/join/join.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,11 @@
"room" => "test",
"roomPassword" => false,
"name" => "mirotalksfu",
"audio" => true,
"video" => true,
"screen" => true,
"avatar" => false,
"audio" => false,
"video" => false,
"screen" => false,
"chat" => false,
"hide" => false,
"notify" => true,
"duration" => "unlimited",
Expand Down
8 changes: 5 additions & 3 deletions app/api/join/join.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,11 @@
"room": "test",
"roomPassword": "false",
"name": "mirotalksfu",
"audio": "true",
"video": "true",
"screen": "true",
"avatar": "false",
"audio": "false",
"video": "false",
"screen": "false",
"chat": "false",
"hide": "false",
"notify": "true",
"duration": "unlimited",
Expand Down
33 changes: 28 additions & 5 deletions app/api/join/join.sh
Original file line number Diff line number Diff line change
@@ -1,11 +1,34 @@
#!/bin/bash

# Configuration
API_KEY_SECRET="mirotalksfu_default_secret"
MIROTALK_URL="https://sfu.mirotalk.com/api/v1/join"
# Alternative URL for local testing:
# MIROTALK_URL="http://localhost:3010/api/v1/join"

curl $MIROTALK_URL \
--header "authorization: $API_KEY_SECRET" \
--header "Content-Type: application/json" \
--data '{"room":"test","roomPassword":"false","name":"mirotalksfu","audio":"true","video":"true","screen":"false","hide":"false","notify":"true","duration":"unlimited","token":{"username":"username","password":"password","presenter":"true", "expire":"1h"}}' \
--request POST
# Request data with proper JSON formatting
REQUEST_DATA='{
"room": "test",
"roomPassword": false,
"name": "mirotalksfu",
"avatar": false,
"audio": false,
"video": false,
"screen": false,
"chat": false,
"hide": false,
"notify": true,
"duration": "unlimited",
"token": {
"username": "username",
"password": "password",
"presenter": true,
"expire": "1h"
}
}'

# Make the API request
curl -X POST "$MIROTALK_URL" \
-H "Authorization: $API_KEY_SECRET" \
-H "Content-Type: application/json" \
-d "$REQUEST_DATA"
35 changes: 35 additions & 0 deletions app/api/meeting/endMeeting.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
'use strict';

async function endMeeting() {
try {
// Use dynamic import with await
const { default: fetch } = await import('node-fetch');

const API_KEY_SECRET = 'mirotalksfu_default_secret';
const MIROTALK_URL = 'https://sfu.mirotalk.com/api/v1/meeting';
// const MIROTALK_URL = 'http://localhost:3010/api/v1/meeting';

const ROOM = 'test'; // Room name to end

const response = await fetch(`${MIROTALK_URL}/${ROOM}`, {
method: 'DELETE',
headers: {
authorization: API_KEY_SECRET,
'Content-Type': 'application/json',
},
body: JSON.stringify({
// redirect: 'https://example.com/meeting-ended', // Optional: URL to redirect peers to (if empty, peers go to home page)
}),
});
const data = await response.json();
if (data.error) {
console.log('Error:', data.error);
} else {
console.log('result:', data);
}
} catch (error) {
console.error('Error fetching data:', error);
}
}

endMeeting();
35 changes: 35 additions & 0 deletions app/api/meeting/endMeeting.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
<?php

$API_KEY_SECRET = "mirotalksfu_default_secret";
$MIROTALK_URL = "https://sfu.mirotalk.com/api/v1/meeting";
// $MIROTALK_URL = "http://localhost:3010/api/v1/meeting";

$ROOM = "test";

// Optional: redirect URL (leave empty for home page)
$data = json_encode([
// 'redirect' => 'https://example.com/meeting-ended',
]);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "$MIROTALK_URL/$ROOM");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

$headers = [
'authorization:' . $API_KEY_SECRET,
'Content-Type: application/json'
];

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

curl_close($ch);

echo "Status code: $httpcode \n";
$data = json_decode($response);
echo "result: ";
print_r($data);
echo "\n";
29 changes: 29 additions & 0 deletions app/api/meeting/endMeeting.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# pip3 install requests
import requests
import json

API_KEY_SECRET = "mirotalksfu_default_secret"
MIROTALK_URL = "https://sfu.mirotalk.com/api/v1/meeting"
# MIROTALK_URL = "http://localhost:3010/api/v1/meeting"

ROOM = "test"

headers = {
"authorization": API_KEY_SECRET,
"Content-Type": "application/json",
}

# Optional: redirect URL (leave empty for home page)
data = {
# "redirect": "https://example.com/meeting-ended",
}

response = requests.delete(
f"{MIROTALK_URL}/{ROOM}",
headers=headers,
json=data
)

print("Status code:", response.status_code)
data = json.loads(response.text)
print("result:", data)
17 changes: 17 additions & 0 deletions app/api/meeting/endMeeting.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#!/bin/bash

API_KEY_SECRET="mirotalksfu_default_secret"
MIROTALK_URL="https://sfu.mirotalk.com/api/v1/meeting"
# MIROTALK_URL="http://localhost:3010/api/v1/meeting"

ROOM="test"

# Optional: redirect URL (leave empty object for home page)
# BODY='{"redirect": "https://example.com/meeting-ended"}'
BODY='{}'

curl "$MIROTALK_URL/$ROOM" \
--header "authorization: $API_KEY_SECRET" \
--header "Content-Type: application/json" \
--data "$BODY" \
--request DELETE
57 changes: 57 additions & 0 deletions app/api/swagger.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,39 @@ paths:
$ref: '#/definitions/MeetingResponse'
'403':
description: 'Unauthorized!'
/meeting/{room}:
delete:
tags:
- 'meeting'
summary: 'End meeting'
description: 'End an active meeting by room name. All connected peers will be disconnected and redirected to the specified URL or home page.'
parameters:
- in: path
name: room
required: true
type: string
description: 'The room name/ID of the meeting to end'
- in: body
name: body
required: false
description: 'Optional body with redirect URL'
schema:
$ref: '#/definitions/EndMeetingRequest'
consumes:
- 'application/json'
produces:
- 'application/json'
security:
- secretApiKey: []
responses:
'200':
description: 'Meeting ended successfully'
schema:
$ref: '#/definitions/EndMeetingResponse'
'403':
description: 'Unauthorized!'
'404':
description: 'Room not found'
/join:
post:
tags:
Expand Down Expand Up @@ -162,6 +195,9 @@ definitions:
name:
type: string
default: 'mirotalksfu'
avatar:
type: ['boolean', 'string'] # Allow boolean or string type
default: false
audio:
type: boolean
default: false
Expand All @@ -171,6 +207,9 @@ definitions:
screen:
type: boolean
default: false
chat:
type: boolean
default: false
hide:
type: boolean
default: false
Expand All @@ -197,6 +236,22 @@ definitions:
expire:
type: string
default: '1h'
EndMeetingRequest:
type: object
properties:
redirect:
type: string
description: 'URL to redirect peers to after the meeting ends. If empty, peers are redirected to the home page.'
default: ''
EndMeetingResponse:
type: 'object'
properties:
success:
type: boolean
message:
type: string
room:
type: string
JoinResponse:
type: 'object'
properties:
Expand All @@ -212,6 +267,8 @@ definitions:
properties:
name:
type: string
avatar:
type: string
presenter:
type: boolean
video:
Expand Down
Loading