# How do I deploy my MERN app?

https://www.seturack.com/en/knowledgebase/article/how-do-i-deploy-my-mern-app

1. In the panel, open **My servers** and click your server.
2. On the **Overview** tab, wait for the **App** row to say "MERN is ready". The page refreshes itself.
3. Open the link in the **Site address** row. If the sample page says `MongoDB: OK`, the app is reaching the database.

## Folders

- `/home/app/uygulama/sunucu`: the Express app (`server.js`). The connection string is in the `.env` file next to it.
- `/home/app/uygulama/istemci`: the React source. Building it writes to the `sunucu/public` folder.

## Changing the code

[Connect over SSH](https://www.seturack.com/en/knowledgebase/article/how-to-connect-with-ssh) and run:

`su - app`

`cd ~/uygulama`

After copying your code in, restart the app:

`pm2 restart uygulama`

The app should listen on port **3000**.

## MongoDB

MongoDB can only be reached from inside the server. The **Login** and **Password** rows in the panel are the admin account. To connect from your computer, use an SSH tunnel.

## Your own domain

1. Point your domain's A record to your server's IP address.
2. As root, replace the old name everywhere: `sed -i 's/OLD_NAME/yourdomain.com/g' /etc/caddy/Caddyfile`. `OLD_NAME` is the part after `https://` in the address shown in the panel.
3. Run `systemctl reload caddy`.

Caddy gets and renews the certificate by itself.

Only **80**, **443** and **22** for SSH are open to the outside.

**No server yet?** [Order a server with MERN installed](https://www.seturack.com/en/mern-vps): you choose the size and pay for what you choose.
