Stack Up alternatives and similar packages
Based on the "Other Software" category.
Alternatively, view Stack Up alternatives based on common mentions on social networks and blogs.
syncthing10.0 8.9 Stack Up VS syncthingOpen Source Continuous File Synchronization
hugo10.0 9.1 Stack Up VS hugoThe world’s fastest framework for building websites.
croc9.9 7.4 Stack Up VS crocEasily and securely send things from one computer to another :crocodile: :package:
Seaweed File System9.8 9.9 Stack Up VS Seaweed File SystemSeaweedFS is a fast distributed storage system for blobs, objects, files, and data lake, for billions of files! Blob store has O(1) disk seek, cloud tiering. Filer supports Cloud Drive, cross-DC active-active replication, Kubernetes, POSIX FUSE mount, S3 API, S3 Gateway, Hadoop, WebDAV, encryption, Erasure Coding. [Moved to: https://github.com/seaweedfs/seaweedfs]
limetext9.8 0.0 Stack Up VS limetextOpen source API-compatible alternative to the text editor Sublime Text
Gor9.8 5.8 Stack Up VS GorGoReplay is an open-source tool for capturing and replaying live HTTP traffic into a test environment in order to continuously test your system with real data. It can be used to increase confidence in code deployments, configuration changes and infrastructure changes.
restic9.8 9.2 Stack Up VS resticFast, secure, efficient backup program
rkt9.7 0.4 Stack Up VS rktAn App Container runtime that integrates with init systems, is compatible with other container formats like Docker, and supports alternative execution engines like KVM.
toxiproxy9.6 8.6 Stack Up VS toxiproxy:alarm_clock: :fire: A TCP proxy to simulate network and system conditions for chaos and resiliency testing
Comcast9.6 1.0 Stack Up VS ComcastSimulating shitty network connections so you can build better systems.
confd9.6 0.0 Stack Up VS confdManage local application configuration files using templates and data from etcd or consul
LiteIDE9.5 5.7 L1 Stack Up VS LiteIDELiteIDE is a simple, open source, cross-platform Go IDE.
drive9.3 0.0 Stack Up VS driveGoogle Drive client for the commandline
nes9.2 0.0 Stack Up VS nesNES emulator written in Go.
Duplicacy9.1 4.5 Stack Up VS DuplicacyA new generation cloud backup tool
heka9.0 0.0 Stack Up VS hekaDEPRECATED: Data collection and processing made easy.
scc9.0 6.2 Stack Up VS sccSloc, Cloc and Code: scc is a very fast accurate code counter with complexity calculations and COCOMO estimates written in pure Go
Docker8.8 6.2 Stack Up VS DockerNotary is a project that allows anyone to have trust over arbitrary collections of data
fleet8.8 0.0 Stack Up VS fleetA Distributed init System.
myLG8.6 0.0 Stack Up VS myLGNetwork Diagnostic Tool
Juju8.5 10.0 Stack Up VS JujuUniversal Operator Lifecycle Manager (OLM) for Kubernetes operators, and operators for traditional Linux apps, with declarative integration between operators for automated microservice integration.
GoBoy8.4 0.0 Stack Up VS GoBoyMulti-platform Nintendo Game Boy Color emulator written in Go
Circuit8.4 0.0 Stack Up VS CircuitCircuit: Dynamic cloud orchestration http://gocircuit.org
snap8.4 0.0 Stack Up VS snapThe open telemetry framework
blocky8.4 6.7 Stack Up VS blockyFast and lightweight DNS proxy as ad-blocker for local network with many features
lgo8.3 0.0 Stack Up VS lgoInteractive Go programming with Jupyter
Documize8.2 6.5 Stack Up VS DocumizeModern Confluence alternative designed for internal & external docs, built with Go + EmberJS
borg7.9 0.0 Stack Up VS borgSearch and save shell snippets without leaving your terminal
GoDNS7.8 7.8 Stack Up VS GoDNSA dynamic DNS client tool supports AliDNS, Cloudflare, Google Domains, DNSPod, HE.net & DuckDNS & DreamHost, etc, written in Go.
vFlow7.8 1.6 Stack Up VS vFlowEnterprise Network Flow Collector (IPFIX, sFlow, Netflow)
Plik7.7 6.3 Stack Up VS PlikPlik is a temporary file upload system (Wetransfer like) in Go.
shell2http7.6 4.4 Stack Up VS shell2httpExecuting shell commands via HTTP server
peg7.4 0.0 Stack Up VS pegPeg, Parsing Expression Grammar, is an implementation of a Packrat parser generator.
Go Package Store7.2 0.0 Stack Up VS Go Package StoreAn app that displays updates for the Go packages in your GOPATH.
Postman7.1 0.0 Stack Up VS PostmanCLI tool for batch-sending email via any SMTP server.
Leaps7.1 0.9 Stack Up VS LeapsA pair programming service using operational transforms
Guora7.0 0.0 Stack Up VS Guora🖖🏻 A self-hosted Quora like web application written in Go 基于 Golang 类似知乎的私有部署问答应用 包含问答、评论、点赞、管理后台等功能
gfile7.0 0.0 Stack Up VS gfileDirect file transfer over WebRTC
gocc6.8 0.0 Stack Up VS goccParser / Scanner Generator
Gebug6.7 8.3 Stack Up VS GebugDebug Dockerized Go applications better
Gokapi6.7 8.0 Stack Up VS GokapiLightweight selfhosted Firefox Send alternative without public upload. AWS S3 supported.
mockingjay6.7 0.0 Stack Up VS mockingjayFake server, Consumer Driven Contracts and help with testing performance from one configuration file with zero system dependencies and no coding whatsoever
sake6.6 7.9 Stack Up VS sake:robot: sake is a task runner for local and remote hosts
ipe6.4 0.0 Stack Up VS ipeAn open source Pusher server implementation compatible with Pusher client libraries written in GO
woke6.2 7.4 Stack Up VS wokeDetect non-inclusive language in your source code.
ide6.1 8.2 Stack Up VS ideA Go code editor. With debugging and Autocomplete. 一个 Go 代码编辑器，具有 DEBUGGING 和 AUTOCOMPLETE
Cherry6.0 0.0 Stack Up VS CherryA tiny webchat server in Go.
tcpprobe5.9 0.9 Stack Up VS tcpprobeModern TCP tool and service for network performance observability.
wellington5.8 0.0 Stack Up VS wellingtonSpriting that sass has been missing
DDNS5.5 4.2 Stack Up VS DDNSPersonal DDNS client with Digital Ocean Networking DNS as backend.
Access the most powerful time series database as a service
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of Stack Up or a related project?
Stack Up is a simple deployment tool that performs given set of commands on multiple hosts in parallel. It reads Supfile, a YAML configuration file, which defines networks (groups of hosts), commands and targets.
Note: Demo is based on [this example Supfile](./example/Supfile).
$ go get -u github.com/pressly/sup/cmd/sup
$ sup [OPTIONS] NETWORK COMMAND [...]
||Custom path to Supfile|
||Set environment variables|
||Filter hosts matching regexp|
||Filter out hosts matching regexp|
||Enable debug/verbose mode|
||Disable hostname prefix|
A group of hosts.
# Supfile networks: production: hosts: - api1.example.com - api2.example.com - api3.example.com staging: # fetch dynamic list of hosts inventory: curl http://example.com/latest/meta-data/hostname
$ sup production COMMAND will run COMMAND on
api3 hosts in parallel.
A shell command(s) to be run remotely.
# Supfile commands: restart: desc: Restart example Docker container run: sudo docker restart example tail-logs: desc: Watch tail of Docker logs from all hosts run: sudo docker logs --tail=20 -f example
$ sup staging restart will restart all staging Docker containers in parallel.
$ sup production tail-logs will tail Docker logs from all production containers in parallel.
Serial command (a.k.a. Rolling Update)
serial: N constraints a command to be run on
N hosts at a time at maximum. Rolling Update for free!
# Supfile commands: restart: desc: Restart example Docker container run: sudo docker restart example serial: 2
$ sup production restart will restart all Docker containers, two at a time at maximum.
Once command (one host only)
once: true constraints a command to be run only on one host. Useful for one-time tasks.
# Supfile commands: build: desc: Build Docker image and push to registry run: sudo docker build -t image:latest . && sudo docker push image:latest once: true # one host only pull: desc: Pull latest Docker image from registry run: sudo docker pull image:latest
$ sup production build pull will build Docker image on one production host only and spread it to all hosts.
Runs command always on localhost.
# Supfile commands: prepare: desc: Prepare to upload local: npm run build
Uploads files/directories to all remote hosts. Uses
tar under the hood.
# Supfile commands: upload: desc: Upload dist files to all hosts upload: - src: ./dist dst: /tmp/
Interactive Bash on all hosts
Do you want to interact with multiple hosts at once? Sure!
# Supfile commands: bash: desc: Interactive Bash on all hosts stdin: true run: bash
$ sup production bash # # type in commands and see output from all hosts! # ^C
Passing prepared commands to all hosts:
$ echo 'sudo apt-get update -y' | sup production bash # or: $ sup production bash <<< 'sudo apt-get update -y' # or: $ cat <<EOF | sup production bash sudo apt-get update -y date uname -a EOF
Interactive Docker Exec on all hosts
# Supfile commands: exec: desc: Exec into Docker container on all hosts stdin: true run: sudo docker exec -i $CONTAINER bash
$ sup production exec ps aux strace -p 1 # trace system calls and signals on all your production hosts
Target is an alias for multiple commands. Each command will be run on all hosts in parallel,
sup will check return status from all hosts, and run subsequent commands on success only
(thus any error on any host will interrupt the process).
# Supfile targets: deploy: - build - pull - migrate-db-up - stop-rm-run - health - slack-notify - airbrake-notify
$ sup production deploy
is equivalent to
$ sup production build pull migrate-db-up stop-rm-run health slack-notify airbrake-notify
See [example Supfile](./example/Supfile).
# Supfile --- version: 0.4 # Global environment variables env: NAME: api IMAGE: example/api networks: local: hosts: - localhost staging: hosts: - stg1.example.com production: hosts: - api1.example.com - api2.example.com commands: echo: desc: Print some env vars run: echo $NAME $IMAGE $SUP_NETWORK date: desc: Print OS name and current date/time run: uname -a; date targets: all: - echo - date
Default environment variables available in Supfile
$SUP_HOST- Current host.
$SUP_NETWORK- Current network.
$SUP_USER- User who invoked sup command.
$SUP_TIME- Date/time of sup command invocation.
$SUP_ENV- Environment variables provided on sup command invocation. You can pass
dockercommands in your Supfile.
Running sup from Supfile
Supfile doesn't let you import another Supfile. Instead, it lets you run
sup sub-process from inside your Supfile. This is how you can structure larger projects:
./Supfile ./database/Supfile ./services/scheduler/Supfile
Top-level Supfile calls
sup with Supfiles from sub-projects:
restart-scheduler: desc: Restart scheduler local: > sup -f ./services/scheduler/Supfile $SUP_ENV $SUP_NETWORK restart db-up: desc: Migrate database local: > sup -f ./database/Supfile $SUP_ENV $SUP_NETWORK up
Common SSH Problem
if for some reason sup doesn't connect and you get the following error,
connecting to clients failed: connecting to remote host failed: Connect("[email protected]"): ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain
it means that your
ssh-agent dosen't have access to your public and private keys. in order to fix this issue, follow the below instructions:
- run the following command and make sure you have a key register with
if you see something like
The agent has no identities. it means that you need to manually add your key to
in order to do that, run the following command
you should now be able to use sup with your ssh key.
fork it, hack it.. $ make build create new Pull Request
We'll be happy to review & accept new Pull Requests!
Licensed under the [MIT License](./LICENSE).
*Note that all licence references and agreements mentioned in the Stack Up README section above are relevant to that project's source code only.