install jingo | zuhdi.org

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

Hugo. Malte Kiefer & Zuhdi Najib.