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

Server issue (Not a complain, a query) #515

Open
ghost opened this issue Oct 14, 2022 · 21 comments
Open

Server issue (Not a complain, a query) #515

ghost opened this issue Oct 14, 2022 · 21 comments

Comments

@ghost
Copy link

ghost commented Oct 14, 2022

Right now as I am writing this, snapdrop.net isn't working with the error being The Snapdrop-Server cannot be reached.
This isn't a complain, I just wanna learn what does it mean exactly? What server is snapdrop talking about?

Would also appreciate if someone could explain how WebRTC works in a nutshell.

@Bellisario
Copy link
Contributor

Also for me, very strage...
Waiting that the problem is solved, meanwhile you can try using my Node.js version here:
https://node-snapdrop.onrender.com/


@RobinLinus is there any other strange server error causing this issue?

@JustSch
Copy link

JustSch commented Oct 14, 2022

Also if you'd prefer a server independent version you can use my desktop version node-snapdrop-electron

@Bellisario
Copy link
Contributor

Update

Seems Snapdrop is working properly now!

@nikkehtine
Copy link

Snapdrop is still down :/

@JustSch
Copy link

JustSch commented Oct 16, 2022

It does seem to be down again. I wonder what keeps causing it to go down.
Edit: It is up again

@Bellisario
Copy link
Contributor

Seems to be up another time for me

@RobinLinus
Copy link
Collaborator

@Bellisario looks like the fix made it worse, no?

@fm-sys
Copy link
Contributor

fm-sys commented Oct 20, 2022

looks like the fix made it worse, no?

Probably same as before... Nevertheless rather unsatisfactory unfortunately :-/

@Bellisario
Copy link
Contributor

Bellisario commented Oct 20, 2022

@Bellisario looks like the fix made it worse, no?

Yes, it looks like that's not solving the problem...
I think in this case the best solution could be (for now) to use something like pm2 to restart the server on crash (or something similar with Docker).

@svenjacobs
Copy link

As snapdrop.net is frequently not available (just have a look at the issues 😱), is there anything that we can do to improve the stability of the service? What are the actual reasons for the recurring downtimes? Could you please share some more details @RobinLinus?

@RobinLinus
Copy link
Collaborator

RobinLinus commented Oct 26, 2022

@svenjacobs looks like the server breaks whenever there is too much load. Also someone keeps trying to DoS the Snapdrop server. We started to port it to Rust for better stability and performance #521

@tuupola
Copy link

tuupola commented Oct 26, 2022

Down again.

$ curl --include https://snapdrop.net/
curl: (7) Failed to connect to snapdrop.net port 443 after 39 ms: Connection refused

@Pkcarreno
Copy link

hi @RobinLinus ,This server problem you mention is related to the loading of the page? what about giving pwa offline capability to the page? could it work to solve this problem?

@schlagmichdoch
Copy link
Contributor

no matter what you do to the client side you will always need a running server for Snapdrop to work. This includes the (already implemented) offline capabality by caching as PWA via serviceworker.

@nikkehtine
Copy link

The domain is registered for Domain.com, and their DDoS protection is $15 a month. Maybe we could donate towards it?

@schlagmichdoch
Copy link
Contributor

The domain is registered for Domain.com, and their DDoS protection is $15 a month. Maybe we could donate towards it?

I guess before paying for DDoS protection, we could first deploy snapdrop containerized as @Bellisario suggested with pm2 or docker. I provided two PRs that modify the docker configuration a bit to enable the use of the provided docker-compose on production #550 #549
@RobinLinus what do you think? Could you deploy snapdrop dockerized to increase stability?

@SnapDrop SnapDrop deleted a comment from danielehrhardt Dec 23, 2022
@KaKi87
Copy link

KaKi87 commented Dec 26, 2022

the best solution could be (for now) to use something like pm2 to restart the server on crash (or something similar with Docker).

Here's a dependency-free alternative :

process.on(
    'uncaughtException',
    () => {
        process.once(
            'exit',
            () => spawn(
                process.argv.shift(),
                process.argv,
                {
                    cwd: process.cwd(),
                    detached: true,
                    stdio: 'inherit'
                }
            )
        );
        process.exit();
    }
);

@schlagmichdoch
Copy link
Contributor

the best solution could be (for now) to use something like pm2 to restart the server on crash (or something similar with Docker).

Here's a dependency-free alternative :

process.on(
    'uncaughtException',
    () => {
        process.once(
            'exit',
            () => spawn(
                process.argv.shift(),
                process.argv,
                {
                    cwd: process.cwd(),
                    detached: true,
                    stdio: 'inherit'
                }
            )
        );
        process.exit();
    }
);

Nice!

When using this snippet I got the following error message:

ReferenceError: spawn is not defined

This import fixed the issue:

var {spawn} = require('child_process')

Reference:
https://stackoverflow.com/a/44643419/14678591

@KaKi87
Copy link

KaKi87 commented Dec 30, 2022

Yeah I didn't add the import statement sorry. ^^

@Rihcus
Copy link

Rihcus commented Jan 9, 2023

Also if you'd prefer a server independent version you can use my desktop version node-snapdrop-electron

Does this work completely offline or does it rely on google's stun servers?

@JustSch
Copy link

JustSch commented Jan 9, 2023

Completely offline. Funny enough my Internet went out (router was still functional just no connection to the outside internet) when I first started working on it and it still worked

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests