Outline Server, developed by Jigsaw. The Outline Server is a proxy server that runs a Shadowsocks instance and provides a REST API for access key management. https://getoutline.org/
Find a file
cornzzy ee039ca596
fix(server): block access when traffic limit is set to 0 bytes
* Fix isOverDataLimit logic to stop allowing 0 traffic byte

issue #1515 

This if statement is just wrong and doesn't block access when traffic limit is set to 0 byte. This one character fixes it.

Now if we create a new access key, set the limit to 0 before first usage, the client no longer will be able to connect.

* Rename `isOverDataLimit` to `reachedDataLimit`.

* Add a test case to prevent regression.

* Rename old variable.

* Update comment now that variable has changed meaning slightly.

Co-authored-by: Vinicius Fortuna <fortuna@users.noreply.github.com>

---------

Co-authored-by: sbruens <sbruens@users.noreply.github.com>
Co-authored-by: Vinicius Fortuna <fortuna@users.noreply.github.com>
2024-07-24 15:21:29 -04:00
.github ci(server): run CI job daily so we catch issues with runner changes (#1567) 2024-07-23 14:28:42 -04:00
docs chore(docs): update README to reflect manager move (#1519) 2024-03-12 15:09:01 -04:00
scripts build: use Task (#1535) 2024-04-17 19:48:23 -04:00
src fix(server): block access when traffic limit is set to 0 bytes 2024-07-24 15:21:29 -04:00
third_party Remove Makefile (#1540) 2024-04-19 10:50:43 -06:00
.browserslistrc chore(devtools): non-build updates from client (#1103) 2022-06-03 10:08:21 -04:00
.clang-format import code 2018-03-14 17:52:39 -04:00
.dockerignore Add .dockerignore 2018-05-30 23:35:11 -04:00
.editorconfig Fix lint 2022-03-09 23:10:15 +00:00
.eslintignore Add newlines 2022-03-10 17:10:36 +00:00
.eslintrc.json chore: add lint rule to prevent unnecessary public modifiers (#1557) 2024-07-23 14:28:57 -04:00
.gitallowed Fix eslint annotations 2022-03-10 17:19:27 +00:00
.gitignore Remove Makefile (#1540) 2024-04-19 10:50:43 -06:00
.npmrc Refactor 2022-05-13 11:58:52 -04:00
.nvmrc chore: upgrade node to lts/hydrogen (#1365) 2023-10-16 11:47:42 -04:00
.prettierignore Add newline 2022-03-10 17:07:39 +00:00
.prettierrc.json Rename Prettier config 2022-03-09 23:16:11 +00:00
.shellcheckrc Migrate from Yarn to Node lts/gallium (#1004) 2021-11-05 16:40:34 -04:00
commitlint.config.js chore: delete manager and update server_manager/README.md (#1511) 2024-02-22 13:16:40 -05:00
CONTRIBUTING.md build: use Task (#1535) 2024-04-17 19:48:23 -04:00
go.mod build: use Task (#1535) 2024-04-17 19:48:23 -04:00
go.sum build: use Task (#1535) 2024-04-17 19:48:23 -04:00
jasmine.json Fix lint 2022-03-09 23:10:15 +00:00
LICENSE import code 2018-03-14 17:52:39 -04:00
package-lock.json feat(metrics_server): add support for ASN (#1542) 2024-04-26 20:08:49 -04:00
package.json build: use Task (#1535) 2024-04-17 19:48:23 -04:00
README.md build: use Task (#1535) 2024-04-17 19:48:23 -04:00
Taskfile.yml Remove Makefile (#1540) 2024-04-19 10:50:43 -06:00
tools.go build: use Task (#1535) 2024-04-17 19:48:23 -04:00
tsconfig.json chore: upgrade webpack to v5 to support lts/hydrogen (#1422) 2023-10-11 10:44:36 -04:00

Outline Server

Build and Test Mattermost Reddit

Outline Server is the component that provides the Shadowsocks service (via outline-ss-server) and a service management API. You can deploy this server directly following simple instructions in this repository, or if you prefer a ready-to-use graphical interface you can use the Outline Manager.

Components:

  • Outline Server (src/shadowbox): The core proxy server that runs and manages outline-ss-server, a Shadowsocks backend. It provides a REST API for access key management.

  • Metrics Server (src/metrics_server): A REST service for optional, anonymous metrics sharing.

Join the Outline Community by signing up for the IFF Mattermost!

Shadowsocks and Anti-Censorship

Outline's use of Shadowsocks means it benefits from ongoing improvements that strengthen its resistance against detection and blocking.

Key Protections:

  • AEAD ciphers are mandatory.
  • Probing resistance mitigates detection techniques.
  • Protection against replayed data.
  • Variable packet sizes to hinder identification.

See Shadowsocks resistance against detection and blocking.

Installation

Prerequisites

  • Node LTS (lts/hydrogen, version 18.16.0)
  • NPM (version 9.5.1)
  • Go 1.21+
  1. Install dependencies

    npm install
    
  2. Start the server

    ./task shadowbox:start
    

    Exploring further options:

    • Refer to the README: Find additional configuration and usage options in the core server's README.
    • Learn about the build system: For in-depth build system information, consult the contributing guide.
  3. To clean up

    ./task clean