How to deploy with rpm?
[1] RPM Install
Go to https://github.com/nguyenvinhlinh/Mining-Rig-Monitor/releases/tag/v1.0.0 and download mining-rig-monitor-1.0.0-1.fc40.x86_64.rpm
.
cd ~/Downloads/
wget https://github.com/nguyenvinhlinh/Mining-Rig-Monitor/releases/download/v1.0.0/mining-rig-monitor-1.0.0-1.fc40.x86_64.rpm
Install .rpm
file with dnf.
dnf install ~/Downloads/mining-rig-monitor-1.0.0-1.fc40.x86_64.rpm
Total size: 9.6 M
Installed size: 128 M
Is this ok [y/N]: y
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : mining-rig-monitor-1.0.0-1.fc40.x86_64 1/1
Running scriptlet: mining-rig-monitor-1.0.0-1.fc40.x86_64 1/1
Installed:
mining-rig-monitor-1.0.0-1.fc40.x86_64
Complete!
Check /opt/mining_rig_monitor
for more details. Running dnf install
do copy files to /opt/mining_rig_monitor
.
[2] Test run with script before working with systemd service.
export SECRET_KEY_BASE=Mc5oIum6N8aeNdjghwfJQYVE2OQncnqBkCCyaXdA1X/puugR99VvcSuvAqOoGYdW
export DATABASE_URL=ecto://USER:PASS@HOST/database
export PORT=4000
export PHX_HOST=127.0.0.1
# To migrate db
/opt/mining_rig_monitor/bin/migrate
# To start server
/opt/mining_rig_monitor/bin/server
...
00:07:32.076 [notice] :alarm_handler: {:set, {:system_memory_high_watermark, []}}
00:07:32.090 [info] [AsicMinerOperationalIndex] started.
00:07:32.090 [info] [AsicMinerOperationalIndex][broadcast_operational_data] after 5 seconds
00:07:32.090 [info] [AsicMinerOperationalIndex][nillify_offline_miner] after 5 seconds
00:07:32.100 [info] Running MiningRigMonitorWeb.Endpoint with Bandit 1.5.5 at :::4000 (http)
00:07:32.101 [info] Access MiningRigMonitorWeb.Endpoint at https://127.0.0.1
00:07:35.656 [info] CONNECTED TO Phoenix.LiveView.Socket in 73µs
...
# To stop server
/opt/mining_rig_monitor/bin/mining_rig_monitor stop
[3] Create systemd service /etc/systemd/system/mining_rig_monitor.service
[Unit]
Description=Mining Rig Monitor
After=network.target
[Service]
WorkingDirectory=/opt/mining_rig_monitor
EnvironmentFile=/etc/mining_rig_monitor/mining_rig_monitor.env
ExecStart=/opt/mining_rig_monitor/bin/server
ExecStop=/opt/mining_rig_monitor/bin/mining_rig_monitor stop
User=nguyenvinhlinh
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
[4] Create environment file /etc/mining_rig_monitor/mining_rig_monitor.env
SECRET_KEY_BASE=
DATABASE_URL=ecto://USER:PASS@HOST/database
PORT=4000
PHX_HOST=127.0.0.1
Regarding PHX_HOST
, modify it to match domain/ip which web browser calling. if not, there will be an error.
[error] Could not check origin for Phoenix.Socket transport.
Origin of the request: http://192.168.1.9:4000
This happens when you are attempting a socket connection to
a different host than the one configured in your config/
files. For example, in development the host is configured
to "localhost" but you may be trying to access it from
"127.0.0.1". To fix this issue, you may either:
1. update [url: [host: ...]] to your actual host in the
config file for your current environment (recommended)
2. pass the :check_origin option when configuring your
endpoint or when configuring the transport in your
UserSocket module, explicitly outlining which origins
are allowed:
check_origin: ["https://example.com",
"//another.com:888", "//other.com"]
and Run systemctl daemon-reload
[5] Start systemd service named mining_rig_monitor
systemctl enable --now mining_rig_monitor
[6] To view log
➜ ~ journalctl -f -u mining_rig_monitor.service
server[1361153]: 00:31:18.061 [info] [AsicMinerOperationalIndex][broadcast_operational_data] Starting.
server[1361153]: 00:31:19.063 [info] [AsicMinerOperationalIndex][broadcast_operational_data] Starting.
server[1361153]: 00:31:20.065 [info] [AsicMinerOperationalIndex][broadcast_operational_data] Starting.
server[1361153]: 00:31:21.067 [info] [AsicMinerOperationalIndex][broadcast_operational_data] Starting.
server[1361153]: 00:31:22.069 [info] [AsicMinerOperationalIndex][broadcast_operational_data] Starting.
server[1361153]: 00:31:23.071 [info] [AsicMinerOperationalIndex][broadcast_operational_data] Starting.
server[1361153]: 00:31:23.754 [info] [AsicMinerOperationalIndex][nillify_offline_miner] Starting.
Now, you can visit http://127.0.0.1:4000.
To create account, please check Release Commands Page
[7] How to migrate database while deploy with RPM?
To migrate database, you need to run /opt/mining_rig_monitor/bin/migrate
. But keep in mind that, you will need
- SECRET_KEY_BASE
- DATABASE_URL
These two variables can be found in /etc/mining_rig_monitor/mining_rig_monitor.env
(see step [3]).
export SECRET_KEY_BASE=XXX
export DATABASE_URL=XXX
/opt/mining_rig_monitor/bin/migrate