Jul 11, 2024
~/.ssh/ directory.ssh -i "path-to-key" ubuntu@your-ec2-instance-public-ip
chmod 400 your-key.pem.sudo apt update
sudo apt upgrade
sudo apt install nodejs
sudo apt install npm
node -v
npm -v
rsync -avz -e "ssh -i path-to-key" --exclude 'node_modules' --exclude '.git' ./ ubuntu@your-ec2-instance-public-ip:/home/ubuntu/app
cd ~/app
npm install
npm run build
npm start
sudo apt install postgresql postgresql-contrib
sudo systemctl start postgresql
sudo systemctl enable postgresql
sudo -u postgres psql
CREATE DATABASE myapp;
CREATE USER myappuser WITH ENCRYPTED PASSWORD 'password';
GRANT ALL PRIVILEGES ON DATABASE myapp TO myappuser;
npm run migrate
/etc/environment.d/myapp.envDATABASE_URL).chmod 600 /etc/environment.d/myapp.env
/etc/systemd/system/myapp.service[Unit]
Description=My Web App
After=network.target
[Service]
User=ubuntu
WorkingDirectory=/home/ubuntu/app
ExecStart=/usr/bin/npm start
EnvironmentFile=/etc/environment.d/myapp.env
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=myapp
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl start myapp.service
sudo systemctl enable myapp.service
sudo systemctl status myapp.service
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo tee /etc/apt/trusted.gpg.d/caddy-stable.asc
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy
/etc/caddy/Caddyfileexpenses.smw.wtf {
reverse_proxy 127.0.0.1:3000
}
sudo systemctl restart caddy
expenses.smw.wtf in a browser.