# Server Setup

Before going to install the server and all things you need to download the following software for the server. we are assuming that you have basic knowledge of commands.

* [Text Editor (We Used Visual Studio Code)](https://code.visualstudio.com/download)
* [NPM](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm)

We have attached the go-meeting-server folder inside the package.

* Follow all the steps and install carefully.
* Unzip source code file which has full source code of server. Unzip the folder and open in the visual studio code. Insite the terminal of visual studio code : run the command below

  * `npm i` or `npm install`

  this command will install all the required packages. after packages are installed successfully., run the below command

  * `npm start`

you will see that your server will be running on 3001 port, in the browser open the url [`http://localhost:3001/echo`](http://localhost:3001/echo) you will see the message <mark style="background-color:orange;">"Echo From server"</mark>

**How to install go-meeting-server on Hosting(we recommended VPS or AWS EC2)**

Please not that this will not work on cpanel. you must have vps hosting or aws or any server who is providing terminal access with root.<br>

now we are assuming that you have fresh aws instance ip. login into the terminal and first step is to install npm and node. please [follow this link](https://www.how2shout.com/linux/how-to-install-node-js-npm-on-amazon-ec2-ubuntu-linux/) .\
After that upload the go-meeting-server.zip file on server and unzip it. now go to go-meeting-server using `cd go-meeting-server`  and than run `npm i` and `npm start`one by one. if you see the below code thn congratulations!!! your project will run successfully on <http://your\\_ip:3001> /echo if you linked your domain with hosting thn you can check it on <http://your\\_domain:3001/echo>

make sure that your port 3001 is enabled and not blocked by any security or firewall read [how to open port on ubuntu](https://www.cyberciti.biz/faq/how-to-open-firewall-port-on-ubuntu-linux-12-04-14-04-lts/)&#x20;

You must have your site running on https for connecting the app with turn server. for that you have to install ssl certificates and have to add those path in go-meeting-server/src/server.ts

[click here for how to install letsencrypt free certificate on ubuntu](https://tecadmin.net/install-lets-encrypt-create-ssl-ubuntu/)

After installing SSL open go-meeting-server/src/server.ts file and change the const IS\_PROD from false to true in line no 1 and change the path of your certificates in line number 6,7,8. see in image below

![](/files/tg3qsFp4eb5DaJ1rhDuo)

restart the server again with command `npm start` and open your url with <https://your\\_domain:3001/echo>

below is some helpful links in case you face any errors while installation.

[Let's Encrypt SSL couldn't start by error. EACCESS: Permission denied](https://stackoverflow.com/questions/48078083/lets-encrypt-ssl-couldnt-start-by-error-eacces-permission-denied-open-et)

[Connect AWS EC2 instance to GoDaddy  Domain](http://fredericpaladin.com/kb/connect-aws-ec2-instance-to-godaddy-domain/)

[Create ec2 instance in AWS](https://docs.aws.amazon.com/efs/latest/ug/gs-step-one-create-ec2-resources.html)

### Replace Domain and Server at Application Side

![](/files/EWrZMUKuFoey57xb7eCA)

Open Flutter Application, Go to Constant.dart file and please replace domain and Port with your domain and port.<br>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://songalaxy1344.gitbook.io/gomeeting-project-setup/setup-local-server.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
