Install Jingo
Environment
- Debian 9.7 x64
node
12.2.0- Jingo 1.9.2
Excerpt
Pre-requisite Install Node.js
Log 2019 / 05
1. Install Jingo
root@athos:~# apt-get update && apt-get -y upgrade && apt-get -y dist-upgrade
root@athos:~# npm install jingo -g
npm WARN deprecated ecstatic@2.0.0:
https://github.com/jfhbrook/node-ecstatic/issues/259
npm WARN deprecated coffee-script@1.12.7:
CoffeeScript on NPM has moved to "coffeescript" (no hyphen)
/root/.nvm/versions/node/v12.2.0/bin/jingo ->
/root/.nvm/versions/node/v12.2.0/lib/node_modules/jingo/jingo
+ jingo@1.9.2
added 249 packages from 328 contributors in 18.155s
root@athos:~# jingo -V
1.9.2
2. config.yaml
root@athos:~# mkdir jingo
root@athos:~# jingo -s > config.yaml
root@athos:~# jingo -# 'password'
5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8
sed -i '/repository:/c\
repository: \x27/root/jingo/\x27' config.yaml
sed -i '/username:/c\
- username: \x27nzuhdi\x27' config.yaml
sed -i '/passwordHash:/c\
passwordHash: \x275baa61e4c9b93f3f0682250b6cf8331b7ee68fd8\x27' config.yaml
sed -i '/email:/c\
email: \x27nzuhdi@spam.org\x27' config.yaml
sed -i '/google:/{
n; s/enabled: true/enabled: false/
}' config.yaml
sed -i '/local:/{
n; s/enabled: false/enabled: true/
}' config.yaml
root@athos:~# sed -i '/repository:/c\
> repository: \x27/root/jingo/\x27' config.yaml
root@athos:~# sed -i '/username:/c\
> - username: \x27nzuhdi\x27' config.yaml
root@athos:~# sed -i '/passwordHash:/c\
> passwordHash: \x275baa61e4c9b93f3f0682250b6cf8331b7ee68fd8\x27' config.yaml
root@athos:~# sed -i '/passwordHash:/c\
> passwordHash: \x275baa61e4c9b93f3f0682250b6cf8331b7ee68fd8\x27' config.yaml
root@athos:~# sed -i '/email:/c\
> email: \x27nzuhdi@spam.org\x27' config.yaml
root@athos:~# sed -i '/google:/{
> n; s/enabled: true/enabled: false/
> }' config.yaml
root@athos:~# sed -i '/local:/{
> n; s/enabled: false/enabled: true/
> }' config.yaml
3. Configure github.com
3.1. Generate SSH Keys
root@athos:~# ssh-keygen -t rsa -b 4096 -C 'nzuhdi@spam.org'
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:nRSrYPw+TJDT+vZOMa3+Ca+B1fbxhZJzyluUEQmfOrg nzuhdi@spam.org
The key's randomart image is:
+---[RSA 4096]----+
| . .... |
| . o o ..o |
| B . o + |
| . * + = o + |
| . S B X * .|
| = o B O o.|
| B E o o .|
| . = + + |
| .=o= |
+----[SHA256]-----+
3.2. Upload SSH Keys
github.com
> Settings > SSH and GPG keys.
4. Test Connect
root@athos:~# ssh -T git@github.com
The authenticity of host 'github.com (52.74.223.119)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,52.74.223.119' (RSA) to the list of known hosts.
Hi nzuhdi! You've successfully authenticated, but GitHub does not provide shell access.
5. Install git
root@athos:~# apt-get update && apt-get -y upgrade && apt-get -y dist-upgrade
root@athos:~# apt-get -y --no-install-recommends install git
root@athos:~# git config --global user.email 'nzuhdi@spam.org'
root@athos:~# git config --global user.name 'nzuhdi'
root@athos:~# cd jingo
root@athos:~/jingo# echo "# jingo" >> README.md
root@athos:~/jingo# git init
Reinitialized existing Git repository in /root/jingo/.git/
root@athos:~/jingo# git add README.md
root@athos:~/jingo# git commit -m "first commit"
[master (root-commit) a25a328] first commit
1 file changed, 1 insertion(+)
create mode 100644 README.md
root@athos:~/jingo# git remote add origin git@github.com:nzuhdi/jingo.git
root@athos:~/jingo# git push -u origin master
Counting objects: 3, done.
Writing objects: 100% (3/3), 212 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To github.com:nzuhdi/jingo.git
* [new branch] master -> master
Branch master set up to track remote branch master from origin.
6. Run
root@athos:~# jingo -c ~/config.yaml
Sun May 19 2019 08:42:38 GMT+0000 (Coordinated Universal Time) -
Jingo server v1.9.2 listening on port 6067
7. systemd
root@athos:~# which jingo
/root/.nvm/versions/node/v12.2.0/bin/jingo
root@athos:~# echo $PATH
/root/.nvm/versions/node/v12.2.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:
/usr/bin:/sbin:/bin
cat <<EOF > /etc/systemd/system/jingo.service
[Unit]
Description=Jingo
[Service]
ExecStart=$(which jingo) -c /root/config.yaml
Restart=always
User=root
Group=root
Environment=PATH=$PATH
Environment=NODE_ENV=production
[Install]
WantedBy=multi-user.target
EOF
root@athos:~# cat <<EOF > /etc/systemd/system/jingo.service
> [Unit]
> Description=Jingo
>
> [Service]
> ExecStart=$(which jingo) -c /root/config.yaml
> Restart=always
> User=root
> Group=root
> Environment=PATH=$PATH
> Environment=NODE_ENV=production
>
> [Install]
> WantedBy=multi-user.target
> EOF
root@athos:~# systemctl enable --now jingo.service
Created symlink /etc/systemd/system/multi-user.target.wants/jingo.service
→ /etc/systemd/system/jingo.service.
root@athos:~# systemctl status jingo.service
● jingo.service - Jingo
Loaded: loaded (/etc/systemd/system/jingo.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2019-05-19 09:41:57 UTC; 26s ago
Main PID: 1347 (node)
Tasks: 7 (limit: 4915)
CGroup: /system.slice/jingo.service
└─1347 node /root/.nvm/versions/node/v12.2.0/bin/jingo -c /root/config.yaml