# Install a Node - Separate the Installation Process

**URL:** https://forum.algorand.co/t/install-a-node-separate-the-installation-process/8818
**Category:** General
**Created:** [January 20, 2023, 11:10pm UTC](https://forum.algorand.co/t/install-a-node-separate-the-installation-process/8818 "2023-01-20T23:10:18Z")
**Posts on this page:** 1
**Showing post:** 1

<div class="post-metadata">

### Author: ![algodeveloper](https://avatars.discourse-cdn.com/v4/letter/a/dec6dc/32.png) [@algodeveloper](https://forum.algorand.co/u/algodeveloper)
#### Post date: [January 20, 2023, 11:10pm UTC](https://forum.algorand.co/t/install-a-node-separate-the-installation-process/8818/1 "2023-01-20T23:10:18Z")

</div>

Need clarification, as I tried to install a node and have been waiting days for the node block to initialize up to latest block on TestNet. Then after 10 days for some unknown reason the `systemctl service for algorand` somehow resets itself, restarts itself, and changes the service file back to use -d /var/lib/algorand

Now I have all of the `set of algorand node files` in 2 directories.

1. /var/lib/algorand
2. /var/lib/algorand/node/

I used the `Red Hat distribution centos env` section and edited the system service file (Probably wrong way) for -d to be /var/lib/algorand/node/testnetdata and set ALGORAND\_DATA env var.

sudo -u algorand -E -s  
cd /var/lib/algorand/  
add to end of file  
vi .bashrc  
export ALGORAND\_DATA=“$HOME/node/testnetdata”  
export PATH=“$HOME/node:$PATH”

All I want is for this to be easy to read and easy to do.

1. To make it easier for everyone. Can you please split up this documentation link

> **[Install a node - Algorand Developer Portal](https://developer.algorand.org/docs/run-a-node/setup/install/)**
>
> Algorand Developer Docs, SDKs, REST APIs, CLI tools, ecosystem projects, metrics dashboard and sample code, how-tos, and news from the Algorand developer community

to be 5 separate webpages.  
webpage 1. Requirements to install a node - Hardware  
webpage 2. Installation with a package manager for Debian based distributions  
webpage 3. Installation with a package manager for Red Hat based distributions  
webpage 4. Installing on Linux using wget (these not verified, but should work)  
webpage 5. Installation with the updater script for Mac

Then each webpage have the same sections but specific to the env:  
Section 1. Explain the entire initialization process and how to know it’s done syncing.  
Section 2. Explain user `algorand` and `algod` and using `sudo -u algorand -E -s` with another user i.e. algodev  
Section 3. Add algodev user permissions file to /etc/sudoers.d/  
Section 3. Installing the Devtools  
Section 4. Start Node  
Section 5. Installing algod as a systemd service  
Section 6. How to use Catchup  
Section 7. How to use goal as different user, i.e. algodev, when using systemctl start algorand  
Section 8 How to edit systemctl service template and switch Testnet to Mainnet, etc.

I’m fine with /usr/bin having algod and goal

- how do I use goal to check status if I’m algodev user and using `systemctl start algorand` which was started as root. For example:

su -l algodev  
cd /home/algodev/  
`/usr/bin/sudo -u algorand -E -s goal node status -w 6000 -d /var/lib/algorand/node/testnetdata`

- how do I use goal node catchup when running node with systemctl start algorand

wget [https://algorand-catchpoints.s3.us-east-2.amazonaws.com/channel/betanet/latest.catchpoint](https://algorand-catchpoints.s3.us-east-2.amazonaws.com/channel/betanet/latest.catchpoint)  
wget [https://algorand-catchpoints.s3.us-east-2.amazonaws.com/channel/testnet/latest.catchpoint](https://algorand-catchpoints.s3.us-east-2.amazonaws.com/channel/testnet/latest.catchpoint)  
wget [https://algorand-catchpoints.s3.us-east-2.amazonaws.com/channel/mainnet/latest.catchpoint](https://algorand-catchpoints.s3.us-east-2.amazonaws.com/channel/mainnet/latest.catchpoint)

vi latest.catchpoint

`sudo -u algorand -E -s goal node catchup <CATCHPOINT_TOKEN> -d /var/lib/algorand/node/testnetdata`

Since systemctl is running node as a service, can I even use goal node catchup?

Another question I have, is if I installed with Red Hat package manager, how do I do an update when using systemctl? anything like yum update. When using the systemctl service approach, should I never use update.sh script. This copies all files, sames as an install, but to cwd. I like the update script as that’s how I first start to use algorand and running node with goal commands.

Another question I have, is in the algorand@.service.template (which isn’t included, or I can’t find it, when installing using Red Hat package manager, can we add this as part of Red Hat package manager install?) can the notes in the template file be explicit. Instead of `asterisk` can it be `algorand` and so I’m not giving access to any service to the algo user just algorand service to algo user.

Another question, I have, is can we suppress the amount of writes to the node log file during an initialization. Just a guess, but once this log file gets to be really big it slows the initialization down much so. Just an idea. My asumption is using a catchup can’t be done before an initialization is complete.

To allow the update script (which runs as the algo user) to manipulate  
the algorand systemd service, the following lines need to be added to  
/etc/sudoers (using visudo):

algo ALL=(ALL) NOPASSWD: /usr/bin/systemctl start \*  
algo ALL=(ALL) NOPASSWD: /usr/bin/systemctl stop \*  
algo ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart \*  
algo ALL=(ALL) NOPASSWD: /usr/bin/systemctl status \*

I would be happy spending my time reviewing these new separate `Install a Node webpages` answering every possible question and providing feedback… than getting stuck over and over guessing on what I did wrong and how to figure out how to do it right.

---

_[View the full topic](https://forum.algorand.co/t/install-a-node-separate-the-installation-process/8818)._
