Skip to content

vantran-se/sutils

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sutils

CI Publish

Server utilities CLI for Linux — auto-shutdown, startup scripts, and more.

Requirements: Linux · systemd · Node.js >= 16

npm install -g @vantran-se/sutils

Commands

Command What it does
sutils monitor Auto-shutdown when all ports are idle
sutils startup Run scripts automatically at server boot
sutils restart Restart all enabled sutils services at once
sutils disable Stop and disable all enabled sutils services
sutils update Update sutils to latest and restart services
sutils uninstall Remove all services and uninstall sutils

monitor

Shuts down the server when all watched ports have been idle for a configured period. Useful for keeping cloud costs down.

Quick start

sutils monitor init          # create ~/.sutils/config.yaml
nano ~/.sutils/config.yaml   # edit ports, grace period, etc.
sutils monitor enable        # install systemd service
sutils monitor start         # start it now

Config (~/.sutils/config.yaml)

check_interval: 60           # seconds between connection checks
grace_checks: 15             # number of idle checks before shutdown
shutdown_command: "sudo shutdown -h now"

ports:
  - 22    # SSH
  - 3000  # your app

# notify:
#   telegram:
#     bot_token: "..."
#     chat_id: "..."

Subcommands

init      Create config.yaml
enable    Install systemd service
start     Start now + enable on boot
stop      Stop (stays enabled on boot)
disable   Remove from boot
status    Show service status
run       Run in foreground (--dry-run to test without shutting down)

Sudo for shutdown

# /etc/sudoers.d/sutils
your-user ALL=(ALL) NOPASSWD: /sbin/shutdown

startup

Registers scripts as systemd one-shot services that run at every boot.

Quick start

sutils startup init          # create ~/.sutils/config.yaml (skip if already done by monitor init)
nano ~/.sutils/config.yaml   # add a scripts: section
sutils startup enable        # register services

Config (~/.sutils/config.yaml)

scripts:
  - name: setup-env
    run: /home/ubuntu/setup-env.sh
    # user: ubuntu    # optional: run as this user

  - name: start-app
    run: /home/ubuntu/start-app.sh

Subcommands

init      Create config.yaml (skip if already created by monitor init)
enable    Register scripts as systemd services
disable   Remove scripts from systemd
run       Run all scripts now (via systemctl start)
status    Show status of each script's service

License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors