diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 3b66b7db4..34aad3723 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,4 +1,4 @@ -* @Jigsaw-Code/outline-dev +* @OutlineFoundation/outline-dev /src/server_manager/model/ @fortuna /src/shadowbox/ @fortuna diff --git a/README.md b/README.md index 9ab5ac450..dfb518e4e 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,12 @@ # Outline Server -![Build and Test](https://github.com/Jigsaw-Code/outline-server/actions/workflows/build_and_test_debug.yml/badge.svg?branch=master) [![Mattermost](https://badgen.net/badge/Mattermost/Outline%20Community/blue)](https://community.internetfreedomfestival.org/community/channels/outline-community) [![Reddit](https://badgen.net/badge/Reddit/r%2Foutlinevpn/orange)](https://www.reddit.com/r/outlinevpn/) +![Build and Test](https://github.com/OutlineFoundation/outline-server/actions/workflows/build_and_test_debug.yml/badge.svg?branch=master) [![Mattermost](https://badgen.net/badge/Mattermost/Outline%20Community/blue)](https://community.internetfreedomfestival.org/community/channels/outline-community) [![Reddit](https://badgen.net/badge/Reddit/r%2Foutlinevpn/orange)](https://www.reddit.com/r/outlinevpn/) -Outline Server is the component that provides the Shadowsocks service (via [outline-ss-server](https://github.com/Jigsaw-Code/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](https://github.com/Jigsaw-Code/outline-apps/). +Outline Server is the component that provides the Shadowsocks service (via [outline-ss-server](https://github.com/OutlineFoundation/tunnel-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](https://github.com/OutlineFoundation/outline-apps/). **Components:** -- **Outline Server** ([`src/shadowbox`](src/shadowbox)): The core proxy server that runs and manages [outline-ss-server](https://github.com/Jigsaw-Code/outline-ss-server/), a Shadowsocks backend. It provides a REST API for access key management. +- **Outline Server** ([`src/shadowbox`](src/shadowbox)): The core proxy server that runs and manages [outline-ss-server](https://github.com/OutlineFoundation/tunnel-server/), a Shadowsocks backend. It provides a REST API for access key management. - **Metrics Server** ([`src/metrics_server`](src/metrics_server)): A REST service for optional, anonymous metrics sharing. diff --git a/docs/shadowsocks.md b/docs/shadowsocks.md index e8f426e95..35b899f46 100644 --- a/docs/shadowsocks.md +++ b/docs/shadowsocks.md @@ -20,6 +20,6 @@ The censors used to block Shadowsocks, but Shadowsocks has evolved, and in 2021, In 2022 China started blocking seemingly random traffic ([report](https://www.opentech.fund/news/exposing-the-great-firewalls-dynamic-blocking-of-fully-encrypted-traffic/)). While there is no evidence they could detect Shadowsocks, the protocol ended up blocked. -As a reponse, we [added a feature to the Outline Client](https://github.com/Jigsaw-Code/outline-apps/pull/1454) that allows service managers to specify a **[connection prefix disguise](https://www.reddit.com/r/outlinevpn/wiki/index/prefixing/)** to be used in the Shadowsocks initialization, which can be used to bypass the blocking in China by making it look like a protocol that is allowed. +As a reponse, we [added a feature to the Outline Client](https://github.com/OutlineFoundation/outline-apps/pull/1454) that allows service managers to specify a **[connection prefix disguise](https://www.reddit.com/r/outlinevpn/wiki/index/prefixing/)** to be used in the Shadowsocks initialization, which can be used to bypass the blocking in China by making it look like a protocol that is allowed. Shadowsocks remains our protocol of choice because it's simple, well understood and very performant. Furthermore, it has an enthusiastic community of very smart people behind it. diff --git a/package-lock.json b/package-lock.json index f38ece7c3..300732801 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6044,8 +6044,7 @@ }, "node_modules/outline-shadowsocksconfig": { "version": "0.2.0", - "resolved": "git+ssh://git@github.com/Jigsaw-Code/outline-shadowsocksconfig.git#add590ed57277653d02dd2031ae301500ae881e1", - "license": "Apache-2.0", + "resolved": "git+ssh://git@github.com/OutlineFoundation/shadowsocksconfig.git#add590ed57277653d02dd2031ae301500ae881e1", "dependencies": { "ipaddr.js": "^2.0.0", "js-base64": "^3.5.2", @@ -9019,7 +9018,7 @@ "dependencies": { "ip-regex": "^4.1.0", "js-yaml": "^3.12.0", - "outline-shadowsocksconfig": "git+ssh://git@github.com/Jigsaw-Code/outline-shadowsocksconfig.git#add590ed57277653d02dd2031ae301500ae881e1", + "outline-shadowsocksconfig": "github:OutlineFoundation/shadowsocksconfig#v0.2.0", "prom-client": "^11.1.3", "randomstring": "^1.1.5", "restify": "^11.1.0", @@ -13191,7 +13190,7 @@ "@types/tmp": "^0.2.1", "ip-regex": "^4.1.0", "js-yaml": "^3.12.0", - "outline-shadowsocksconfig": "git+ssh://git@github.com/Jigsaw-Code/outline-shadowsocksconfig.git#add590ed57277653d02dd2031ae301500ae881e1", + "outline-shadowsocksconfig": "github:OutlineFoundation/shadowsocksconfig#v0.2.0", "prom-client": "^11.1.3", "randomstring": "^1.1.5", "restify": "^11.1.0", @@ -13211,8 +13210,8 @@ } }, "outline-shadowsocksconfig": { - "version": "git+ssh://git@github.com/Jigsaw-Code/outline-shadowsocksconfig.git#add590ed57277653d02dd2031ae301500ae881e1", - "from": "outline-shadowsocksconfig@github:Jigsaw-Code/outline-shadowsocksconfig#v0.2.0", + "version": "git+ssh://git@github.com/OutlineFoundation/shadowsocksconfig.git#add590ed57277653d02dd2031ae301500ae881e1", + "from": "outline-shadowsocksconfig@github:OutlineFoundation/shadowsocksconfig#v0.2.0", "requires": { "ipaddr.js": "^2.0.0", "js-base64": "^3.5.2", diff --git a/src/metrics_server/connection_metrics.spec.ts b/src/metrics_server/connection_metrics.spec.ts index 15fb97ca3..41aa3af44 100644 --- a/src/metrics_server/connection_metrics.spec.ts +++ b/src/metrics_server/connection_metrics.spec.ts @@ -34,7 +34,7 @@ const VALID_USER_REPORT2: HourlyUserConnectionMetricsReport = { /* * Legacy access key user reports to ensure backwards compatibility with servers not - * synced past https://github.com/Jigsaw-Code/outline-server/pull/1529). + * synced past https://github.com/OutlineFoundation/outline-server/pull/1529). */ const LEGACY_PER_KEY_USER_REPORT: HourlyUserConnectionMetricsReport = { userId: 'foo', @@ -43,7 +43,7 @@ const LEGACY_PER_KEY_USER_REPORT: HourlyUserConnectionMetricsReport = { /* * Legacy multiple countries user reports to ensure backwards compatibility with servers - * not synced past https://github.com/Jigsaw-Code/outline-server/pull/1242. + * not synced past https://github.com/OutlineFoundation/outline-server/pull/1242. */ const LEGACY_PER_LOCATION_USER_REPORT: HourlyUserConnectionMetricsReport = { userId: 'foobar', diff --git a/src/server_manager/README.md b/src/server_manager/README.md index 2672de2df..c0a8a86dd 100644 --- a/src/server_manager/README.md +++ b/src/server_manager/README.md @@ -1,5 +1,5 @@ # Outline Manager -> THIS PROJECT HAS MOVED TO A [NEW LOCATION](https://github.com/Jigsaw-Code/outline-apps/tree/master/): Outline Manager is now part of the [Outline Apps repository](https://github.com/Jigsaw-Code/outline-apps). +> THIS PROJECT HAS MOVED TO A [NEW LOCATION](https://github.com/OutlineFoundation/outline-apps/tree/master/server_manager): Outline Manager is now part of the [Outline Apps repository](https://github.com/OutlineFoundation/outline-apps). -We are keeping this folder to support legacy versions of the app that point to the old [server install script](https://github.com/Jigsaw-Code/outline-server/blob/master/src/server_manager/install_scripts/install_server.sh). +We are keeping this folder to support legacy versions of the app that point to the old [server install script](https://github.com/OutlineFoundation/outline-server/blob/master/src/server_manager/install_scripts/install_server.sh). diff --git a/src/server_manager/install_scripts/install_server.sh b/src/server_manager/install_scripts/install_server.sh index 39ba2b0d4..21256dcde 100755 --- a/src/server_manager/install_scripts/install_server.sh +++ b/src/server_manager/install_scripts/install_server.sh @@ -160,7 +160,7 @@ function fetch() { function install_docker() { ( # Change umask so that /usr/share/keyrings/docker-archive-keyring.gpg has the right permissions. - # See https://github.com/Jigsaw-Code/outline-server/issues/951. + # See https://github.com/OutlineFoundation/outline-server/issues/951. # We do this in a subprocess so the umask for the calling process is unaffected. umask 0022 fetch https://get.docker.com/ | sh @@ -440,7 +440,7 @@ Make sure to open the following ports on your firewall, router or cloud provider function set_hostname() { # These are URLs that return the client's apparent IP address. # We have more than one to try in case one starts failing - # (e.g. https://github.com/Jigsaw-Code/outline-server/issues/776). + # (e.g. https://github.com/OutlineFoundation/outline-server/issues/776). local -ar urls=( 'https://icanhazip.com/' 'https://ipinfo.io/ip' diff --git a/src/shadowbox/CHANGELOG.md b/src/shadowbox/CHANGELOG.md index af5a38eb9..8074d6af7 100644 --- a/src/shadowbox/CHANGELOG.md +++ b/src/shadowbox/CHANGELOG.md @@ -1,20 +1,22 @@ # 1.7.2 + - Fixes - - Fix reporting of country metrics and improve logging output (https://github.com/Jigsaw-Code/outline-server/pull/1242) + - Fix reporting of country metrics and improve logging output (https://github.com/OutlineFoundation/outline-server/pull/1242) # 1.7.1 + - Fixes - - Corner case of isPortUsed that could result in infinite restart loop (https://github.com/Jigsaw-Code/outline-server/pull/1238) - - Prevent excessive logging (https://github.com/Jigsaw-Code/outline-server/pull/1232) + - Corner case of isPortUsed that could result in infinite restart loop (https://github.com/OutlineFoundation/outline-server/pull/1238) + - Prevent excessive logging (https://github.com/OutlineFoundation/outline-server/pull/1232) # 1.7.0 - Features - - Add encryption cipher selection to create access key API (https://github.com/Jigsaw-Code/outline-server/pull/1002) - - Make access key secrets longer (https://github.com/Jigsaw-Code/outline-server/pull/1098) + - Add encryption cipher selection to create access key API (https://github.com/OutlineFoundation/outline-server/pull/1002) + - Make access key secrets longer (https://github.com/OutlineFoundation/outline-server/pull/1098) - Fixes - - Race condition on concurrent API calls (https://github.com/Jigsaw-Code/outline-server/pull/995) -- Upgrades (https://github.com/Jigsaw-Code/outline-server/pull/1211) + - Race condition on concurrent API calls (https://github.com/OutlineFoundation/outline-server/pull/995) +- Upgrades (https://github.com/OutlineFoundation/outline-server/pull/1211) - Base image to `node:16.18.0-alpine3.16` - - outline-ss-server from 1.3.5 to [1.4.0](https://github.com/Jigsaw-Code/outline-ss-server/releases/tag/v1.4.0) + - outline-ss-server from 1.3.5 to [1.4.0](https://github.com/OutlineFoundation/outline-ss-server/releases/tag/v1.4.0) - Prometheus from 2.33.5 to [2.37.1](https://github.com/prometheus/prometheus/releases/tag/v2.37.1) diff --git a/src/shadowbox/README.md b/src/shadowbox/README.md index c0519aa23..8462adf74 100644 --- a/src/shadowbox/README.md +++ b/src/shadowbox/README.md @@ -1,6 +1,6 @@ # Outline Server (Shadowbox) -The Outline Server, internal name "Shadowbox," is designed to streamline the setup and sharing of Shadowsocks servers. It includes a user management API and creates Shadowsocks instances when needed. It's managed by the [Outline Manager](https://github.com/Jigsaw-Code/outline-apps/) and used as proxy by the [Outline Client](https://github.com/Jigsaw-Code/outline-apps/) apps. Shadowbox is also compatible with standard Shadowsocks clients. +The Outline Server, internal name "Shadowbox," is designed to streamline the setup and sharing of Shadowsocks servers. It includes a user management API and creates Shadowsocks instances when needed. It's managed by the [Outline Manager](https://github.com/OutlineFoundation/outline-apps/) and used as proxy by the [Outline Client](https://github.com/OutlineFoundation/outline-apps/) apps. Shadowbox is also compatible with standard Shadowsocks clients. ## Installation @@ -9,7 +9,7 @@ The Outline Server, internal name "Shadowbox," is designed to streamline the set 1. **Run the Installation Script** ```sh - sudo bash -c "$(wget -qO- https://raw.githubusercontent.com/Jigsaw-Code/outline-apps/master/server_manager/install_scripts/install_server.sh)" + sudo bash -c "$(wget -qO- https://raw.githubusercontent.com/OutlineFoundation/outline-apps/master/server_manager/install_scripts/install_server.sh)" ``` 1. **Customize (Optional)** @@ -17,7 +17,7 @@ The Outline Server, internal name "Shadowbox," is designed to streamline the set Add flags for hostname, port, etc. Example: ```sh - sudo bash -c "$(wget -qO- https://raw.githubusercontent.com/Jigsaw-Code/outline-apps/master/server_manager/install_scripts/install_server.sh)" install_server.sh \ + sudo bash -c "$(wget -qO- https://raw.githubusercontent.com/OutlineFoundation/outline-apps/master/server_manager/install_scripts/install_server.sh)" install_server.sh \ --hostname=myserver.com \ --keys-port=443 ``` @@ -113,7 +113,7 @@ The Outline Server provides a REST API for access key management. If you know th 1. **Further Options:** - Consult the [OpenAPI spec](./server/api.yml) and [documentation](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/Jigsaw-Code/outline-server/master/src/shadowbox/server/api.yml) for more options. + Consult the [OpenAPI spec](./server/api.yml) and [documentation](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/OutlineFoundation/outline-server/master/src/shadowbox/server/api.yml) for more options. ## Testing diff --git a/src/shadowbox/integration_test/client/Dockerfile b/src/shadowbox/integration_test/client/Dockerfile index 31a51bb6f..f2915cdfb 100644 --- a/src/shadowbox/integration_test/client/Dockerfile +++ b/src/shadowbox/integration_test/client/Dockerfile @@ -14,7 +14,7 @@ # Alpine 3.19 curl is using the c-ares resolver instead of the system resolver, # which caused DNS issues. Upgrade once the Alpine image includes the fix. See -# https://github.com/Jigsaw-Code/outline-server/pull/1566. +# https://github.com/OutlineFoundation/outline-server/pull/1566. FROM docker.io/golang:1-alpine3.18 # curl for fetching pages using the local proxy diff --git a/src/shadowbox/package.json b/src/shadowbox/package.json index 89a2ef5d5..62e4ddd45 100644 --- a/src/shadowbox/package.json +++ b/src/shadowbox/package.json @@ -11,7 +11,7 @@ "dependencies": { "ip-regex": "^4.1.0", "js-yaml": "^3.12.0", - "outline-shadowsocksconfig": "github:Jigsaw-Code/outline-shadowsocksconfig#v0.2.0", + "outline-shadowsocksconfig": "github:OutlineFoundation/shadowsocksconfig#v0.2.0", "prom-client": "^11.1.3", "randomstring": "^1.1.5", "restify": "^11.1.0", diff --git a/src/shadowbox/server/main.ts b/src/shadowbox/server/main.ts index 533f9f439..5d1be7768 100644 --- a/src/shadowbox/server/main.ts +++ b/src/shadowbox/server/main.ts @@ -123,7 +123,7 @@ async function main() { const prometheusPort = await portProvider.reserveFirstFreePort(9090); // Use 127.0.0.1 instead of localhost for Prometheus because it's resolving incorrectly for some users. - // See https://github.com/Jigsaw-Code/outline-server/issues/341 + // See https://github.com/OutlineFoundation/outline-server/issues/341 const prometheusLocation = `127.0.0.1:${prometheusPort}`; const nodeMetricsPort = await portProvider.reserveFirstFreePort(prometheusPort + 1);