From 09f0f1f69ecc2c10212e4df2636a75de204ca202 Mon Sep 17 00:00:00 2001 From: Sander Bruens Date: Mon, 15 Apr 2024 14:37:03 -0400 Subject: [PATCH] docs(docs): update README now client has moved into `/client` directory (#1969) * docs(docs): update `README` now that client code has moved into `/client` subdirectory * Add images. * Remove old tip. * Update README.md Co-authored-by: J. Yi <93548144+jyyi1@users.noreply.github.com> --------- Co-authored-by: J. Yi <93548144+jyyi1@users.noreply.github.com> --- README.md | 102 +++----------------------------- client/README.md | 11 ++-- docs/resources/logo_client.png | Bin 0 -> 3854 bytes docs/resources/logo_manager.png | Bin 0 -> 3458 bytes 4 files changed, 12 insertions(+), 101 deletions(-) create mode 100644 docs/resources/logo_client.png create mode 100644 docs/resources/logo_manager.png diff --git a/README.md b/README.md index bd2986aed6..b90509307e 100644 --- a/README.md +++ b/README.md @@ -1,109 +1,21 @@ # Outline Apps -[![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/) +[![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/) +[![codecov](https://codecov.io/gh/Jigsaw-Code/outline-app/branch/master/graph/badge.svg?token=gasD8v5tjn)](https://codecov.io/gh/Jigsaw-Code/outline-app) ## Access to the free and open internet! Outline makes it easy to create a VPN server, giving anyone access to the free and open internet. -We have two core apps: [Ouline Manager](./server_manager) and [Ouline Client](./src). Go to https://getoutline.org for ready-to-use versions of both. +We have two core apps -### Outline Manager +- Outline Manager Logo **Outline Manager** ([`/server_manager`](server_manager)): A graphical user interface for managing Outline servers. It is available for Windows, macOS, and Linux. -The Outline Manager is a graphical user interface for managing Outline servers. It is available for Windows, macOS, and Linux. +- Outline Client Logo **Outline Client** ([`/client`](client)): A cross-platform proxy client for Windows, macOS, iOS, Android, and Linux. The Outline Client is designed for use with the server deployed with the Outline Manager, but it is also fully compatible with any [Shadowsocks](https://shadowsocks.org/) server. -### Outline Client +Go to https://getoutline.org for ready-to-use versions of both. -The Outline Client is a cross-platform proxy client for Windows, macOS, iOS, Android, and Linux. The Outline Client is designed for use with the server deployed with the Outline Manager, but it is also fully compatible with any [Shadowsocks](https://shadowsocks.org/) server. - - - -![Build and Test](https://github.com/Jigsaw-Code/outline-client/actions/workflows/build_and_test_debug_client.yml/badge.svg?branch=master) [![codecov](https://codecov.io/gh/Jigsaw-Code/outline-client/branch/master/graph/badge.svg?token=gasD8v5tjn)](https://codecov.io/gh/Jigsaw-Code/outline-client) - -> [!NOTE] -> Test coverage currently only tracks the Apple Libraries and core web view code. - -We have two core apps: [Ouline Manager](./server_manager) and [Ouline Client](./client). - -To join our Outline Community, [sign up for the IFF Mattermost](https://wiki.digitalrights.community/index.php?title=IFF_Mattermost). - -#### Requirements for all builds - -### Outline Client - -> 💡 NOTE: if you have `nvm` installed, run `nvm use` to switch to the correct node version! - -After cloning this repo, install all node dependencies: - -```sh -npm install -``` - -#### Building the shared web app - -Outline clients share the same web app across all platforms. This code is located in the src/www directory. If you are making changes to the shared web app and do not need to test platform-specific functionality, you can test in a desktop browser by running: - -```sh -npm run action client/src/www/start -``` - -The latter command will open a browser instance running the app. Browser platform development will use fake servers to test successful and unsuccessful connections. - -The app logic is located in [src/www/app](src/www/app). UI components are located in [src/www/ui_components](src/www/ui_components). If you want to work specifically on an individual UI element, try the storybook!: - -```sh -npm run action client/src/www/storybook -``` - -> [!NOTE] -> The `src` part of the path is optional. `npm run action www/start` resolves to the same script. - -> [!NOTE] -> Every script in this repository can be run with `npm run action` - -> for a CLI-like experience, add something like -> -> ```sh -> alias outline="npm run action" -> ``` -> -> _(you can call it whatever you like)_ -> -> to your shell, then try `outline www/start`! - -#### Passing configuration flags to actions - -Certain actions take configuration flags - but since we're running them through `npm`, you'll have to use the `--` seperator to funnel them through to the underlying process. For example, to set up a MacOS project in release mode, you'd run: - -```sh -SENTRY_DSN= npm run action client/src/cordova/setup macos -- --buildMode=release --versionName= -``` - -#### Life of a Packet - -[How does the Outline Client work?](docs/life_of_a_packet.md) - -#### Accepting a server invite - -[Looking for instructions on how to accept a server invite?](docs/invitation_instructions.md) - -#### Platform-specific development - -Each platform is handled differently: - -1. [Developing for Apple **(MacOS and iOS)**](src/cordova/apple) -2. [Developing for **Android**](src/cordova/android) -3. [Developing for Electron **(Windows and Linux)**](src/electron) - -#### Error reporting - -To enable error reporting through [Sentry](https://sentry.io/) for local builds, run: - -```bash -export SENTRY_DSN=[Sentry development API key] -[platform-specific build command] -``` - -Release builds on CI are configured with a production Sentry API key. +**Join the Outline Community** by signing up for the [IFF Mattermost](https://wiki.digitalrights.community/index.php?title=IFF_Mattermost)! ## Support diff --git a/client/README.md b/client/README.md index 3787ff9d6b..d5c5b148c7 100644 --- a/client/README.md +++ b/client/README.md @@ -1,16 +1,14 @@ # Outline Client -![Build and Test](https://github.com/Jigsaw-Code/outline-apps/actions/workflows/build_and_test_debug_client.yml/badge.svg?branch=master) +![Build and Test](https://github.com/Jigsaw-Code/outline-apps/actions/workflows/build_and_test_debug_client.yml/badge.svg?branch=master) [![codecov](https://codecov.io/gh/Jigsaw-Code/outline-apps/graph/badge.svg?token=gasD8v5tjn)](https://codecov.io/gh/Jigsaw-Code/outline-apps) -> **Test coverage currently only tracks the Apple Libraries and core web view code:** -> -> [![codecov](https://codecov.io/gh/Jigsaw-Code/outline-apps/branch/master/graph/badge.svg?token=gasD8v5tjn)](https://codecov.io/gh/Jigsaw-Code/outline-apps) +> [!NOTE] +> Test coverage currently only tracks the Apple Libraries and core web view code. The Outline Client is a cross-platform VPN or proxy client for Windows, macOS, iOS, Android, and ChromeOS. The Outline Client is designed for use with the [Outline Server](https://github.com/Jigsaw-Code/outline-server) software, but it is fully compatible with any [Shadowsocks](https://shadowsocks.org/) server. The client's user interface is implemented in [Polymer](https://www.polymer-project.org/) 2.0. Platform support is provided by [Cordova](https://cordova.apache.org/) and [Electron](https://electronjs.org/), with additional native components in this repository. -To join our Outline Community, [sign up for the IFF Mattermost](https://internetfreedomfestival.org/wiki/index.php/IFF_Mattermost). ## Requirements for all builds @@ -40,7 +38,8 @@ The app logic is located in [src/www/app](src/www/app). UI components are locate npm run action client/src/www/storybook ``` -> 💡 NOTE: every script in this repository can be run with `npm run action` - +> [!NOTE] +> Every script in this repository can be run with `npm run action` - > for a CLI-like experience, add something like > > ```sh diff --git a/docs/resources/logo_client.png b/docs/resources/logo_client.png new file mode 100644 index 0000000000000000000000000000000000000000..d6e6944e119a8e6f2e935be26125803d4bf8c4cc GIT binary patch literal 3854 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 QRsaA107*qoM6N<$f;+>*+yDRo literal 0 HcmV?d00001 diff --git a/docs/resources/logo_manager.png b/docs/resources/logo_manager.png new file mode 100644 index 0000000000000000000000000000000000000000..c7a527695b89698599dfed72a58373449d9ed53a GIT binary patch literal 3458 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