# How do I deploy my Node.js app?

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

1. In the panel, open **My servers** and click your server.
2. On the **Overview** tab, wait for the **App** row to say "Node.js is ready". The page refreshes itself.
3. Open the link in the **Site address** row. The sample page shows the Node.js version.

## Running your own app

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

`su - app`

`cd ~/uygulama`

Bring your code here, for example with `git clone`. You can delete the sample `server.js`. Install the dependencies and start your app:

`npm install`

`pm2 delete uygulama`

`pm2 start server.js --name uygulama`

`pm2 save`

Your app should listen on port **3000**. Caddy forwards incoming HTTPS requests to that port.

## 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 Node.js installed](https://www.seturack.com/en/node-vps): you choose the size and pay for what you choose.
