status-go/_assets/systemd
Jakub Sokołowski c1f17cb4a3 use prometheus/client_golang for metrics
also re-implement mailserver metrics

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-11-04 13:18:50 +01:00
..
README.md add script for easier setup of mailserver 2019-10-10 11:27:32 +02:00
gen_service.sh use prometheus/client_golang for metrics 2019-11-04 13:18:50 +01:00
start.sh add script for easier setup of mailserver 2019-10-10 11:27:32 +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 ./start.sh.

In order to manage the new statusd service you use systemctl command:

  • systemctl --user start statusd - Start the service
  • systemctl --user stop statusd - Stop the service
  • systemctl --user status statusd - Check service status
  • systemctl --user disable statusd - Disable the service
  • journalctl --user-unit statusd - Read the service logs

If you want to remove the service you can just remove its definition:

systemctl --user stop statusd
rm ~/.config/systemd/user/statusd.service
systemctl --user daemon-reload

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.

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}