Skip to main content

Deploy on Debian linux

Requirements:

  • Node.js and npm
  • git
  • 3 gigabyte or more free (harddrive)disk space

Diskspace needed:

Amount of disk space consumed after installing:

user@debian:/tmpdu -sh app-v0.0.1
1.5G app-v0.0.1

Install npm on Debian:

We recommend that you use a npm version that is later than 8.5, in order to get a later version on debian, add the nodejs package mirror and upgrade your local nodejs version:

sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list
sudo apt-get update
sudo apt-get install nodejs -y

Step 1:

Clone repo:

git clone https://github.com/XcmSend/app.git

Install with npm:

cd app/ 
npm install -f
npm run build

Note: Make sure you run a version of nodejs that is more later than 8,5.

Step 2:

Run the local instance

npm run dev

> @bagpipes/xcm-send@0.0.3 dev
> yarn build:tailwind && vite

yarn run v1.22.19
npx tailwindcss -c ./tailwind.config.js -i ./src/index.css -o dist/output.css
VITE v4.4.9 ready in 9429 ms

➜ Local: http://localhost:5173/
➜ Network: use --host to expose
➜ press h to show help

Paste 'http://localhost:5173/' into your browser and you're ready to use bagpipes.

Step 3(optimal):

In step 2 you learned how to run a local instance of XCMSend. If you want people to be able to access it publicly we need to forward incoming connections to our XCMSend instance that is located at: 127.0.0.1:5173.

Run a public instance

A popular way to deploy XCMSend would be to let the Nginx webserver reverseproxy the connections to the local instance.

Install nginx

apt install nginx

Enable nginx to auto start

systemctl enable nginx

Set configuration file /etc/nginx/sites-available/nginx.conf:

server {
listen 8080;
server_name localhost;

location / {
proxy_pass http://127.0.0.1:5173;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

location /static/ {
alias /usr/src/app/app-v0.0.1/static/;
}

location /media/ {
alias /usr/src/app/app-v0.0.1/media/;
}

}

Restart nginx:

systemctl restart nginx