Getting started#
Clone the repository#
Your first step is to clone the Filetransfer Tool Server repository and its submodules with these commands:
git clone https://github.com/ansys/ansys-tools-filetransfer-server
cd ansys-tools-filetransfer-server
git submodule update --init --recursive
Build the server#
You have two options for building the Filetransfer Tool Server:
Use Docker: Build a Docker image that contains the server.
Use a Manual build (Linux or Windows): Build the server directly on your machine.
To build the Docker image, run the following command from the root of the repository:
docker build -f docker/Dockerfile . --tag filetransfer-tool-server
To build on Linux, you must have these tools installed:
python3
cmake
g++
compiler
First, you must install the development dependencies:
python3 -m pip install pipx
pipx ensurepath
pipx install 'poetry>=1.8.0'
poetry install
Then, use Conan to fetch the C++ dependencies:
poetry run conan install -of build --build missing --profile:host=./conan/linux_x86_64_Release --profile:build=./conan/linux_x86_64_Release ./conan
Finally, use CMake to configure and build the project:
cmake -B build . -DCMAKE_TOOLCHAIN_FILE='build/conan_toolchain.cmake' -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release --parallel
To build on Windows, you must have these tools installed:
python
cmake
MSVC compiler
First, you must install the development dependencies:
python -m pip install pipx
pipx ensurepath
pipx install poetry
poetry install
Then, use Conan to fetch the C++ dependencies:
poetry run conan install -of build --build missing --profile:host=.\conan\windows_x86_64_Release --profile:build=.\conan\windows_x86_64_Release .\conan
Finally, use CMake to configure and build the project:
cmake -B build . -DCMAKE_TOOLCHAIN_FILE='build/conan_toolchain.cmake' -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release --parallel
Run the server#
After the server is built, you can run it in the following ways:
docker run -p 50000:50000 filetransfer-tool-server
This starts the server and exposes it on port 50000.
To make the uploaded files available to another process, you can share a volume between two Docker containers. A Docker Compose file might look like this:
version: '3.8'
services:
other-service:
restart: unless-stopped
image: <other_service_image>
<any other options needed for this service>
working_dir: /home/container/workdir
volumes:
- "shared_data:/home/container/workdir/"
user: "1000:1000"
ansys-tools-filetransfer:
restart: unless-stopped
image: filetransfer-tool-server
ports:
- "50000:50000"
working_dir: /home/container/workdir
volumes:
- "shared_data:/home/container/workdir/"
user: "1000:1000"
volumes:
shared_data:
./build/src/server --server-address localhost:50000
.\build\src\Release\server.exe --server-address localhost:50000
Command-line options#
The Filetransfer Tool Server provides these command-line options:
--help
- Display a help message and exit.--server-address
- Configure the address that the server is listening on.