mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-04-27 11:17:49 +02:00
* cleanup README
* move all docs to single dir
This commit is contained in:
parent
80a0a3d4fb
commit
710439e83c
4 changed files with 92 additions and 101 deletions
80
docs/build_notes_unix.md
Normal file
80
docs/build_notes_unix.md
Normal file
|
@ -0,0 +1,80 @@
|
|||
Requirements
|
||||
============
|
||||
|
||||
Linux/FreeBSD/OSX
|
||||
-----------------
|
||||
|
||||
GCC 4.6 or newer, Boost 1.46 or newer, openssl, zlib. Clang can be used instead of GCC.
|
||||
|
||||
Windows
|
||||
-------
|
||||
|
||||
VS2013 (known to work with 12.0.21005.1 or newer), Boost 1.46 or newer,
|
||||
crypto++ 5.62. See Win32/README-Build.txt for instructions on how to build i2pd
|
||||
and its dependencies.
|
||||
|
||||
Build notes
|
||||
===========
|
||||
|
||||
Common build/install process from sources:
|
||||
|
||||
* git clone https://github.com/PurpleI2P/i2pd.git
|
||||
* mkdir -p 'i2pd/build/tmp' && cd 'i2pd/build/tmp'
|
||||
* cmake -DCMAKE_BUILD_TYPE=Release <more options> ..
|
||||
* make
|
||||
* make install
|
||||
|
||||
Available cmake options:
|
||||
|
||||
* CMAKE_BUILD_TYPE -- build profile (Debug/Release)
|
||||
* WITH_AESNI -- AES-NI support (ON/OFF)
|
||||
* WITH_HARDENING -- enable hardening features (ON/OFF) (gcc only)
|
||||
* WITH_BINARY -- build i2pd itself
|
||||
* WITH_LIBRARY -- build libi2pd
|
||||
* WITH_STATIC -- build static versions of library and i2pd binary
|
||||
* WITH_UPNP -- build with UPnP support (requires libupnp)
|
||||
* WITH_PCH -- use pre-compiled header (experimental, speeds up build)
|
||||
|
||||
Debian/Ubuntu
|
||||
-------------
|
||||
|
||||
For building from source on debian system you will need the following "-dev" packages:
|
||||
|
||||
* libboost-chrono-dev
|
||||
* libboost-date-time-dev
|
||||
* libboost-filesystem-dev
|
||||
* libboost-program-options-dev
|
||||
* libboost-regex-dev
|
||||
* libboost-system-dev
|
||||
* libboost-thread-dev
|
||||
* libssl-dev (e.g. openssl)
|
||||
* zlib1g-dev (libssl-dev already depends on it)
|
||||
* libminiupnpc-dev (optional, if WITH_UPNP=ON)
|
||||
|
||||
You may also build deb-package with the following:
|
||||
|
||||
apt-get install build-essential fakeroot devscripts
|
||||
cd i2pd
|
||||
debuild --no-tgz-check # building from git repo
|
||||
|
||||
FreeBSD
|
||||
-------
|
||||
|
||||
Branch 9.X has gcc v4.2, that knows nothing about required c++11 standart.
|
||||
|
||||
Required ports:
|
||||
|
||||
* devel/cmake
|
||||
* devel/boost-libs
|
||||
* lang/gcc47 # or later version
|
||||
|
||||
To use newer compiler you should set these variables:
|
||||
|
||||
export CC=/usr/local/bin/gcc47
|
||||
export CXX=/usr/local/bin/g++47
|
||||
|
||||
Replace "47" with your actual gcc version
|
||||
|
||||
Branch 10.X has more reliable clang version, that can finally build i2pd,
|
||||
but i still recommend to use gcc, otherwise you will fight it's bugs by
|
||||
your own.
|
86
docs/build_notes_windows.md
Normal file
86
docs/build_notes_windows.md
Normal file
|
@ -0,0 +1,86 @@
|
|||
Building i2pd for Windows
|
||||
=========================
|
||||
|
||||
!!! WARNING This file may be outdated.
|
||||
|
||||
Requirements for building:
|
||||
|
||||
* Visual Studio 2013 (tested with VS2013 Update 1, Update 3, and Update 4)
|
||||
* Boost (tested with 1.56, 1.57, and 1.58)
|
||||
* Crypto++ (tested with 5.6.2)
|
||||
|
||||
|
||||
Building Boost (32-bit)
|
||||
-----------------------
|
||||
|
||||
Open a Visual Studio x86 command prompt and run the following:
|
||||
|
||||
cd C:\path\to\boost\sources
|
||||
bootstrap
|
||||
b2 toolset=msvc-12.0 --build-type=complete --libdir=C:\Boost\lib\Win32 install --with-filesystem --with-program_options --with-regex --with-date_time
|
||||
|
||||
|
||||
Building Boost (64-bit)
|
||||
-----------------------
|
||||
|
||||
Open a Visual Studio x64 command prompt and run the following:
|
||||
|
||||
cd C:\path\to\boost\sources
|
||||
bootstrap
|
||||
b2 toolset=msvc-12.0 --build-type=complete --libdir=C:\Boost\lib\x64 architecture=x86 address-model=64 install --with-filesystem --with-program_options --with-regex --with-date_time
|
||||
|
||||
After Boost is compiled, set the environment variable `BOOST` to the directory
|
||||
Boost was installed to. If you followed the instructions outlined here, you
|
||||
should set it to `C:\Boost`. Additionally, set the BOOSTVER variable to the
|
||||
version of Boost that you're using, but instead of a '.' use a '_'. For
|
||||
example, I have `BOOSTVER` set to `1_58`.
|
||||
|
||||
Building Crypto++
|
||||
-----------------
|
||||
|
||||
* Open the crypttest Solution in VS2013
|
||||
* Visual Studio will ask to update the Solution/Project. Allow it.
|
||||
* Build the `cryptopp` project, both the Debug and Release targets and for both
|
||||
Win32 and x64.
|
||||
* Create a folder called `cryptopp` in the crypto++ source directory, then copy
|
||||
the header files to this new directory.
|
||||
* Set the `CRYPTOPP` environment variable pointing to the Crypto++ source directory.
|
||||
|
||||
|
||||
Building i2pd
|
||||
-------------
|
||||
|
||||
## Prep work ##
|
||||
|
||||
I strongly advise setting up your own `INCLUDES` and `LIBS` instead of relying
|
||||
on the settings in the i2pd project file. By using your own settings, if the
|
||||
i2pd devs change the paths in the project file, your builds will still work.
|
||||
|
||||
To do this, create or edit the file
|
||||
`%localappdata%\Microsoft\MSBuild\v4.0\Microsoft.Cpp.Win32.user`.
|
||||
|
||||
For comparison, my file is reproduced below:
|
||||
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ImportGroup Label="PropertySheets">
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<LibraryPath>$(CRYPTOPP)\$(Platform)\Output\$(Configuration);$(BOOST)\lib\$(Platform);$(LibraryPath)</LibraryPath>
|
||||
<IncludePath>$(CRYPTOPP);$(BOOST)\include\boost-$(BOOSTVER);$(IncludePath)</IncludePath>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup />
|
||||
<ItemGroup />
|
||||
</Project>
|
||||
|
||||
|
||||
If you want to build x64 binaries as well, you'll want to edit or create the
|
||||
file `%localappdata%\Microsoft\MSBuild\v4.0\Microsoft.Cpp.x64.user`. If you
|
||||
followed the steps outlined earlier you can copy (or link) the win32 file to
|
||||
the x64 one.
|
||||
|
||||
## Anti-Climatic End ##
|
||||
|
||||
After following the above instructions, you'll be able to build Debug Win32,
|
||||
Debug x64, Release Win32, and Release x64 i2pd binaries.
|
84
docs/configuration.md
Normal file
84
docs/configuration.md
Normal file
|
@ -0,0 +1,84 @@
|
|||
i2pd cmdline options
|
||||
--------------------
|
||||
|
||||
* --host= - The external IP (deprecated).
|
||||
* --port= - The port to listen on
|
||||
* --httpaddress= - The address to listen on (HTTP server)
|
||||
* --httpport= - The port to listen on (HTTP server)
|
||||
* --log= - Enable or disable logging to file. 1 for yes, 0 for no.
|
||||
* --daemon= - Enable or disable daemon mode. 1 for yes, 0 for no.
|
||||
* --service= - 1 if uses system folders (/var/run/i2pd.pid, /var/log/i2pd.log, /var/lib/i2pd).
|
||||
* --v6= - 1 if supports communication through ipv6, off by default
|
||||
* --floodfill= - 1 if router is floodfill, off by default
|
||||
* --bandwidth= - L if bandwidth is limited to 32Kbs/sec, O if not. Always O if floodfill, otherwise L by default.
|
||||
* --httpproxyaddress= - The address to listen on (HTTP Proxy)
|
||||
* --httpproxyport= - The port to listen on (HTTP Proxy) 4446 by default
|
||||
* --socksproxyaddress= - The address to listen on (SOCKS Proxy)
|
||||
* --socksproxyport= - The port to listen on (SOCKS Proxy). 4447 by default
|
||||
* --proxykeys= - optional keys file for proxy's local destination
|
||||
* --ircaddress= - The address to listen on (IRC tunnel)
|
||||
* --ircport= - The port listen on (IRC tunnel). 6668 by default
|
||||
* --ircdest= - I2P destination address of IRC server. For example irc.postman.i2p
|
||||
* --irckeys= - optional keys file for tunnel's local destination
|
||||
* --eepkeys= - File name containing destination keys, for example privKeys.dat.
|
||||
The file will be created if it does not already exist (issue #110).
|
||||
* --eephost= - Address incoming trafic forward to. 127.0.0.1 by default
|
||||
* --eepport= - Port incoming trafic forward to. 80 by default
|
||||
* --samaddress= - The address to listen on (SAM bridge)
|
||||
* --samport= - Port of SAM bridge. Usually 7656. SAM is off if not specified
|
||||
* --bobaddress= - The address to listen on (BOB command channel)
|
||||
* --bobport= - Port of BOB command channel. Usually 2827. BOB is off if not specified
|
||||
* --i2pcontroladdress= - The address to listen on (I2P control service)
|
||||
* --i2pcontrolport= - Port of I2P control service. Usually 7650. I2PControl is off if not specified
|
||||
* --tunnelscfg= - Tunnels Config file (default: ~/.i2pd/tunnels.cfg or /var/lib/i2pd/tunnels.cfg)
|
||||
* --conf= - Config file (default: ~/.i2pd/i2p.conf or /var/lib/i2pd/i2p.conf)
|
||||
This parameter will be silently ignored if the specified config file does not exist.
|
||||
Options specified on the command line take precedence over those in the config file.
|
||||
|
||||
Config files
|
||||
------------
|
||||
|
||||
INI-like, syntax is the following : <key> = <value>.
|
||||
All command-line parameters are allowed as keys, for example:
|
||||
|
||||
i2p.conf:
|
||||
|
||||
log = 1
|
||||
v6 = 0
|
||||
ircdest = irc.postman.i2p
|
||||
|
||||
tunnels.cfg (filename of this config is subject of change):
|
||||
|
||||
; outgoing tunnel sample, to remote service
|
||||
; mandatory parameters:
|
||||
; * type -- always "client"
|
||||
; * port -- local port to listen to
|
||||
; * destination -- i2p hostname
|
||||
; optional parameters (may be omitted)
|
||||
; * keys -- our identity, if unset, will be generated on every startup,
|
||||
; if set and file missing, keys will be generated and placed to this file
|
||||
[IRC]
|
||||
type = client
|
||||
port = 6668
|
||||
destination = irc.echelon.i2p
|
||||
keys = irc-keys.dat
|
||||
;
|
||||
; incoming tunnel sample, for local service
|
||||
; mandatory parameters:
|
||||
; * type -- always "server"
|
||||
; * host -- ip address of our service
|
||||
; * port -- port of our service
|
||||
; * keys -- file with LeaseSet of address in i2p
|
||||
; optional parameters (may be omitted)
|
||||
; * inport -- optional, i2p service port, if unset - the same as 'port'
|
||||
; * accesslist -- comma-separated list of i2p addresses, allowed to connect
|
||||
; every address is b32 without '.b32.i2p' part
|
||||
[LOCALSITE]
|
||||
type = server
|
||||
host = 127.0.0.1
|
||||
port = 80
|
||||
keys = site-keys.dat
|
||||
inport = 81
|
||||
accesslist = <b32>[,<b32>]
|
||||
|
||||
Also see [this page](https://github.com/PurpleI2P/i2pd/wiki/tunnels.cfg) for more tunnel examples.
|
Loading…
Add table
Add a link
Reference in a new issue