From cbe1eb21e4d375e996184f60f1c90ee3d44194fd Mon Sep 17 00:00:00 2001 From: Starnop Date: Thu, 13 Jun 2019 19:23:01 +0800 Subject: [PATCH] feature: add a doc about how to install golang supernode Signed-off-by: Starnop --- docs/en-us/userguide/install_server.md | 4 +- docs/en-us/userguide/install_server_go.md | 135 ++++++++++++++++++++++ 2 files changed, 137 insertions(+), 2 deletions(-) create mode 100644 docs/en-us/userguide/install_server_go.md diff --git a/docs/en-us/userguide/install_server.md b/docs/en-us/userguide/install_server.md index 04ed095..d97ea92 100644 --- a/docs/en-us/userguide/install_server.md +++ b/docs/en-us/userguide/install_server.md @@ -46,7 +46,7 @@ Nginx|0.8+ 3. Build the Docker image. ```sh - make build-supernode + make build-supernode-java ``` 4. Obtain the latest Docker image ID of the SuperNode. @@ -93,7 +93,7 @@ Nginx|0.8+ **Tip:** The path of the Nginx configuration file is something like `src/supernode/src/main/docker/sources/nginx.conf`. - ``` + ```conf server { listen 8001; location / { diff --git a/docs/en-us/userguide/install_server_go.md b/docs/en-us/userguide/install_server_go.md new file mode 100644 index 0000000..b8f7609 --- /dev/null +++ b/docs/en-us/userguide/install_server_go.md @@ -0,0 +1,135 @@ +# Installing Dragonfly Server + +This topic explains how to install the Dragonfly server with **Golang version**. + +**NOTE**: The Golang version supernode is **not ready for production usage**. However, you can use it more easily in your test environment. + +## Context + +Install the SuperNodes in one of the following ways: + +- Deploying with Docker: Recommended for quick local deployment and test. +- Deploying with physical machines: Recommended for production usage. + +## Prerequisites + +When deploying with Docker, the following conditions must be met. + +Required Software | Version Limit +---|--- +Git|1.9.1+ +Docker|1.12.0+ + +When deploying with physical machines, the following conditions must be met. + +Required Software | Version Limit +---|--- +Git|1.9.1+ +Golang|1.10.2+ +Nginx|0.8+ + +## Procedure - When Deploying with Docker + +### Get Supernode image + +You can build your own supernode image. + +1. Obtain the source code of Dragonfly. + + ```sh + git clone https://github.com/dragonflyoss/Dragonfly.git + ``` + +2. Enter the project directory. + + ```sh + cd Dragonfly + ``` + +3. Build the Docker image. + + ```sh + TAG="test" + make docker-build-supernode DF_VERSION=$TAG + ``` + +4. Obtain the latest Docker image ID of the SuperNode. + + ```sh + docker image ls|grep 'supernode' |awk '{print $3}' | head -n1 + ``` + +Or you can get it from [DockerHub](https://hub.docker.com/) directly. + +1. Obtain the latest Docker image ID of the SuperNode. + + ```sh + docker pull supernode:0.4.0 + ``` + +### Start the SuperNode + +**NOTE**: Replace ${supernodeDockerImageId} with the ID obtained at the previous step. + +```sh +docker run -d --name dfsupernode -p 8002:8002 -v /home/admin/supernode:/home/admin/supernode ${supernodeDockerImageId} --advertise-ip=127.0.0.1 --download-port=8001 +``` + +## Procedure - When Deploying with Physical Machines + +1. Obtain the source code of Dragonfly. + + ```sh + git clone https://github.com/dragonflyoss/Dragonfly.git + ``` + +2. Enter the project directory. + + ```sh + cd Dragonfly + ``` + +3. Compile the source code. + + ```sh + make build-supernode && make install + ``` + +4. Start the SuperNode. + + ```sh + supernode --home-dir=/home/admin/supernode --port=8002 --advertise-ip=127.0.0.1 --download-port=8001 + ``` + +5. Add the following configuration items to the Nginx configuration file. + + ```conf + server { + listen 8001; + location / { + # Must be ${supernode.baseHome}/repo + root /home/admin/supernode/repo; + } + } + ``` + +6. Start Nginx. + + ```sh + sudo nginx + ``` + +## After this Task + +- After the SuperNode is installed, run the following commands to verify if Nginx and **Supernode** are started, and if Port `8001` and `8002` are available. + + ```sh + telnet 127.0.0.1 8001 + telent 127.0.0.1 8002 + ``` + +- Install the Dragonfly client and test if the downloading works. + + ```sh + dfget --url "http://${resourceUrl}" --output ./resource.png --node "127.0.0.1:8002" + ```