- Joined
- Feb 19, 2019
- Messages
- 13
Long story short, I have developed in NodeJS for a few years and love PM2 for managing applications. So I set out to get it to work with MD@H.
1) I recommend getting a VPS from sdbx.moe or kimsufi (if you can). Zero issues so far and previous cheap hosts never worked.
-- Once you have your server. I am already assuming you know how to use SSH (mRemoteNG, Termius or Putty),
2) Make sure everything is up to date
3) Install dependencies
4) Install node
5) Install PM2 and Logrotate
6) Configure logrotate
max_size - Change this to whatever you want. M = Megabytes, G = Gigabytes, etc
compress - Highly recommend having it on. Otherwise change to false
roateInterval - Every hour but change to whatever. It uses cron format
retain - Change to what you want. I personally keep 10.
7) Make a directory where you want to keep MD@H and download.
8) Change settings in settings.json to what you want.
9) Setting up PM2 process.json
Here is a sample - LINK
Example
10) Hopefully nothing blows up
And if it works
11) To see what its doing
12) To view/stop/start it
1) I recommend getting a VPS from sdbx.moe or kimsufi (if you can). Zero issues so far and previous cheap hosts never worked.
-- Once you have your server. I am already assuming you know how to use SSH (mRemoteNG, Termius or Putty),
2) Make sure everything is up to date
Code:
sudo apt update; sudo apt update -y; sudo apt dist-upgrade -y
3) Install dependencies
Code:
sudo apt install -y build-essential git curl default-jre
4) Install node
Code:
sudo curl -sL https://deb.nodesource.com/setup_10.x -o nodesource_setup.sh; sudo bash nodesource_setup.sh; sudo apt install nodejs -y
5) Install PM2 and Logrotate
Code:
npm i -g pm2; pm2 install pm2-logrotate
6) Configure logrotate
Code:
pm2 set pm2-logrotate:max_size 100M
pm2 set pm2-logrotate:compress true
pm2 set pm2-logrotate:rotateInterval '* */1 * * *'
pm2 set pm2-logrotate:retain 10
compress - Highly recommend having it on. Otherwise change to false
roateInterval - Every hour but change to whatever. It uses cron format
retain - Change to what you want. I personally keep 10.
7) Make a directory where you want to keep MD@H and download.
Code:
mkdir -p ~/manga/{log,logs}; cd ~/manga
curl https://gitlab.com/mangadex-pub/mangadex_at_home/-/jobs/681534385/artifacts/raw/mangadex_at_home-1.2.1-all.jar -o mangadex_at_home-1.2.1-all.jar
OR
curl https://mangadex.org/dl/mangadex_at_home-1.1.5-all.jar -o mangadex_at_home-1.1.5-all.jar
curl https://mangadex.org/dl/settings.json -o settings.json
8) Change settings in settings.json to what you want.
9) Setting up PM2 process.json
Here is a sample - LINK
Example
Code:
{
"apps": [{
"name": "Client 1337",
"cwd": "/home/ubuntu/manga/",
"args": [
"-Dfile-level=trace -Dstdout-level=info -Duser.dir=/home/ubuntu/manga",
"-jar",
"/home/ubuntu/manga/mangadex_at_home-1.2.1-all.jar",
"--settings=/home/ubuntu/manga/settings.json"
],
"script": "/usr/bin/java",
"node_args": [],
"log_date_format": "YYYY-MM-DD HH:mm Z",
"exec_interpreter": "none",
"exec_mode": "fork",
"error_file": "/home/ubuntu/manga/logs/client_1337_error.log",
"out_file": "/home/ubuntu/manga/logs/client_1337_out.log",
"merge_logs": true,
"instances" : 1,
"watch": false
}
]
}
10) Hopefully nothing blows up
Code:
cd ~/manga; pm2 start process.json
And if it works
Code:
┌─────┬──────────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id │ name │ namespace │ version │ mode │ pid │ uptime │ ↺ │ status │ cpu │ mem │ user │ watching │
├─────┼──────────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 2 │ Client 999 │ default │ N/A │ fork │ 13550 │ 3h │ 0 │ online │ 0% │ 338.8mb │ root │ disabled │
└─────┴──────────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘
Module
┌────┬───────────────────────────────────────┬────────────────────┬───────┬──────────┬──────┬──────────┬──────────┬──────────┐
│ id │ module │ version │ pid │ status │ ↺ │ cpu │ mem │ user │
├────┼───────────────────────────────────────┼────────────────────┼───────┼──────────┼──────┼──────────┼──────────┼──────────┤
│ 0 │ pm2-logrotate │ 2.7.0 │ 12854 │ online │ 4 │ 0% │ 42.8mb │ root │
└────┴───────────────────────────────────────┴────────────────────┴───────┴──────────┴──────┴──────────┴──────────┴──────────┘
11) To see what its doing
Code:
#pm2 logs id
pm2 logs 2
12) To view/stop/start it
Code:
pm2 ls - Gets list
pm2 stop id - Replace ID with pm2 ID
pm2 start id - Replace ID with pm2 ID