Server Installation and Service » Historie » Verze 16
Eliška Mourycová, 2021-05-28 10:15
1 | 16 | 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 | 14 | Eliška Mourycová | * -Mono, version 5.18.0.240- |
23 | 4 | Eliška Mourycová | |
24 | 1 | Eliška Mourycová | h2. "Deploying" the Server Application |
25 | |||
26 | h3. Uploading the project to the remote machine |
||
27 | |||
28 | 7 | Roman Kalivoda | Upload the whole folder built with the commands below: |
29 | 1 | Eliška Mourycová | |
30 | 8 | Eliška Mourycová | <pre> |
31 | 11 | Eliška Mourycová | scp -r /pathToFolder/publish root@{machine_ip}:/<path>/ |
32 | 8 | Eliška Mourycová | </pre> |
33 | 1 | Eliška Mourycová | |
34 | 7 | Roman Kalivoda | You can also upload the default configuration file: |
35 | 1 | Eliška Mourycová | |
36 | 8 | Eliška Mourycová | <pre> |
37 | 11 | Eliška Mourycová | scp /path/server_config root@{machine_ip}:/<path>/ |
38 | 8 | Eliška Mourycová | </pre> |
39 | 1 | Eliška Mourycová | |
40 | 7 | Roman Kalivoda | h3. Building the project |
41 | 1 | Eliška Mourycová | |
42 | At the moment, the easiest way to build the project is to build it locally in Windows with the following commands: |
||
43 | 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: |
||
44 | 11 | Eliška Mourycová | <pre> |
45 | dotnet --list-sdks |
||
46 | </pre> |
||
47 | |||
48 | 7 | Roman Kalivoda | Version 5.0 is needed to build the project. If you have this version, you can build the project: |
49 | 11 | Eliška Mourycová | |
50 | <pre> |
||
51 | dotnet publish --runtime=linux-x64 ServerApp.sln |
||
52 | </pre> |
||
53 | |||
54 | 1 | Eliška Mourycová | The built project files are in folder: |
55 | .\ServerApp\bin\Debug\net5.0\linux-x64\publish |
||
56 | |||
57 | 12 | Eliška Mourycová | |
58 | h3. Note |
||
59 | |||
60 | The project could probably be built on-site as well, but that would require .NET SDK to be installed and require larger disc space. |
||
61 | |||
62 | h3. Running the server |
||
63 | |||
64 | * A folder named *data* must exist in the directory where the app is launched |
||
65 | * A .p12 file named *cert.p12* must exist in the directory where the app is launched |
||
66 | ** We used this one: attachment:cert.p12 |
||
67 | |||
68 | Firstly you most grant permission to run the executable: |
||
69 | |||
70 | <pre> |
||
71 | chmod +x <path>/ServerApp |
||
72 | </pre> |
||
73 | |||
74 | Then you can run the server: |
||
75 | |||
76 | <pre> |
||
77 | <path>/ServerApp <args> |
||
78 | </pre> |
||
79 | |||
80 | |||
81 | |||
82 | 1 | Eliška Mourycová | --- |
83 | 11 | Eliška Mourycová | |
84 | 1 | Eliška Mourycová | h3. Certificate generation and usage (DEPRECATED) |
85 | 11 | Eliška Mourycová | |
86 | 1 | Eliška Mourycová | This section provides instructions for generating and using a certificate with a secific port. |
87 | 12 | Eliška Mourycová | *Important note*: this approach was used when the server application ran under the Mono framework. Mono is no longer used for running the application as it was unable to use some needed libraries. |
88 | * Follow these steps if the above stated instructions didn't work as expected. |
||
89 | 1 | Eliška Mourycová | |
90 | 12 | Eliška Mourycová | h4. Mono installation |
91 | |||
92 | <pre> |
||
93 | sudo apt install mono-complete |
||
94 | </pre> |
||
95 | |||
96 | |||
97 | 11 | Eliška Mourycová | h4. Generating the certificate |
98 | |||
99 | http://www.mono-project.com/archived/using-clientcertificates-with-xsp/ |
||
100 | 7 | Roman Kalivoda | |
101 | 2 | Eliška Mourycová | <pre> |
102 | 1 | Eliška Mourycová | makecert -r -n "CN=My Own Test CA" -sv root.key root.cer |
103 | certmgr --add -c Trust root.cer |
||
104 | 9 | Eliška Mourycová | hostname (displays the machine's host name) |
105 | makecert -iv root.key -ic root.cer -eku 1.3.6.1.5.5.7.3.1 -n "CN={hostname}" -p12 {hostname}.p12 s3kr3t |
||
106 | 1 | Eliška Mourycová | </pre> |
107 | 10 | Eliška Mourycová | |
108 | 1 | Eliška Mourycová | h4. Linking the certificate to a port? |
109 | 9 | Eliška Mourycová | |
110 | 7 | Roman Kalivoda | <pre> |
111 | 2 | Eliška Mourycová | httpcfg -add -port {port} -pvk root.key -cert root.crt |
112 | 8 | Eliška Mourycová | </pre> |
113 | 11 | Eliška Mourycová | |
114 | 16 | Eliška Mourycová | h4. Adding trusted root certificates to the server |
115 | 2 | Eliška Mourycová | |
116 | 8 | Eliška Mourycová | Copy your CA to dir /usr/local/share/ca-certificates/ |
117 | 7 | Roman Kalivoda | Use command: sudo cp foo.crt /usr/local/share/ca-certificates/foo.crt |
118 | 8 | Eliška Mourycová | Update the CA store: sudo update-ca-certificates |
119 | 11 | Eliška Mourycová | |
120 | 8 | Eliška Mourycová | --- |