status-go/_assets/systemd/mailserver
Jakub Sokołowski 5c408f8ce4 compose/systemd: fix completion of make targets
Something goes wrong when parsing and GRN definition is treated as target.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-08-24 16:45:47 +02:00
..
Makefile compose/systemd: fix completion of make targets 2021-08-24 16:45:47 +02:00
README.md drop AdvertiseAddr from default configuration 2021-08-19 16:53:31 +02:00
service.template

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 enode-qr - Get enode address as QR code
  • 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)
  • LISTEN_PORT - Mailserver TCP & UDP port, by default it's 30303 but you might want to use 443.
  • METRICS_PORT - Port exposing metrics in Prometheus format
  • 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}