Server Installation and Service » Historie » Verze 31
Eliška Mourycová, 2021-06-13 05:35
1 | 22 | Eliška Mourycová | h1. Server Installation |
---|---|---|---|
2 | 1 | Eliška Mourycová | |
3 | The server runs on Debian 10 VM at https://nuada.zcu.cz/ |
||
4 | 3 | Eliška Mourycová | The ip of the machine is 147.228.173.54 |
5 | 1 | Eliška Mourycová | |
6 | 13 | Eliška Mourycová | The application was tested on a machine with the following specs: |
7 | |||
8 | 3 | Eliška Mourycová | h2. Hardware requirements |
9 | 1 | Eliška Mourycová | |
10 | 15 | Eliška Mourycová | * *RAM size* |
11 | ** 768 MB |
||
12 | * *Disk size* |
||
13 | ** 4 GB |
||
14 | * *CPU architecture* |
||
15 | ** x86_64 |
||
16 | 1 | Eliška Mourycová | |
17 | |||
18 | 13 | Eliška Mourycová | h2. Software requirements |
19 | 3 | Eliška Mourycová | |
20 | 15 | Eliška Mourycová | * *OS, OS version* |
21 | ** OS: Debian GNU/Linux 10, version 10.9 |
||
22 | 4 | Eliška Mourycová | |
23 | 17 | Eliška Mourycová | h2. Deploying the Server Application |
24 | 1 | Eliška Mourycová | |
25 | |||
26 | 7 | Roman Kalivoda | h3. Building the project |
27 | 1 | Eliška Mourycová | |
28 | At the moment, the easiest way to build the project is to build it locally in Windows with the following commands: |
||
29 | open windows command line (cmd.exe) in the directory where the solution file is located. Please make sure you can run `dotnet` command from the cmd. Make sure you have the right SDK on your system: |
||
30 | 11 | Eliška Mourycová | <pre> |
31 | dotnet --list-sdks |
||
32 | </pre> |
||
33 | |||
34 | 7 | Roman Kalivoda | Version 5.0 is needed to build the project. If you have this version, you can build the project: |
35 | 1 | Eliška Mourycová | |
36 | <pre> |
||
37 | dotnet publish --runtime=linux-x64 ServerApp.sln |
||
38 | </pre> |
||
39 | |||
40 | The built project files are in folder: |
||
41 | 27 | Eliška Mourycová | <pre> |
42 | 1 | Eliška Mourycová | .\ServerApp\bin\Debug\net5.0\linux-x64\publish |
43 | 27 | Eliška Mourycová | </pre> |
44 | 1 | Eliška Mourycová | |
45 | h3. Note |
||
46 | |||
47 | The project could probably be built on-site as well, but that would require .NET SDK to be installed and require larger disc space. |
||
48 | |||
49 | 18 | Eliška Mourycová | |
50 | h3. Uploading the project to the remote machine |
||
51 | |||
52 | Upload the whole folder built with the commands below: |
||
53 | |||
54 | <pre> |
||
55 | scp -r /pathToFolder/publish root@{machine_ip}:/<path>/ |
||
56 | </pre> |
||
57 | |||
58 | You can also upload the default configuration file: |
||
59 | |||
60 | <pre> |
||
61 | scp /path/server_config root@{machine_ip}:/<path>/ |
||
62 | </pre> |
||
63 | |||
64 | 1 | Eliška Mourycová | |
65 | 18 | Eliška Mourycová | h3. Server Configuration File |
66 | 27 | Eliška Mourycová | (See also [[Project architecture]]) |
67 | 19 | Eliška Mourycová | |
68 | The configuration file must contain the following lines: |
||
69 | |||
70 | * Site for OpenData (*site*) |
||
71 | * Data files naming convention (*naming_convention*) |
||
72 | * Root directory where data files are saved (*data_root_dir*) |
||
73 | * Port (*port*) |
||
74 | * Site for weather prediction (*weather_site*) |
||
75 | |||
76 | These lines must be followed by lines containing the desired values. |
||
77 | Default setting of the config file is as follows: |
||
78 | |||
79 | h5. Site for opendata |
||
80 | |||
81 | The site configuration specifies the website where the UWB open data can be downloaded. |
||
82 | It is by default set to *http://openstore.zcu.cz/* |
||
83 | |||
84 | h5. naming_convention |
||
85 | |||
86 | The naming convention specifies how the archives available for download are named. |
||
87 | It is by default set to *OD_ZCU_{type}_{month}_{year}_{format}.zip* |
||
88 | Variables in this string must keep their name, cannot be excluded and others cannot be added. They must be enclosed in {} brackets. |
||
89 | {} characters are treated as special characters and cannot be used as a part of the name. |
||
90 | |||
91 | |||
92 | h5. data_root_dir |
||
93 | |||
94 | The data root directory specifies where the downloaded data will be stored. In this root directory subdirectories are created for individual data types. |
||
95 | It is by default set to *.\data\auto* (relative to the config file's path) |
||
96 | |||
97 | h5. port |
||
98 | |||
99 | The port specifies the port number at which the part of the server listens for clients' connections. |
||
100 | It is by default set to *10000* |
||
101 | |||
102 | h5. site for weather prediction |
||
103 | |||
104 | Furthermore the configuration file can contain link to the site from which the weather prediction is downloaded. Used link must lead to a page with a json file in format that satisfies the format specified on page [[Data file structure]] |
||
105 | It is by default set to *http://wttr.in/Plzen,czechia?format=j1* |
||
106 | 18 | Eliška Mourycová | |
107 | 12 | Eliška Mourycová | |
108 | h3. Running the server |
||
109 | 18 | Eliška Mourycová | |
110 | 27 | Eliška Mourycová | * A .p12 certificate file named *cert.p12* must exist in the directory where the app is launched |
111 | 1 | Eliška Mourycová | ** We used this one: attachment:cert.p12 |
112 | |||
113 | Firstly you most grant permission to run the executable: |
||
114 | |||
115 | <pre> |
||
116 | 12 | Eliška Mourycová | chmod +x <path>/ServerApp |
117 | </pre> |
||
118 | |||
119 | Then you can run the server: |
||
120 | |||
121 | <pre> |
||
122 | <path>/ServerApp <args> |
||
123 | </pre> |
||
124 | 1 | Eliška Mourycová | |
125 | 8 | Eliška Mourycová | The path to the *server configuration file* must be passed as (the only) argument to the application. |
126 | 7 | Roman Kalivoda | |
127 | 30 | Eliška Mourycová | h3. Important Notes |
128 | 26 | Eliška Mourycová | |
129 | 27 | Eliška Mourycová | * *The shell from which the server application was started must remain open for as long as the server runs.* The server does not get forked into background in any way. |
130 | * The server app must be launched from a directory where all the needed binaries (located in the publish directory when built) are located. |
||
131 | 8 | Eliška Mourycová | |
132 | 23 | Eliška Mourycová | |
133 | h1. Admin Commands |
||
134 | 24 | Eliška Mourycová | |
135 | While the server is running, you can type commands into the console. The available commands are as follow: |
||
136 | * *data [OPTION] [DATE]...* |
||
137 | ** Description: Capable of showing saved data files and downloading new ones. |
||
138 | ** *-list*: Lists currently saved data files. This list does not have to match the files which any of the predictors is trained on! |
||
139 | *** Example: data -list |
||
140 | ** *-dl [startDate] [endDate]*: <notextile>Downloads jis, login and weather files from a specified time span. Both [startDate] and [endDate] are inclusive. Date format must be entered as [month]-[year].</notextile> |
||
141 | *** Example: data -dl 1-2019 12-2020 |
||
142 | |||
143 | |||
144 | * *model [OPTION]* |
||
145 | ** Description: Capable of retraining the prediction model, going back to the previous version and listing files on which the predictor was trained. |
||
146 | ** *-files*: Lists the data files on which the currently used model was trained. |
||
147 | *** Example: model -files |
||
148 | ** *-retrain*: Retrains the model using the files currently saved in the data directory. |
||
149 | *** Example: model -retrain |
||
150 | ** *-rollback*: Switches the model back to the previous version. |
||
151 | *** Example: model -rollback |
||
152 | |||
153 | |||
154 | * *help* |
||
155 | ** Description: Lists available commands and their description. |
||
156 | 25 | Eliška Mourycová | |
157 | |||
158 | h1. Logging |
||
159 | |||
160 | 28 | Eliška Mourycová | The server logs information about its activity to a file named *server.log* located in the director where the server was launched. |
161 | It also creates 2 backup log files. |
||
162 | The logging configuration can be modified in |
||
163 | <pre> |
||
164 | <path>\Server\ServerApp\App.config |
||
165 | </pre> |
||
166 | 29 | Eliška Mourycová | |
167 | By default, the application does not print logs to the console, this can be changed by modifying the following attribute in the *App.config* file: |
||
168 | |||
169 | Change |
||
170 | <pre> |
||
171 | |||
172 | <root> |
||
173 | <level value="ALL" /> |
||
174 | <appender-ref ref="LogFileAppender" /> |
||
175 | </root> |
||
176 | |||
177 | </pre> |
||
178 | |||
179 | To |
||
180 | |||
181 | <pre> |
||
182 | |||
183 | <root> |
||
184 | <level value="ALL" /> |
||
185 | <appender-ref ref="LogFileAppender" /> |
||
186 | <appender-ref ref="ConsoleAppender" /> |
||
187 | </root> |
||
188 | |||
189 | </pre> |