
Spinup
Quickly spin up your multi command projects.
Installation
Requirements
- Nginx
- Dnsmasq (only for unix based systems)
Debian based systems
To install the required packages on a debian based system you can use the following command:
sudo apt install libgtk-3-0 libwebkit2gtk-4.0-dev nginx dnsmasq
[!NOTE]
For Ubuntu 24.04 and up, you should install libwebkit2gtk-4.1-dev instead of libwebkit2gtk-4.0-dev.
Download the .deb package from the releases. There is a separate version for Ubuntu 24.04 due to the different libwebkit2gtk package version being used.
To install the package run the following command where {{version}} is the version of the package:
sudo dpkg -i spinup-{{version}}.deb
RPM based systems
[!WARNING]
This has not been tested
To install the required packages on a rpm based system you can use the following command:
sudo dnf install nginx dnsmasq
Download the .rpm package from the releases.
To install the package run the following command where {{version}} is the version of the package:
sudo rpm -i spinup-{{version}}.rpm
MacOS
[!WARNING]
This has not been tested
Install the required packages:
brew install nginx dnsmasq
Download the spinup-{{version}}-macos.zip archive from the releases and unzip the archive:
unzip spinup-{{version}}-macos.zip
Run the installation script:
sudo ./spinup-{{version}}-macos/install.sh
This will create the required directories and files.
Running the app
To run the app you can use the following command:
spinup
This will start the app where you can add command (templates) and projects.
CLI
Commands
Adding a command
To add a command template you can use the following command:
spinup command add <name> <command>
Example:
spinup command add example "npm run dev"
Removing a command
To remove a command template you can use the following command:
spinup command remove|rm <name>
Example:
spinup command remove example
Listing commands
To list all the command templates you can use the following command:
spinup command list|ls
Custom Variables
Commands are templates, so we can use variables that are then defined in the project configuration.
Example:
spinup command add example "npm run dev -- --port {{port}}"
port and domain are reserved variables that are used to define the port and domain (based on the name) of the project. These are required to be when adding a project.
More information on variables can be found in the Variables section.
Projects
Adding a project
To add a project you can use the following command:
spinup project add <name> <port> [commands...]
This will create a configuration for the project in the sqlite database for spinup located in your .config/spinup folder.
Example:
spinup project add example 8001 example1 example2
Removing a project
To remove a project you can use the following command:
spinup project remove|rm <name>
Example:
spinup project remove example
Listing projects
To list all the projects you can use the following command:
spinup project list|ls
Variables
You can add custom variables to the project configuration file. These variables can be used in the command templates.
spinup variable add <project> <name> <value>
Example:
If we define a command template like this:
spinup command add "example" "npx vite -- --loglevel {{loglevel}}"
We can add a variable to the project configuration like this:
spinup variable add example loglevel silent
spinup run example
Running a project
To run a project you can use the following command:
spinup run <project>
This will run the commands defined in the configuration for the project.