GithubHelp home page GithubHelp logo

since1999 / outline-client Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jigsaw-code/outline-apps

0.0 0.0 0.0 444.63 MB

Outline clients, developed by Jigsaw. The Outline clients use the popular Shadowsocks protocol, and lean on the Cordova and Electron frameworks to support Windows, Android / ChromeOS, Linux, iOS and macOS.

Home Page: https://getoutline.org/

License: Apache License 2.0

Shell 1.75% JavaScript 18.35% C++ 7.80% Python 0.78% Objective-C 8.55% Java 11.40% Go 0.87% C# 7.30% TypeScript 31.57% CSS 0.40% Swift 7.15% HTML 0.37% NSIS 1.00% CMake 0.25% Batchfile 1.57% Dockerfile 0.33% AIDL 0.57%

outline-client's Introduction

Outline Client

Build and Test

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 software, but it is fully compatible with any Shadowsocks server.

The client's user interface is implemented in Polymer 2.0. Platform support is provided by Cordova and Electron, with additional native components in this repository.

Requirements for all builds

All builds require Node 16 (lts/gallium), in addition to other per-platform requirements.

๐Ÿ’ก NOTE: if you have nvm installed, run nvm use to switch to the correct node version!

After cloning this repo, install all node dependencies:

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:

npm run action 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. UI components are located in src/www/ui_components. If you want to work specifically on an individual UI element, try the storybook!:

npm run action 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

alias outline="npm run action"

(you can call it whatever you like)

to your shell, then try outline www/start!

Accepting a server invite

Looking for instructions on how to accept a server invite?

Platform-specific development

Each platform is handled differently:

  1. Developing for Apple (MacOS and iOS)
  2. Developing for Android
  3. Developing for Electron (Windows and Linux)

Localization

We have several pipelines for managing message localization.

Error reporting

To enable error reporting through Sentry for local builds, run:

export SENTRY_DSN=[Sentry development API key]
[platform-specific build command]

Release builds on CI are configured with a production Sentry API key.

Support

For support and to contact us, see: https://support.getoutline.org.

outline-client's People

Contributors

trevj avatar alalamav avatar daniellacosse avatar fortuna avatar jyyi1 avatar jsoref avatar dependabot[bot] avatar bemasc avatar mpmcroy avatar ohnorobo avatar lgg avatar joeytwiddle avatar cjhenck avatar ekcnl avatar toinetoine avatar ssrlive avatar pyy avatar gurakarm avatar yakovmanshin avatar zouxifeng avatar siberiawind avatar nikitabud avatar ohnocassio avatar gillespiej avatar grantasl19 avatar fingerliu avatar cotsog avatar quinnypig avatar kklem0 avatar aurangz avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.