Beam Up
Static site deployment CLI supporting multiple providers. Just run beam_up ./output.
Installation
If you have a Ruby environment available, you can install:
gem install beam_up
Configuration
Create a config file:
beam_up init netlify
Or manually create .beam_up.yml (or config/beam_up.yml):
provider: netlify
# path: ./output # optional
netlify:
api_token: your_token_here
project_id: your_project_id
If both files exist, config/beam_up.yml takes priority.
Deploy
# Deploy using configured provider
beam_up ./output
# Override provider for this deploy
beam_up ./output --to bunny
# or
beam_up ./output --provider bunny
Supported providers
- aws_s3
- bunny
- digital_ocean_spaces
- hetzner
- neocities
- netlify
- sftp
- statichost
Usage from Ruby
require "beam_up"
BeamUp.deploy! "./output"
# Deploy with provider override
BeamUp.deploy! "./output", to: "bunny"
# or
BeamUp.deploy! "./output", provider: "bunny"
Hooks
Run commands before and after deployment:
provider: netlify
before_actions:
- npm run build
after_actions:
- echo "Deployment complete ✨"
netlify:
api_token: your_token_here
project_id: your_project_id
If a before_action fails, deployment is cancelled.
SFTP
Beam Up supports SFTP like the good ol' days. Requires additional gems:
gem install net-ssh net-sftp
Configuration:
provider: sftp
sftp:
host: your-server.com
username: deploy_user
remote_path: /var/www/html
# Use either password OR key:
password: your_password
# key: ~/.ssh/id_rsa
Contributing
This project uses Standard for formatting. Run rake before submitting pull requests.
License
MIT License
Fun fact: “Beam me up, Scotty” was never spoken in any Star Trek television episode or film.