Previous Page

nihilist - 02 / 11 / 2022

hatsh Setup

In this tutorial we're going to setup a hat.sh instance, which is a web app that provides secure local file encryption in the browser.

Initial Setup


root@lainsafe:~# cd /var/www
root@lainsafe:/var/www# git clone https://github.com/sh-dv/hat.sh.git hat.sh
Cloning into 'hat.sh'...
remote: Enumerating objects: 2392, done.
remote: Counting objects: 100% (337/337), done.
remote: Compressing objects: 100% (91/91), done.
remote: Total 2392 (delta 273), reused 251 (delta 246), pack-reused 2055
Receiving objects: 100% (2392/2392), 3.88 MiB | 3.95 MiB/s, done.
Resolving deltas: 100% (1324/1324), done.

root@lainsafe:/var/www# cd hat.sh
root@lainsafe:/var/www/hat.sh# apt install npm -y

root@lainsafe:/var/www/hat.sh# npm install

root@lainsafe:/var/www/hat.sh# npm run build

root@lainsafe:/var/www/hat.sh# ip a | grep inet
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
    inet 10.0.0.108/24 brd 10.0.0.255 scope global eth0
    inet6 fe80::709a:74ff:fec2:47af/64 scope link1

root@lainsafe:/var/www/hat.sh# npm run start

> hat.sh@2.3.6 start
> next start -p 3991

ready - started server on 0.0.0.0:3991, url: http://localhost:3991
info  - Loaded env from /var/www/hat.sh/.env	

From there we can encrypt files:

And we decrypt it like so:

Automation Setup



We want it to start automatically with a systemd service:


root@lainsafe:/var/www/hat.sh# cat /etc/systemd/system/hatsh.service
[Unit]
Description=hat.sh local file encryption
After=network.target
After=systemd-user-sessions.service
After=network-online.target

[Service]
Type=simple
WorkingDirectory=/var/www/hat.sh/
ExecStart=/usr/bin/npm run start
Restart=always
RestartSec=10
KillMode=process

[Install]
WantedBy=multi-user.target

root@lainsafe:/var/www/hat.sh# systemctl daemon-reload
root@lainsafe:/var/www/hat.sh# systemctl enable --now hatsh
root@lainsafe:/var/www/hat.sh# systemctl status hatsh
* hatsh.service - hat.sh local file encryption
     Loaded: loaded (/etc/systemd/system/hatsh.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2022-11-02 19:10:20 UTC; 6s ago
   Main PID: 16508 (node)
      Tasks: 23 (limit: 115830)
     Memory: 106.5M
        CPU: 3.601s
     CGroup: /system.slice/hatsh.service
             |-16508 npm run start
             |-16520 sh -c next start -p 3991
             `-16521 node /var/www/hat.sh/node_modules/.bin/next start -p 3991

Nov 02 19:10:20 lainsafe systemd[1]: Started hat.sh local file encryption.
Nov 02 19:10:21 lainsafe npm[16508]: > hat.sh@2.3.6 start
Nov 02 19:10:21 lainsafe npm[16508]: > next start -p 3991
Nov 02 19:10:22 lainsafe npm[16521]: ready - started server on 0.0.0.0:3991, url: http://localhost:3991
Nov 02 19:10:22 lainsafe npm[16521]: info  - Loaded env from /var/www/hat.sh/.env
	

Nihilism

Until there is Nothing left.



Creative Commons Zero: No Rights Reserved

About nihilist

Donate XMR: 8AUYjhQeG3D5aodJDtqG499N5jXXM71gYKD8LgSsFB9BUV1o7muLv3DXHoydRTK4SZaaUBq4EAUqpZHLrX2VZLH71Jrd9k8


Contact: nihilist@contact.nowhere.moe (PGP)