status-go/_assets/systemd/mailserver
Jakub Sokołowski d29c6aad50 use more descriptive names for systemd services
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-01-08 14:51:26 +01:00
..
Makefile use more descriptive names for systemd services 2020-01-08 14:51:26 +01:00
README.md allow running systemd service as root 2020-01-02 10:36:13 +01:00
service.template add missing jq checks, make formatting vars the same 2019-12-21 09:16:54 +01:00

README.md

Status Mailserver

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

The steps it takes are:

  • Builds statusd
  • Generates statusd config
  • 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 Mailserver.
  • LISTEN_PORT - Mailserver TCP & UDP port, by default it's 30303 but you might want to use 443.
  • RPC_PORT - Control port making it possible to use the JSON-RPC API.
  • API_MODULES - API modules to be made available via the RPC_PORT.
  • DATA_PATH - Location of Mailserver storage and keys. (Default: /var/tmp/status-go-mail)
  • REGISTER_TOPIC - Mynamic Mailserver discovery topic. (Default: whispermail)
  • MAIL_PASSWORD - Basic HTTP auth password for Mailserver. (Default: status-offline-inbox)
  • LOG_LEVEL - Set level of log messages to show. (ERROR, WARN, INFO, DEBUG, TRACE)

The generated configuration file end up under ${DATA_PATH}/config.json.

System Service

By default this Makefile configures the Mailserver as a systemd user service. This is done to simplify the proces and remove the need for sudo. The disadvantage of this solution is that the service is stopped when the user logs out.

In order to make your service a system service use sudo make.

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}