I hereby claim:
- I am valeriansaliou on github.
- I am valerian (https://keybase.io/valerian) on keybase.
- I have a public key ASAoeFcGq8cTxJMg6NVKnrqOa8YafbxlxNmDmA00RyqURwo
To claim this, I am signing this object:
| #!/bin/sh | |
| if [ "$1" ]; then | |
| # Upgrade both GitLab CE + GitLab CI | |
| upgrade_gitlab_ce "$1"; | |
| upgrade_gitlab_ci "$1"; | |
| else | |
| echo "[upgrade_gitlab] Please feed me with upgrade branch (X-X-stable)" | |
| fi |
| // CRISP_READY_TRIGGER is read as a "crisp ready" callback | |
| CRISP_READY_TRIGGER = function() { | |
| // Set user email once crisp is ready | |
| $crisp.user.email.set("USER_EMAIL_THERE"); | |
| }; |
| #!/bin/bash | |
| # Script to instruct the Mac how to route packets to the | |
| # software defined network where containers created via boot2docker | |
| # reside. This lets you casually directly to ports (ssh, http, etc. etc.) | |
| # on those containers. | |
| function ERROR(){ echo "ERROR: $*" ; } | |
| function FAIL(){ echo "FAILING: $*" ; exit 1; } |
| defaults delete com.apple.dock expose-animation-duration; killall Dock |
| #!/bin/bash | |
| # Cron wrapper, call this directly from your cron. Depends on renew script (letsencrypt_manual_renew.sh). | |
| [email protected] | |
| RENEWLOG=`/srv/data_server/certs/tools/letsencrypt_manual_renew.sh 2>&1` | |
| rc=$? | |
| if [[ $rc -ne 0 ]]; then |
I hereby claim:
To claim this, I am signing this object:
| # Those rules protect HTTP/HTTPS services for both IPv4 and IPv6 sources as such: | |
| # 1. Prevent a /32 IPv4 or /64 IPv6 to open more than 10 HTTPS?/TCP connections per second (the limit is high, but this still shield against some attacks) — DROP TCP packets in this case, to avoid generating egress traffic sending a RST | |
| # 2. Limit ingress bandwidth to HTTPS? services to 32KB/sec (adjust to your needs, in my case it is used to shield a WebSocket backend against incoming WebSocket message floods) | |
| # 3. Limit the number of simultaneous ongoing connections to HTTPS? to 40 (also, high limit, adjust to your needs) | |
| # The protections those rules offer: | |
| # 1. Prevent crypto-DOS (ie. a client that proceed too many key exchanges and thus exhaust server CPU) | |
| # 2. Prevent WebSocket floodings (eg. I use this for Socket.IO, which has no efficient way to rate-limit received messages before they get parsed) | |
| # 3. Prevent ephemeral TCP port exhaustion due to a client holding too many TCP connections | |
| # 4. Prevent IPv6 rotation attac |
| { | |
| "dependencies": { | |
| "request-promise": "4.2.2", | |
| "request": "2.83.0", | |
| "promise-seq": "2.0.1" | |
| } | |
| } |
| var mongoose = require("mongoose"); | |
| var SonicChannelIngest = require("sonic-channel").Ingest; | |
| var MessageModel = mongoose.model("message", new mongoose.Schema({ | |
| session_id : String, | |
| website_id : String, | |
| type : String, | |
| content : Object | |
| })); |
| var mongoose = require("mongoose"); | |
| var SonicChannelSearch = require("sonic-channel").Search; | |
| var MessageModel = mongoose.model("message", new mongoose.Schema({ | |
| website_id : String, | |
| type : String, | |
| content : Object | |
| })); | |
| var query_count = 0; |