This commit is contained in:
Kcchouette 2020-01-30 14:50:19 +01:00 committed by GitHub
commit b8d668e33b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 159 additions and 32 deletions

1
BUGS
View File

@ -1 +0,0 @@
Bugs are tracked on: https://github.com/janvidar/uhub/issues

45
README
View File

@ -1,8 +1,47 @@
Welcome and thanks for downloading uHub, a high performance ADC p2p hub.
# Uhub
For the official documentation, bugs and other information, please visit:
https://www.uhub.org/
Uhub is a high performance peer-to-peer hub for the ADC network. Its low memory footprint allows it to handle several thousand users on high-end servers, or a small private hub on embedded hardware.
Uhub uses the ADC protocol, and is compatible with DC++, jUCy and other ADC clients.
## Key features
- High performance and low memory usage
- IPv4 and IPv6 support
- Experimental SSL support (optional)
- Advanced access control support
- Easy configuration
## Download
You can also use git to use the last up-to-date version:
$ git clone https://github.com/janvidar/uhub.git
You can also find zip / tar.gz files of different uhub versions on https://github.com/janvidar/uhub/releases
### Ubuntu and Debian packages
Tehnick has provided an up to date uhub PPA for Debian and Ubuntu based distributions: https://tehnick.github.io/uhub/
## Documentation
### Compile
See doc/compile.txt document or https://github.com/janvidar/uhub/blob/master/doc/compile.txt.
### Getting started
See doc/getstarted.txt document or https://github.com/janvidar/uhub/blob/master/doc/getstarted.txt.
### Use SSL
See doc/ssl-documentation.txt document or https://github.com/janvidar/uhub/blob/master/doc/ssl-documentation.txt.
## Compatible clients
For a list of compatible ADC clients, see:
https://en.wikipedia.org/wiki/Comparison_of_ADC_software#Client_software
## License
Uhub is free and open source software, licensed under the GNU General Public License 3.
See COPYING file, https://github.com/janvidar/uhub/blob/master/COPYING or directly https://www.gnu.org/licenses/gpl-3.0.txt

0
TODO
View File

View File

@ -1,9 +1,6 @@
How to compile:
---------------
# How to compile:
See the official compiling howto: https://www.uhub.org/compile.php
Prerequisites
## Prerequisites
Before you try to compile µHub, please make sure the following prerequisites are met.
* GNU make
@ -12,15 +9,22 @@ Before you try to compile µHub, please make sure the following prerequisites ar
* openssl > 0.9.8 (or use "make USE_SSL=NO")
* sqlite > 3.x
or read https://www.uhub.org/compile.php for more info.
For Ubuntu / Debian:
$ sudo apt-get install cmake make gcc git libsqlite3-dev libssl-dev
Linux, Mac OSX, FreeBSD, NetBSD and OpenBSD
-------------------------------------------
Simply, run:
% make
## Linux, Mac OSX, FreeBSD, NetBSD and OpenBSD
$ cmake .
$ make
% make install
If you have an old gcc compiler, try disabling pre-compiled headers like this:
gmake USE_PCH=NO
### Default install directories:
Binaries /usr/local/bin/
Configuration files /etc/uhub/
Plugins /usr/lib/uhub/
Manual pages /usr/share/man/man1/

View File

