Set up a production environment
Set up a production environment#
Use the following information to set up and manage your production-level full Terra node.
For information about running a validator node, visit the validator guide.
Create a dedicated user#
terrad does not require a super user account, during the setup process you’ll need super user permission to create and modify some files. It is strongly recommended to use a normal user when running
Increase the maximum files
terrad can open#
terrad is set to open 1024 files by default. It is recommended that you increase this amount.
/etc/security/limits.conf* to increase the amount, where
nofile is the number of files
terrad can open.
# If you have never changed this system config or your system is fresh, most of this file will be commented # ... * soft nofile 65535 # Uncomment the following two lines at the bottom * hard nofile 65535 # Change the default values to ~65535 # ...
Run the server as a daemon#
terrad must be running at all times. It is recommended that you register
terrad as a
systemd service so that it will be started automatically when the system reboots.
terrad as a service#
Create a service definition file in
[Unit] Description=Terra Daemon After=network.target [Service] Type=simple User=<TERRA_USER> ExecStart=<PATH_TO_TERRAD>/terrad start Restart=on-abort [Install] WantedBy=multi-user.target [Service] LimitNOFILE=65535
Servicesection according to your environment:
Enter the user (likely your username, unless you created a user specifically for
Enter the path to the
/usr/go/bin. Confirm this with
Make sure you made the correct edits to /etc/security/limits.conf
systemctl daemon-reloadfollowed by
systemctl enable terrad. This will register
terradas a system service and turn it on upon startup.
Now start the serivce with
systemctl start terrad.
Controlling the service#
systemctl to start, stop, and restart the service:
# Check health systemctl status terrad # Start systemctl start terrad # Stop systemctl stop terrad # Restart systemctl restart terrad
journalctl -t to access entire logs, entire logs in reverse, and the latest and continuous log.
# Entire log reversed journalctl -t terrad -r # Entire log journalctl -t terrad # Latest and continuous journalctl -t terrad -f