status-go/_assets/systemd/mailserver
Jakub Sokołowski 42baf2251d expose the mailserver metrics port by default
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-04-08 17:08:49 +02:00
..
Makefile expose the mailserver metrics port by default 2020-04-08 17:08:49 +02:00
README.md expose the mailserver metrics port by default 2020-04-08 17:08:49 +02:00
service.template expose the mailserver metrics port by default 2020-04-08 17:08:49 +02: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 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)
  • 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.
  • 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}