@ -1,17 +1,11 @@
Getting started guide
---------------------
# Getting started guide
Unpack your binaries
## Compile it at first
Example:
% tar xzf uhub-0.2.6-linux-i386.tar.gz
% cd uhub-0.2.6
See the doc/compile.txt file
Copy the binary to /usr/local/bin
## Create configuration files
% sudo cp uhub /usr/local/bin
Create configuration files.
If no configuration files are created, uhub will use the default parameters, so you can skip this step if you are in a hurry to see it run.
As root, or use sudo.
@ -20,6 +14,19 @@ As root, or use sudo.
% cp doc/uhub.conf /etc/uhub
% cp doc/users.conf /etc/uhub
% echo "welcome to uhub" > /etc/uhub/motd.txt
You can edit the default configuration file before starting uhub.
As root edit /etc/uhub/uhub.conf:
hub_name=My Public Hub
hub_description=Yet another ADC hub
server_port=1511
server_bind_addr=any
max_users=150
## Start uhub
Start the hub in the foreground for the first time. Shut it down, by pressing CTRL+C.
@ -27,7 +34,10 @@ Start the hub in the foreground for the first time. Shut it down, by pressing CT
Thu, 05 Feb 2009 00:48:04 +0000 INFO: Starting server, listening on :::1511...
Connect to the hub using an ADC client, use the address adc://localhost:1511, or replace localhost with the correct hostname or IP address.
NOTE: It is important to use the "adc://" prefix, and the port number when using DC++ and other ADC clients.
**NOTE**: It is important to use the "adc://" prefix, and the port number.
## Kill / Stop uhub
If you modify the configuration files in /etc/uhub you will have to notify uhub by sending a HUP signal.
@ -38,6 +48,8 @@ Or, for the lazy people
% killall -HUP uhub
## Start uhub as daemon (or in background mode)
In order to run uhub as a daemon, start it with the -f switch which will make it fork into the background.
In addition, use the -l to specify a log file instead of stdout. One can also specify a specific user and/or group,
if one wishes to run uhub as a specific user using the -u and -g switches.
@ -46,22 +58,25 @@ Example:
% uhub -f -l mylog.txt -u nobody -g nogroup
If you are planning to more than 1024 users on hub, you must increase the max number of file descriptors allowed.
## Having more than 1024 users on uhub
If you are planning to more than 1024 users on your hub, you must increase the max number of file descriptors allowed.
This limit needs to be higher than the configured max_users in uhub.conf.
In Linux can add the following lines to /etc/security/limits.conf (allows for ~4000 users)
* soft nofile 4096
* hard nofile 4096
* soft nofile 4096
* hard nofile 4096
Or, you can use (as root):
% ulimit -n 4096
## Interact with uhub through your hub chat (only for operator/admin):
You can interact with uhub in your hub main chat using the `!` prefix, followed by a command:
Example :
Example, to display help and the command you can use:
* to display help and the command you can use:
!help
* !help
Your mileage may vary -- Good luck!

70
doc/ssl-documentation.txt Normal file
View File

@ -0,0 +1,70 @@
# Setting up an SSL hub
## About certificates
Before you can setup an SSL protected hub, you must create an SSL certificate for the hub.
NOTE: uhub must be compiled with SSL support enabled in order for this to work (enabled by default, but not for Windows).
## Configuring uhub
If you have your certificates ready, just set these configuration values in uhub.conf file:
tls_private_key="/path/to/domainname.key"
tls_certificate="/path/to/domainname.crt"
tls_enable=yes
tls_require=yes
Now you can connect to the hub using the adcs:// protocol handle.
## Creating certificates
### Creating a self-signed certificate
To create self-signed certificates with an 2048 bits RSA private key using the following command:
$ openssl genrsa -out domainname.key 2048
Then create the certificate (valid for 365 days, using sha256):
$ openssl req -new -x509 -nodes -sha256 -days 365 -key domainname.key > domainname.crt
At this point point you will be prompted a few questions, see the section Certificate data below.
## Creating a certificate with a CA
Create an 2048 bits RSA private key using the following command:
$ openssl genrsa -out domainname.key 2048
Then create a Certificate Signing Request (csr):
$ openssl req -new -key domainname.key -out domainname.csr
See the "Certificate data" section below for answering the certificate questions.
After this is done, you should send the domainname.csr to your CA for signing, and when the transaction is done you get the certificate from the CA.
Save the certificate as dommainname.crt.
## Certificate data
When creating a certificate, you are asked a series of questions, follow this guide:
Two letter country code. Example: DE.
State or Province Name. Example: Bavaria
Locality Name. Example: Munich
Organization Name. The name of your organization or company. Use your name if this certificate is not for any organization)
Organizational Unit Name. The name of your department within your organization, like sysadmin, etc. (can be left blank)
Common Name. The hostname of your server. Example: secure.extatic.org
Your e-mail address
## Giving fingerprint
Now that you have ssl activated on your hub, you may have to share the certificate fingerprint to your hub user:
Find it by using this commandline:
$ openssl x509 -noout -fingerprint -sha256 < "/path/to/domainname.crt" | cut -d '=' -f 2 | tr -dc "[A-F][0-9]" | xxd -r -p | base32 | tr -d "="
And give your full uhub address:
adc://localhost:1511?kp=SHA256/THE_VALUE_RETURNED_BY_COMMANDLINE_ABOVE