Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Version 3 - Phase 1 #423

Open
wants to merge 957 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
957 commits
Select commit Hold shift + click to select a range
d5c934f
add ReceiverReport.
m1k1o Jul 3, 2022
8ada021
reset counters when closed.
m1k1o Jul 4, 2022
e37f5c1
fix bug.
m1k1o Jul 4, 2022
8f83089
move to /health and exclude metrics from logging.
m1k1o Jul 4, 2022
bf47e5a
cleanup.
m1k1o Jul 4, 2022
2bf83f6
add metrics to config.
m1k1o Jul 4, 2022
1064cc4
go mod upgrade.
m1k1o Jul 4, 2022
e181abf
set version from git tag.
m1k1o Jul 4, 2022
43fa56f
update gitignore.
m1k1o Jul 13, 2022
a1f7b23
add openapi.
m1k1o Jul 13, 2022
7574371
add build scripts.
m1k1o Jul 13, 2022
41df1bc
build - ensure plugins folder exists.
m1k1o Jul 13, 2022
3cd59b9
rename module name from gitlab to github.
m1k1o Jul 13, 2022
b7926c3
dev config add round.
m1k1o Jul 13, 2022
d088294
add plugins folder.
m1k1o Jul 13, 2022
52ba7d9
plugins buildvcs.
m1k1o Jul 14, 2022
c85d1f3
Add GitHub Actions (#2)
m1k1o Jul 14, 2022
472fd5f
add LICENSE.
m1k1o Jul 18, 2022
c725e96
change shutdown order. (#4)
m1k1o Jul 28, 2022
babddac
Go generics and changes in v1.18 (#5)
m1k1o Jul 28, 2022
81531d7
websocket move cursor & scroll.
m1k1o Jul 21, 2022
f4a4e01
webrtc SetCursorPosition.
m1k1o Jul 21, 2022
7d5ec01
add button events to control WebSocket.
m1k1o Jul 22, 2022
a6813f9
ws control buttons & keys add optional pos.
m1k1o Jul 22, 2022
5612b80
add README.
m1k1o Jul 31, 2022
6911509
Temporary websocket disconnect handling (#6)
m1k1o Aug 26, 2022
291750c
fix build git repo check.
m1k1o Aug 26, 2022
938ea38
fix build git repo check.
m1k1o Aug 27, 2022
0488976
gstreamer add API.
m1k1o Sep 10, 2022
6d2ba7b
name caps and encoder.
m1k1o Sep 10, 2022
c793ff1
kataras/[email protected] Once workaround.
m1k1o Sep 11, 2022
d35c237
gst remove main loop.
m1k1o Sep 11, 2022
23ce5c0
switch to gtk popup window.
m1k1o Sep 11, 2022
f512b97
fix whitespace.
m1k1o Sep 13, 2022
d5863d8
set WebRTC video codec H.264 profile-level-id to 42e01f to be compati…
m1k1o Sep 13, 2022
a6f1176
create pipeline fn return error.
m1k1o Sep 17, 2022
3eedbbf
broadcast pipeline fn.
m1k1o Sep 17, 2022
da24f92
broadcast log url.
m1k1o Sep 21, 2022
194fd29
capture fix replaces for pipelines.
m1k1o Sep 21, 2022
c34a76c
broadcast url in config.
m1k1o Sep 21, 2022
0badeee
Fix cursor size. (#10)
m1k1o Oct 4, 2022
095f9fe
gst as interface. (#11)
m1k1o Oct 13, 2022
5ad5daa
Stream bucket manager (#12)
m1k1o Oct 17, 2022
d608e31
check if we already listen to requested stream. (#13)
m1k1o Oct 23, 2022
e0bee67
fix build pipe redirection.
m1k1o Oct 24, 2022
6067367
Capture bandwidth switch (#14)
m1k1o Oct 25, 2022
d894e88
fix generic plugin error message.
m1k1o Oct 25, 2022
3d131bb
supervisord separate logging.
m1k1o Nov 10, 2022
4824764
supervisord add -s flag (#15)
m1k1o Nov 11, 2022
2cb64d1
send heartbeat with ping. (#16)
m1k1o Nov 11, 2022
7946afa
fix dev supervisord.
m1k1o Nov 11, 2022
09f213f
remove /var/log/neko fom Dockerfile.
m1k1o Nov 11, 2022
833c0d5
upgrade dependencies.
m1k1o Nov 28, 2022
05c4fa3
fix indirect dependencies.
m1k1o Nov 28, 2022
919a554
track WriteSample fix log message.
m1k1o Dec 12, 2022
6b39e8e
Fix WebRTC mux issues (#17)
m1k1o Dec 13, 2022
b49f545
properly log unhandled panics.
m1k1o Dec 15, 2022
fb8462b
Add WebRTC candidate metrics (#18)
m1k1o Dec 16, 2022
3c3042d
Add batch endpoint (#19)
m1k1o Jan 9, 2023
b793e5b
add stereo to opus codec.
m1k1o Jan 12, 2023
6574470
login logout proper http error handling.
m1k1o Jan 12, 2023
e5c8446
MemberProvider: add variable names.
m1k1o Jan 12, 2023
319bd45
add multiuser provider.
m1k1o Jan 12, 2023
af95cb4
change dummy to noauth mode.
m1k1o Jan 12, 2023
2ff8d84
fix errors.
m1k1o Jan 12, 2023
107eba2
select profile primarily from corresponding session, if exists.
m1k1o Jan 12, 2023
1fb5ae4
allow multiple users to be set in object provider.
m1k1o Jan 12, 2023
7601af9
fix default pipeline.
m1k1o Jan 12, 2023
8381020
default provider: multiuser.
m1k1o Jan 12, 2023
bd04ca8
fix missing error message on wrong config.
m1k1o Jan 12, 2023
67cc23f
circular list for free keycodes.
m1k1o Jan 14, 2023
eac9796
no free keycodes, pick last two keycodes anyway.
m1k1o Jan 14, 2023
ba0dea8
switch to xkb.
m1k1o Jan 15, 2023
813a0da
WebRTC ping over data channel (#23)
m1k1o Jan 20, 2023
94981e3
chore: add more resolutions
Jan 23, 2023
a72648c
add dockerfile. (#22)
m1k1o Jan 27, 2023
e80ae80
set answering dtls role as server. (#24)
m1k1o Jan 30, 2023
2364fac
WebRTC congestion control (#26)
m1k1o Feb 6, 2023
bfabee1
gst emit video keyframe on demand. (#27)
m1k1o Feb 7, 2023
f8b128e
Custom sizes with XRandR (#25)
m1k1o Feb 14, 2023
124c5ae
Wait for keyframe on switching streams (#28)
m1k1o Feb 14, 2023
0086900
GCC No-Op Pacer (#29)
m1k1o Feb 14, 2023
30200d4
Switch to listeners for webrtc pause (#31)
m1k1o Feb 20, 2023
ccaaaca
do not round height to 8.
m1k1o Feb 20, 2023
64abfd0
cursors increase max serial to 300.
m1k1o Feb 20, 2023
a4a3ff7
Toggle estimator config (#32)
m1k1o Feb 26, 2023
977662a
Upgrade to go 1.20 (#30)
m1k1o Feb 26, 2023
a9e6736
upgrade deps.
m1k1o Feb 28, 2023
38fc21a
upgrade deps.
m1k1o Feb 28, 2023
17bfd2d
Sample listeners chan (#33)
m1k1o Mar 6, 2023
0de8ffc
update screen rate set. (#34)
m1k1o Mar 13, 2023
9936a04
add passive estimator & REMB back. (#35)
m1k1o Mar 13, 2023
362bcd3
nvidia switch to virtualgl 3.1.
m1k1o Mar 17, 2023
fa69ddd
streamsink total bytes metric counter.
m1k1o Mar 17, 2023
0950863
session save & load from a file. (#38)
m1k1o Mar 27, 2023
f8edd98
configure pulseaudio from env. (#39)
m1k1o Mar 27, 2023
08a5d5a
Split ICE Servers to frontend and backend (#37)
m1k1o Mar 27, 2023
2ff47ac
fix: ensure webrtc close is executed only once.
m1k1o Mar 27, 2023
43a649d
websockets set max payload log size. (#42)
m1k1o Mar 31, 2023
1a752e4
Add plugins required flag (#40)
m1k1o Mar 31, 2023
bdebcd3
pulseaudio log level error.
m1k1o Mar 31, 2023
3f117af
upgrade go dependencies. (#41)
m1k1o Mar 31, 2023
e66cd39
Build gstreamer in nvidia image (#36)
m1k1o Apr 4, 2023
7cd469f
cleanup peer.
m1k1o Apr 10, 2023
9928fee
refactor metrics.
m1k1o Apr 10, 2023
ec8560b
add session & metrics to webrtc peer.
m1k1o Apr 10, 2023
9d362ed
move change funcs to peer.
m1k1o Apr 10, 2023
5f0aafc
remove deprecated functions.
m1k1o Apr 10, 2023
c676d7a
move collectors to metrics.
m1k1o Apr 10, 2023
dfea7fc
refactor handler.
m1k1o Apr 10, 2023
a2e0aee
receiver stop error reporting.
m1k1o Apr 11, 2023
728e27d
minor changes, moving things around.
m1k1o Apr 16, 2023
e8aab98
refactro cursor image and pos.
m1k1o Apr 16, 2023
c2b29cc
handle use webrtc logger.
m1k1o Apr 16, 2023
1ba561b
fix logging.
m1k1o Apr 16, 2023
fcf6822
move estimator to peer.
m1k1o Apr 16, 2023
3f375c0
fix track rtcp & paused.
m1k1o Apr 16, 2023
5a2fcc1
move consts.
m1k1o Apr 16, 2023
43f8fe3
webrtc peer do not set nil conn.
m1k1o Apr 17, 2023
0ea1c28
Refactor websocket session sync (#44)
m1k1o Apr 23, 2023
3ef4c5c
use DefaultRootWindow.
m1k1o Apr 18, 2023
47a3f6d
twice toggle maximizes for fullscreen.
m1k1o Apr 18, 2023
466185f
fixed by using XFlush.
m1k1o Apr 18, 2023
c70c821
add unminimize.
m1k1o Apr 22, 2023
52b4cbc
add path prefix to server.
m1k1o Apr 28, 2023
a75ae18
add plugin scope to settings.
m1k1o Apr 28, 2023
a4f9f0b
CI build variant.
m1k1o Apr 28, 2023
173bc6b
CI build variant only on tag.
m1k1o Apr 28, 2023
b8fccc4
add settings plugins to openapi.
m1k1o Apr 28, 2023
cf4e066
add locked controls to settings.
m1k1o May 14, 2023
0760976
set all settings initially using config.
m1k1o May 14, 2023
8240139
add locked_controls to openapi.
m1k1o May 14, 2023
848556a
add time stats to state.
m1k1o May 14, 2023
8660c1a
add sessions to API.
m1k1o May 14, 2023
3e8d686
Bandwidth estimator refactor (#46)
m1k1o May 15, 2023
dfc7eb3
Fix noisy errors (#49)
m1k1o May 19, 2023
ac76c81
Upgrade go dependencies (#50)
m1k1o May 19, 2023
6b3bc17
update README.md.
m1k1o May 21, 2023
e83c447
fix control give API.
m1k1o Jun 6, 2023
cf17f4f
add estimator comments to config.
m1k1o Jun 7, 2023
e3e9d16
Refactor signaling for video and audio (#51)
m1k1o Jun 26, 2023
ecc68dd
fix devcontainer.
m1k1o Jul 8, 2023
4cb1b3e
upgrade go dependencies. (#52)
m1k1o Jul 16, 2023
ea5517b
Xorg input driver (#53)
m1k1o Aug 17, 2023
25a6586
fix devcontainer.
m1k1o Aug 17, 2023
05403cc
Upgrade to bookworm (#54)
m1k1o Sep 5, 2023
5ceef39
maintain backward compatibility with g_memdup.
m1k1o Sep 6, 2023
d82b640
xf86-input-neko: do not turn off device on uninit.
m1k1o Sep 7, 2023
6f61e02
xf86-input-neko: extract init touch to own func.
m1k1o Sep 7, 2023
5f321b5
cleanup nvidia dockerfile.
m1k1o Sep 9, 2023
a392163
fix runtime dockerfile.
m1k1o Sep 10, 2023
4da7869
Add Xorg modifiers (#57)
m1k1o Sep 11, 2023
d09e421
Remove dbus (#55)
m1k1o Sep 11, 2023
8753e7b
members: add multiuser profile.
m1k1o Sep 25, 2023
801b5b1
Bump golang.org/x/net from 0.12.0 to 0.17.0 (#58)
dependabot[bot] Nov 1, 2023
cd9d31a
upgrade go deps.
m1k1o Nov 6, 2023
501280f
server proxy, router opts and optional CORS.
m1k1o Nov 19, 2023
9d1ea87
members bulk delete. (#59)
m1k1o Nov 19, 2023
d9bcde3
sha256 hash password. (#60)
m1k1o Nov 19, 2023
b40c077
file chooser dialog diabled by default.
m1k1o Nov 24, 2023
3dbcc41
upload drop to config.
m1k1o Nov 24, 2023
014c8fa
Bullseye alongside Bookworm (#61)
m1k1o Jan 26, 2024
670b8ec
upgrade go deps.
m1k1o Jan 26, 2024
45ca1b7
fix docker nvidia.
m1k1o Jan 26, 2024
9353773
fix vscode settings.
m1k1o Jan 26, 2024
ce3830f
fix: base64 password hash in file members provider to avoid json issues.
m1k1o Feb 14, 2024
5a16143
fix mode info memory leak.
m1k1o Feb 20, 2024
8981051
remove webrtc.iceservers from flags.
m1k1o Feb 20, 2024
00c7e6d
Move X11 error handler registration to before screen sets (#62)
tt2468 Mar 27, 2024
a178bed
add filetransfer plugin.
m1k1o Apr 19, 2024
a61eade
add LockedLogins to settings.
m1k1o Apr 20, 2024
3ee6078
add filetransfer lock.
m1k1o Apr 20, 2024
0f45aa3
implement control protection.
m1k1o Apr 21, 2024
b90eb87
unify types.ScreenSize and add ID to screen size update.
m1k1o May 3, 2024
d47302e
remo superfluous structs from keyboard api.
m1k1o May 3, 2024
57ffca0
add session to settings change.
m1k1o May 4, 2024
b562c79
remove goformat from settings.json.
m1k1o May 4, 2024
416faa3
add session to host change.
m1k1o May 6, 2024
0e8108e
add session delete and disconnect to API.
m1k1o May 9, 2024
59b2fae
add control requesting to the host.
m1k1o May 10, 2024
fc3b6f2
OnProfileChanged add new & old profile.
m1k1o Jun 9, 2024
f65f262
WIP: add chat plugin.
m1k1o Jun 9, 2024
ae117cc
fix dev scripts.
m1k1o Jun 16, 2024
5a04066
add PluginSettings unmarshaller.
m1k1o Jun 16, 2024
43467dc
filetransfer: use enabeld in settings and profile.
m1k1o Jun 16, 2024
37b131c
fix plugin settings unmarshal by changing to "name.key".
m1k1o Jun 16, 2024
da45f62
chat: use can send & can receive in settings and profile.
m1k1o Jun 16, 2024
cfb423b
move server to server directory.
m1k1o Jun 23, 2024
0ee11b6
add AV1 codec.
m1k1o Jul 18, 2024
b5c3f8d
WIP: legacy config integration.
m1k1o Jul 18, 2024
e0a4b39
add v2 compatible config.
m1k1o Jul 18, 2024
96ab1c5
allow setting desktop / capture display separately.
m1k1o Jul 18, 2024
6a9cb24
add V2: prefix to all config options.
m1k1o Jul 18, 2024
6d72a79
fix broadcast typo.
m1k1o Jul 18, 2024
1fd4e53
WIP: legacy WS.
m1k1o Jul 19, 2024
1c4fc46
WIP legacy adapter.
m1k1o Jul 20, 2024
1d8ec58
legacy adapter - add http calls.
m1k1o Jul 20, 2024
9ea9c1c
add legacy webrtc handler.
m1k1o Jul 20, 2024
6573069
handle sessions on connected / disconnected.
m1k1o Jul 20, 2024
c2b9c70
add emote & fix host id.
m1k1o Jul 20, 2024
610457a
add ADMIN_CONTROL.
m1k1o Jul 20, 2024
1559128
fix control give for users.
m1k1o Jul 21, 2024
8ce16e2
fix PluginSettings.
m1k1o Jul 21, 2024
3965bb8
fix locks.
m1k1o Jul 21, 2024
0f1f218
legacy: fix error reporting.
m1k1o Jul 22, 2024
679157e
update profile on join.
m1k1o Jul 24, 2024
45c90ce
fix logging and server addr.
m1k1o Jul 24, 2024
df64a53
fix.
m1k1o Jul 24, 2024
3d0b245
locks send immediate ID.
m1k1o Jul 24, 2024
ceb4e0c
implement mute / unmute.
m1k1o Jul 25, 2024
d62acec
add Kick.
m1k1o Jul 25, 2024
60910c2
api profile endpoint use default data.
m1k1o Jul 25, 2024
b9ff172
only update name in profile.
m1k1o Jul 25, 2024
168507d
add evns to launch.
m1k1o Sep 6, 2024
15e805c
rename package.
m1k1o Sep 6, 2024
17467dc
update dev runtime config.
m1k1o Sep 6, 2024
6a8f805
legacy: implement screen resolution API.
m1k1o Sep 6, 2024
a1f2e37
legacy: add stats.
m1k1o Sep 6, 2024
47153d3
legacy: implement screenshot function.
m1k1o Sep 6, 2024
94717bd
legacy: implement files.
m1k1o Sep 6, 2024
356a566
Merge branch 'demodesk-v3' into v3
m1k1o Sep 6, 2024
4f401ac
implement session stats, fixes last (admin|user) left at won't work f…
m1k1o Sep 7, 2024
82aa680
fix kicked message for legacy implementation.
m1k1o Sep 7, 2024
e018bcc
legacy: only update name if its different.
m1k1o Sep 7, 2024
db297d2
fix legacy display name.
m1k1o Sep 7, 2024
b3b31fb
disable legacy mode if wanted.
m1k1o Sep 7, 2024
373e997
add legacy simulcast stream that shows pointer.
m1k1o Sep 7, 2024
6aac5da
legacy: fix sendControlHost.
m1k1o Sep 7, 2024
136d2ba
legacy hack: file transfer enabled in init.
m1k1o Sep 7, 2024
13f9147
legacy: update dispaly name only if not set.
m1k1o Sep 7, 2024
daf8f79
update client to include username when connecting to websocket.
m1k1o Sep 7, 2024
bba8fce
legacy only - implement ban.
m1k1o Sep 7, 2024
0c1d7ef
base: move files to resources.
m1k1o Sep 8, 2024
b617c5c
update server dockerfiles.
m1k1o Sep 8, 2024
3d7be66
move devs to client & server.
m1k1o Sep 8, 2024
e16eefc
add client dockerfile.
m1k1o Sep 8, 2024
284ca5e
add arm & intel Dockerfiles to server.
m1k1o Sep 8, 2024
a4c1f98
fix arm dockerfile.
m1k1o Sep 8, 2024
d42165a
fix structs alignment.
m1k1o Sep 8, 2024
bbefb39
fix uint64 and cursors on 32bit systems.
m1k1o Sep 8, 2024
38e8ac3
split base build to multiple dockerfiles.
m1k1o Sep 8, 2024
e719109
fix control give.
m1k1o Sep 8, 2024
6fbdea9
fix duplicate screen sizes.
m1k1o Sep 8, 2024
3cacb90
fix build.
m1k1o Sep 8, 2024
5c91621
legacy: fix banned ip.
m1k1o Sep 8, 2024
063fa88
fix legacy capture pipeline.
m1k1o Sep 8, 2024
b7fb738
legacy websockets: add mutex.
m1k1o Sep 8, 2024
a0565dd
fix backend response error.
m1k1o Sep 8, 2024
cd87c48
fix nvidia dockerfiles.
m1k1o Sep 15, 2024
a569f72
ignore irrelevant legacy ws events.
m1k1o Sep 15, 2024
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
11 changes: 0 additions & 11 deletions .docker/.env.default
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,3 @@
# this is how will be your images called. you can change it to your fork.
# only need to do this once. here.
BUILD_IMAGE="m1k1o/neko"

# this is where your services will be acessible
CLIENT_PORT=8080
SERVER_PORT=8081

# on which image you want to test it
SERVER_TAG="chromium"

# this is needed for WebRTC. specify your local IP address and free UDP port range.
SERVER_EPR=55000-55009
SERVER_IP=10.8.0.1
44 changes: 18 additions & 26 deletions .docker/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,39 +2,31 @@

If you want to contribute, but do not want to install anything on your host system, we got you covered. You only need docker. Technically, it could be done using vs code development in container, but this is more fun:).

You need to copy `.env.default` to `.env` and customize values.

## Step 1: Building server

- `./build` - You can use this command to build your specified `SERVER_TAG` along with base image.

If you want, you can build other tags. `base` tag needs to be build first:

- `./build base`
- `./build firefox`
- `./build chromium`
- `./build google-chrome`
- etc...
## Running server (while developing)

## Step 2: Starting server
Go to `../server/dev` and run:

- `./start-server` - Starting server image you specified in `.env`.
- `./start-server -r` - Shortcut for rebuilding server binary and then starting.
- `./build` - Build server binary.
- `./start` - Start server.
- `./rebuild` - Rebuild server binary and restart server while it is running.

If you are changing something in the server code, you do not want to rebuild container each time. You can just rebuild your binary:
## Running client (while developing)

- `./rebuild-server` - Rebuild only server binary.
- `./rebuild-server -f` - Force to rebuild whole Golang environment (you should do this only of you change some dependencies).
Go to `../client/dev` and run:

## Step 3: Serving client
- `./npm install` - Install dependencies first.
- `./serve` - Start client with live reload.

- `./serve-client` - Serving vue.js client.
- `./serve-client -i` - Install all dependencies.
## Building a new image after changes

## Debug
You need to copy `.env.default` to `.env` and customize values.

You can navigate to `CLIENT_PORT` and see live client there. It will be connected to your local server on `SERVER_PORT`.
- `./build` - You can use this command to build base image. It will be used for building other images.

If you are leaving client as is and not changing it, you don't need to start `./serve-client` and you can access server's GUI directly on `SERVER_PORT`.
If you want, you can build other tags. `base` tag needs to be build first:

Feel free to open new PR.
- `./build base`
- `./build firefox`
- `./build chromium`
- `./build google-chrome`
- etc...
138 changes: 0 additions & 138 deletions .docker/base/Dockerfile

This file was deleted.

148 changes: 0 additions & 148 deletions .docker/base/Dockerfile.arm

This file was deleted.

Loading
Loading