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
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 servicemake enode
- Get enode addressmake enode-qr
- Get enode address as QR codemake start
- Start the servicemake stop
- Stop the servicemake status
- Check service statusmake enable
- Enable the servicemake disable
- Disable the servicemake logs
- Read the service logsmake clean
- Stop service and remove it
All the above commands are just wrappers around the systemctl
and journalctl
commands.
All settings are passed through environment variables:
SERVICE_NAME
- Name of thesystemd
service to be created. (Default:statusd
)LISTEN_PORT
- Mailserver TCP & UDP port, by default it's30303
but you might want to use443
.METRICS_PORT
- Port exposing metrics in Prometheus formatRPC_PORT
- Control port making it possible to use the JSON-RPC API.API_MODULES
- API modules to be made available via theRPC_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
.
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
.
No journal files were opened due to insufficient permissions.
fromsystemctl
- 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}
- To see logs of a user systemd service you need to be a member of