diff --git a/BUILD.md b/BUILD.md index d16c3346..e612b344 100644 --- a/BUILD.md +++ b/BUILD.md @@ -11,36 +11,49 @@ FreeLAN depends on the following libraries: - OpenSSL - iconv (Windows) -Generally Linux users can just use the binaries provided by their package manager, Mac OSX users can use brew but other platforms such as Windows may need to build these libraries explicitely. +Generally Linux users can just use the binaries provided by their package +manager, Mac OSX users can use brew but other platforms such as Windows may need +to build these libraries explicitely. -To build the third-party libraries, you can use [teapot](https://github.com/freelan-developers/teapot) (be sure to have `python 2.7` and `perl` installed). Check its [documentation](http://teapot-builder.readthedocs.org/en/latest/) for details, or just type the following command at the root of FreeLAN's repository: +To build the third-party libraries, you can use +[teapot](https://github.com/freelan-developers/teapot) (be sure to have `python +2.7` and `perl` installed). Check its +[documentation](http://teapot-builder.readthedocs.org/en/latest/) for details, +or just type the following command at the root of FreeLAN's repository: > teapot build -This will build everything inside `third-party`. Once that is done, you can proceed with the next steps. +This will build everything inside `third-party`. Once that is done, you can +proceed with the next steps. ### Debian Linux -To install the required dependencies on Debian Linux (Or Ubuntu), type the following command: +To install the required dependencies on Debian Linux (Or Ubuntu), type the +following command: -> sudo apt-get install scons python libssl-dev libcurl4-openssl-dev libboost-system-dev libboost-thread-dev libboost-program-options-dev libboost-filesystem-dev libboost-iostreams-dev build-essential +> sudo apt-get install scons python libssl-dev libcurl4-openssl-dev +> libboost-system-dev libboost-thread-dev libboost-program-options-dev +> libboost-filesystem-dev libboost-iostreams-dev build-essential ### Mac OSX To install the required dependencies on Mac OS, type the following commands: -> /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" +> /usr/bin/ruby -e "$(curl -fsSL +> https://raw.githubusercontent.com/Homebrew/install/master/install)" > brew update > brew install scons boost openssl -Building FreeLAN ----------------- +Building FreeLAN ---------------- -FreeLAN is written in C++11. Make sure your C++ compiler is recent enough and supports this standard. On Linux for instance, you need at least `gcc >= 4.8` for things to go fine. +FreeLAN is written in C++11. Make sure your C++ compiler is recent enough and +supports this standard. On Linux for instance, you need at least `gcc >= 4.8` +for things to go fine. -FreeLAN uses [scons](http://www.scons.org/) as its build system on POSIX-like systems (basically everything except Windows). +FreeLAN uses [scons](http://www.scons.org/) as its build system on POSIX-like +systems (basically everything except Windows). To build the main binary, just type: @@ -56,23 +69,29 @@ To build then install everything into a specific directory, type instead: ### Debugging -If the debug-level logging exposed with the `-d` parameter to freelan does not expose enough information to assist development or bug-finding, it is possible to enable additional debug information at build time with: +If the debug-level logging exposed with the `-d` parameter to freelan does not +expose enough information to assist development or bug-finding, it is possible +to enable additional debug information at build time with: > scons all --mode=debug -Be aware that this will produce a significant amount of logging information and is not intended for production use. +Be aware that this will produce a significant amount of logging information and +is not intended for production use. ### Windows -You will need Microsoft Visual Studio 2017 to compile freelan. All projects come with a `.vcxproj` file for all the targets (debug/release and x86/x64). +You will need Microsoft Visual Studio 2017 to compile freelan. All projects come +with a `.vcxproj` file for all the targets (debug/release and x86/x64). -The root directory also contains a solution file (`.sln`) that references all the sub-projects. +The root directory also contains a solution file (`.sln`) that references all +the sub-projects. The resulting binaries will be located in the [install](install) directory. ### Mac OSX -On Mac OSX, an additional SCons target exists to build the freelan installation package: +On Mac OSX, an additional SCons target exists to build the freelan installation +package: > scons package diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4ff6fdf8..161534cd 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -10,4 +10,6 @@ To improve the chances of your pull-requests to be accepted, make sure that: - Your changes are of public utility. - There aren't (too many) spelling or grammar mistakes. -Feel free to suggest improvements, ideas or to add new features. Do not hesitate to ask for help on the [mailing-list](http://freelan.org/development.html) if you need some ! +Feel free to suggest improvements, ideas or to add new features. Do not hesitate +to ask for help on the [mailing-list](http://freelan.org/development.html) if +you need some ! diff --git a/README.md b/README.md index 834badcf..4c3266b0 100644 --- a/README.md +++ b/README.md @@ -2,47 +2,66 @@ ### What is FreeLAN? -A peer-to-peer, secure, easy-to-setup, multi-platform, open-source, highly-configurable VPN software. +A peer-to-peer, secure, easy-to-setup, multi-platform, open-source, +highly-configurable VPN software. ### Installation -FreeLAN is available on Windows, Mac OSX and Linux (Debian-based distributions). Check the [official website](http://www.freelan.org) for installers. +FreeLAN is available on Windows, Mac OSX and Linux (Debian-based distributions). +Check the [official website](http://www.freelan.org) for installers. -If your platform is not officially supported, dot not despair and try to build-it yourself ! Check the [build instructions](BUILD.md) for details on how to do that. +If your platform is not officially supported, dot not despair and try to +build-it yourself ! Check the [build instructions](BUILD.md) for details on how +to do that. ### Quick-start -FreeLAN can be configured to support any network topology, be it a traditional client-server structure or a full-mesh one. The emulated network can operate at the Ethernet or at the IPv4/IPv6 levels. Security can be achieved through the use of certificates or via a simple shared passphrase. +FreeLAN can be configured to support any network topology, be it a traditional +client-server structure or a full-mesh one. The emulated network can operate at +the Ethernet or at the IPv4/IPv6 levels. Security can be achieved through the +use of certificates or via a simple shared passphrase. For instance, creating a simple VPN node can be done with: freelan --security.passphrase "my secret" -This will start a VPN node, listening for connections on all interfaces on the port UDP:12000. The node will pick the default 9.0.0.1 IPv4 address inside the emulated network. +This will start a VPN node, listening for connections on all interfaces on the +port UDP:12000. The node will pick the default 9.0.0.1 IPv4 address inside the +emulated network. To connect to another node, just specify the `fscp.contact` option, like so: freelan --security.passphrase "my secret" --fscp.contact 1.2.3.4:12000 -Each node should have a different virtual IP address: you can specify the IPv4 address to use with the `tap_adapter.ipv4_address_prefix_length` option, like so: +Each node should have a different virtual IP address: you can specify the IPv4 +address to use with the `tap_adapter.ipv4_address_prefix_length` option, like +so: - freelan --security.passphrase "my secret" --tap_adapter.ipv4_address_prefix_length 9.0.0.2/24 + freelan --security.passphrase "my secret" + --tap_adapter.ipv4_address_prefix_length 9.0.0.2/24 -Check out the [configuration file](apps/freelan/config/freelan.cfg) for details ! +Check out the [configuration file](apps/freelan/config/freelan.cfg) for details +! ### Frequently Asked Questions #### Is there a graphical interface ? -A graphical user interface is planned but nothing is made public yet. You will just have to be patient :) +A graphical user interface is planned but nothing is made public yet. You will +just have to be patient :) -#### Can I use FreeLAN to access forbidden websites/websites in other countries with restrictions ? +#### Can I use FreeLAN to access forbidden websites/websites in other countries +with restrictions ? -FreeLAN is not a service, it's a software. You can configure it to reach that goal easily, but you'll need an exit-point (a server, a friendly-computer at the right location) on which you can run FreeLAN too. **It will always take a minimum of 2 nodes to create a VPN network**. +FreeLAN is not a service, it's a software. You can configure it to reach that +goal easily, but you'll need an exit-point (a server, a friendly-computer at the + right location) on which you can run FreeLAN too. **It will always take a +minimum of 2 nodes to create a VPN network**. ### Donations -You like FreeLAN and you would like to show your support and help development of next releases ? Check out the [donate page](http://freelan.org/donate.html#) ! +You like FreeLAN and you would like to show your support and help development of +next releases ? Check out the [donate page](http://freelan.org/donate.html#) ! ### Contributions