status-go/_assets/systemd/bootnode
Jakub Sokołowski e249f35a8d fix missing genkey task in systemd bootnode makefile
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-12-10 13:46:32 +01:00
..
Makefile fix missing genkey task in systemd bootnode makefile 2019-12-10 13:46:32 +01:00
README.md create a Makefile for running a bootnode under systemd 2019-12-04 13:44:05 +01:00
service.template create a Makefile for running a bootnode under systemd 2019-12-04 13:44:05 +01:00

README.md

Status Bootnode

This folder contains setup for running your own Status Bootnode. It uses Systemd for managing the Status Bootnode service.

The steps it takes are:

  • Builds bootnode
  • Generates & saves a private key
  • Generates systemd service
  • Starts the service

Usage

To simply configure and start the service run make.

In order to manage the new statusd service you use other Makefile targets:

  • make info - Info about service
  • make enode - Get enode address
  • make start - Start the service
  • make stop - Stop the service
  • make status - Check service status
  • make enable - Enable the service
  • make disable - Disable the service
  • make logs - Read the service logs
  • make clean - Stop service and remove it

All the above commands are just wrappers around the systemctl and journalctl commands.

Settings

All settings are passed through environment variables:

  • SERVICE_NAME - Name of the systemd service to be created. (Default: statusd)
  • PUBLIC_IP - Your IP visible from the internet and advertised by the Bootnode.
  • LISTEN_PORT - Bootnode TCP & UDP port, by default it's 30303 but you might want to use 443.
  • DATA_PATH - Location of Bootnode storage and keys. (Default: /var/tmp/status-go-boot)
  • KEY_PATH - Location of Bootnode private key file. (Default: /var/tmp/status-go-boot/nodekey)
  • LOG_LEVEL - Set level of log messages to show. (Values:0-9, Default: 3)`

Known Issues

  • No journal files were opened due to insufficient permissions. from systemctl
    • To see logs of a user systemd service you need to be a member of systemd-journal group.
    • Use: bash usermod -a -G systemd-journal ${USER}