Skip to content

Commit b2676ad

Browse files
authored
Update initial_setup.sh
1 parent 6b3de85 commit b2676ad

File tree

1 file changed

+60
-19
lines changed

1 file changed

+60
-19
lines changed

initial_setup.sh

Lines changed: 60 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -112,24 +112,65 @@ fi
112112
# Go back to the base directory
113113
cd ../../ || { echo "Error: Failed to return to base directory."; exit 1; }
114114

115-
# Start Backend Server
116-
echo "Navigating to backend directory and starting Backend Server..."
117-
cd backend || { echo "Error: Failed to navigate to backend directory."; exit 1; }
118-
pm2 start dist/main.js --name "Backend Server" || { echo "Error: Failed to start Backend Server."; exit 1; }
119-
120-
# Start Web App
121-
echo "Navigating to web_app directory and starting Web App..."
122-
cd ../web_app/Runner_webapp || { echo "Error: Failed to navigate to web_app directory."; exit 1; }
123-
pm2 start main.js --name "Web App" || { echo "Error: Failed to start Web App."; exit 1; }
124-
125-
# Start Admin Web App
126-
echo "Navigating to admin_web_app directory and starting Admin Web App..."
127-
cd ../../admin_web_app/Runner_webapp || { echo "Error: Failed to navigate to admin_web_app directory."; exit 1; }
128-
pm2 start main.js --name "Admin Web App" || { echo "Error: Failed to start Admin Web App."; exit 1; }
129-
130-
# Save PM2 process list and ensure PM2 startup
131-
echo "Saving PM2 process list and setting up PM2 startup..."
132-
pm2 save || { echo "Error: Failed to save PM2 processes."; exit 1; }
133-
pm2 startup || { echo "Error: Failed to setup PM2 startup."; exit 1; }
115+
116+
# Create systemd service files and enable/start them
117+
create_service() {
118+
local name=$1
119+
local description=$2
120+
local exec_start=$3
121+
local working_dir=$4
122+
local env_file=$5
123+
124+
local service_file="/etc/systemd/system/${name}.service"
125+
126+
echo "Creating systemd service: $name"
127+
128+
sudo bash -c "cat > $service_file" <<EOF
129+
[Unit]
130+
Description=$description
131+
After=network.target
132+
133+
[Service]
134+
ExecStart=/usr/bin/node $exec_start
135+
WorkingDirectory=$working_dir
136+
Restart=always
137+
User=root
138+
EnvironmentFile=$env_file
139+
140+
[Install]
141+
WantedBy=multi-user.target
142+
EOF
143+
144+
echo "Reloading systemd daemon..."
145+
sudo systemctl daemon-reexec
146+
sudo systemctl daemon-reload
147+
148+
echo "Enabling and starting $name..."
149+
sudo systemctl enable --now "$name"
150+
151+
echo "Status of $name:"
152+
sudo systemctl status "$name" --no-pager
153+
}
154+
155+
# Backend service
156+
create_service "fides-backend" \
157+
"FidesInnova Backend Server" \
158+
"/home/ubuntu/Blockchain-based-IoT-Server/backend/dist/main.js" \
159+
"/home/ubuntu/Blockchain-based-IoT-Server/backend" \
160+
"/home/ubuntu/Blockchain-based-IoT-Server/backend/.env"
161+
162+
# User Webapp service
163+
create_service "fides-user-webapp" \
164+
"FidesInnova User Webapp" \
165+
"/home/ubuntu/Blockchain-based-IoT-Server/web_app/Runner_webapp/main.js" \
166+
"/home/ubuntu/Blockchain-based-IoT-Server/web_app/Runner_webapp" \
167+
"/home/ubuntu/Blockchain-based-IoT-Server/web_app/Runner_webapp/.env"
168+
169+
# Admin Webapp service
170+
create_service "fides-admin-webapp" \
171+
"FidesInnova Admin Webapp" \
172+
"/home/ubuntu/Blockchain-based-IoT-Server/admin_web_app/Runner_webapp/main.js" \
173+
"/home/ubuntu/Blockchain-based-IoT-Server/admin_web_app/Runner_webapp" \
174+
"/home/ubuntu/Blockchain-based-IoT-Server/admin_web_app/Runner_webapp/.env"
134175

135176
echo "All services started successfully."

0 commit comments

Comments
 (0)