Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature: Added Talawa-admin to run system daemon service in Linux, Added Eslint for Markdown file and updated the deprecated eslint #3130

Open
wants to merge 15 commits into
base: develop-postgres
Choose a base branch
from
Open
68 changes: 68 additions & 0 deletions examples/linux/Daemon_Service_Setup.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@

# Talawa-Admin Service Setup Guide

This guide outlines the steps to set up and manage the Talawa-Admin service on a Linux server using `systemd`.

### Prerequisites

- Ensure **Node.js** and **npm** are correctly installed and available for the specified user and group.
- It’s recommended to use **nvm** (Node Version Manager) for better management of different Node.js versions.

---

### Service Configuration

#### 1. **Copy the `talawa_admin.service` file**
- Place the `talawa_admin.service` file in the appropriate systemd directory based on your Linux distribution:
- For most distributions: `/etc/systemd/system/`
- For systems using `systemd`, this will be the default directory.

#### 2. **Verify the CODEROOT Path**
- Ensure that the `CODEROOT` environment variable matches the absolute path to the Talawa-Admin code directory.

#### 3. **Set the Correct Working Directory**
- Always use the absolute path for the `WorkingDirectory`. Do **not** use `$CODEROOT` in the `WorkingDirectory` field.

#### 4. **Ensure the `.env` File Exists**
- Verify that the path in the `EnvironmentFile` line points to a valid `.env` file located in the root directory of the Talawa-Admin repository.

#### 5. **Adjust User and Group**
- Modify the `User` and `Group` settings to match the user account intended to run the service.

---

### Steps to Enable and Manage the Service

1. **Reload the systemd daemon** to apply changes:
```bash
sudo systemctl daemon-reload
```

2. **Start the Talawa-Admin Service**:
```bash
sudo systemctl start talawa_admin.service
```

3. **Stop the Talawa-Admin Service**:
```bash
sudo systemctl stop talawa_admin.service
```

4. **Enable the Service to Start on Boot**:
```bash
sudo systemctl enable talawa_admin.service
```

---

### Troubleshooting

- If you encounter any issues, you can check the status and logs of the service:
```bash
sudo systemctl status talawa_admin.service
sudo journalctl -u talawa_admin.service
```

---

By following these steps, you can set up and manage the Talawa-Admin service efficiently on your Linux server.
47 changes: 47 additions & 0 deletions examples/linux/systemd/talawa_admin.service
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@

################################################################################
#
# READ ALL STEPS BEFORE PROCEEDING
#
# 0) Ensure that Node.js and npm are correctly installed and available for the
# specified user and group.
# Use nvm for better interaction with different node versions.
# 1) Place this file in the appropriate systemd directory based on your Linux
# distribution, e.g., /etc/systemd/system/.
# 2) Verify the CODEROOT path matches the Talawa-Admin code directory.
# 3) Always add the absolute path of talawa-admin directory to WorkingDirectory don't use $CODEROOT.
# 4) Ensure the EnvironmentFile path points to a valid .env file for the service.
# 5) Adjust the User and Group to match the user account intended to run the service.
# 6) Run the command "sudo systemctl daemon-reload" after saving changes.
# 7) Use "sudo systemctl start talawa_admin.service" to start the service.
# 8) Use "sudo systemctl stop talawa_admin.service" to stop the service.
# 9) Use "sudo systemctl enable talawa_admin.service" to start the service on boot.
#
################################################################################
sahitya-chandra marked this conversation as resolved.
Show resolved Hide resolved

[Unit]
Description=Talawa-Admin Service
After=network.target

[Service]
User=talawa
Group=talawa
Environment=CODEROOT=path/to/your/talawa-admin

# Absolute path is needed for working directory
WorkingDirectory=/path/to/your/talawa-admin
sahitya-chandra marked this conversation as resolved.
Show resolved Hide resolved

EnvironmentFile=/path/to/your/talawa-admin/.env
sahitya-chandra marked this conversation as resolved.
Show resolved Hide resolved

################################################################################
# No need to edit anything below here
################################################################################

ExecStart=/bin/bash -c "source /path/to/your/.nvm/nvm.sh && nvm use default && npm run serve"
sahitya-chandra marked this conversation as resolved.
Show resolved Hide resolved
Restart=on-failure
RemainAfterExit=yes
Type=simple
RuntimeDirectory=talawa-admin

[Install]
WantedBy=multi-user.target
Loading