Get unlimited public & private packages + package-based permissions with npm Pro.Get started »

@treehouses/cli

1.17.19 • Public • Published

@treehouses/cli

Build Status npm version npm Gitter

About

@treehouses/cli is a command-line interface for Raspberry Pi that is used to manage various services and functions. Including vnc, ssh, tor, vpn, networking, starting services, bluetooth, led lights, and much more! Also treehouses remote uses this interface.

Install

@treehouses/cli comes pre-installed on the treehouses image made with builder. To manually install on a Pi:

sudo curl -sL https://deb.nodesource.com/setup_10.x | sudo bash -
sudo apt-get install -y nodejs
sudo npm i -g --unsafe-perm @treehouses/cli

If you run into any problems check if your RPi is supported here.

Features

Usage: treehouses [command] ...


Commands:

help [command]                            gives you a more detailed info about the command or will output this
verbose <on|off>                          makes each command print more output (might not work with treehouses remote)
expandfs                                  expands the partition of the RPI image to the maximum of the SDcard
rename <hostname>                         changes hostname
password <password>                       changes the password for 'pi' user
sshkey <add|list|delete|deleteall|github> used for adding or removing ssh keys for authentication
version                                   returns the version of cli.sh command
image                                     returns version of the system image installed
detectbluetooth                           detects if bluetooth module is available
detectrpi [model]                         detects the hardware version of a raspberry pi
detectarm                                 detects the arm version of a raspberry pi
detect                                    detects the hardware version of any device
ethernet <ip> <mask> <gateway> <dns>      configures rpi network interface to a static ip address
discover <scan|interface|ping|ports|mac>  performs network scan and discovers all raspberry pis on the network
         <rpi> [ipaddress|url|macaddress]
wifi <ESSID> [password]                   connects to a wifi network
wifihidden <ESSID> [password]             connects to a hidden wifi network
staticwifi <ip> <mask> <gateway> <dns>    configures rpi wifi interface to a static ip address
           <ESSID> [password]
wifistatus                                displays signal strength in dBm and layman nomenclature
bridge <ESSID> <hotspotESSID>             configures the rpi to bridge the wlan interface over a hotspot
       [password] [hotspotPassword]
config [update|add|delete|clear]          commands for interacting with config file
container <none|docker|balena>            enables (and start) the desired container
bluetooth <on|off|pause|button|mac|id>    switches bluetooth from regular to hotspot mode and shows id or MAC address
ap <local|internet> <ESSID> [password]    creates a mobile ap, which has two modes: local (no eth0 bridging), internet (eth0 bridging)
aphidden <local|internet> <ESSID>         creates a hidden mobile ap with or without internet access
         [password]
apchannel [channel]                       sets or prints the current ap channel
timezone <timezone>                       sets the timezone of the system
locale <locale>                           sets the system locale
ssh <on|off>                              enables or disables the ssh service
vnc [on|off|info]                         enables or disables the vnc server service
default                                   sets a raspbian back to default configuration
wificountry <country>                     sets the wifi country
upgrade [tag] [--check]                   upgrades cli.sh package using npm
sshtunnel <add|remove|list|check|notice>  helps adding an sshtunnel
          <key|portinterval> [user@host]
led [green|red] [mode]                    sets the led mode
rtc <on|off> [rasclock|ds3231]            sets up the rtc clock specified
ntp <local|internet>                      sets rpi to host timing locally or to get timing from a remote server
networkmode                               outputs the current network mode
button <off|bluetooth>                    gives the gpio pin 18 an action
feedback <message>                        sends feedback
clone [device path]                       clones the current SDCard onto a secondary SDCard or specified device
restore [device path]                     restores a treehouses image to an SDCard or specified device
burn [device path]                        download and burns the latest treehouses image to the SDcard or specified device
rebootneeded                              shows if reboot is required to apply changes
reboots <now|in|cron>                     reboots at given frequency | removes it if reboot task active
        <daily|weekly|monthly>
internet                                  checks if the rpi has access to internet
services                                  executes the given command on the specified service
   <available|installed [full]            list available, and installed services
   ports|running [full]>                  list ports used by services and services running
   [planet]       <install>               Planet Learning is a generic learning system built in Angular & CouchDB
   [kolibri]      <cleanup>               Kolibri is a learning platform using DJango
   [nextcloud]    <up>                    Nextcloud is a safe home for all your data, files, etc
   [netdata]      <down>                  Netdata is a distributed, real-time performance and health monitoring for systems
   [mastodon]     <start>                 Mastodon is a free, open-source social network server
   [moodle]       <stop>                  Moodle is a learning management system built in PHP
   [pihole]       <restart>               Pi-hole is a DNS sinkhole that protects your devices from unwanted content
   [privatebin]   <autorun [true|false]>  PrivateBin is a minimalist, open source online pastebin
   [portainer]    <ps>                    Portainer is a lightweight management UI for Docker environments
   [ntopng]       <info>                  Ntopng is a network traffic probe that monitors network usage
   [couchdb]      <url [local|tor]>       CouchDB is an open-source document-oriented NoSQL database, implemented in Erlang
   [mariadb]      <port>                  MariaDB is a community-developed fork of the MySQL relational database management system
   [seafile]      <size>                  Seafile is an open-source, cross-platform file-hosting software system
tor [list|add|delete|deleteall|start]     deals with services on tor hidden network
    [stop|destroy|notice|status|refresh]
bootoption <console|desktop> [autologin]  sets the boot mode
openvpn [use|show|delete]                 helps setting up an openvpn client
        [notice|start|stop|load]
coralenv [install|demo-on|demo-off]       plays with the coral environmental board
         [demo-always-on]
memory [total|used|free]                  displays the total memory of the device, the memory used as well as the available free memory
temperature [celsius|fahrenheit|kelvin]   displays raspberry pi's CPU temperature
speedtest                                 tests internet download and upload speed
camera [on|off|capture]                   enables camera, disables camera, captures png photo
cron [list|add|delete|deleteall]          adds, deletes a custom cron job or deletes, lists all cron jobs
     [0W|tor|timestamp]                   adds premade cron job (or removes it if already active)
usb [on|off]                              turns usb ports on or off
remote [status|upgrade|services|version]  helps with treehouses remote android app
       [commands|json]
log <0|1|2|3|4|show|max>                  gets/sets log level and shows log
blocker <0|1|2|3|4||max>                  website blocking levels using /etc/hosts
sdbench                                   displays read and write speed of micro SD card

Add a feature

Feel free to make a pull request to our repository.
Remember the following files will have to be updated to add a feature:

/modules/help.sh       # help text
README.md              # readme
_treehouses            # tabcompletion
/modules/<featurefile> # bash
/tests/<featurefile>   # bash bats tests

Install

npm i @treehouses/cli

DownloadsWeekly Downloads

4,146

Version

1.17.19

License

AGPL-3.0-only

Unpacked Size

11 MB

Total Files

201

Last publish

Collaborators

  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar