Heroku CLI
Comprehensive Heroku CLI commands and workflows for deploying and managing applications on the Heroku platform.
Installation & Authentication
Command |
Description |
heroku login |
Login to Heroku |
heroku login -i |
Login interactively |
heroku logout |
Logout from Heroku |
heroku auth:whoami |
Show current user |
heroku auth:token |
Display auth token |
App Management
Basic App Operations
Command |
Description |
heroku apps |
List all apps |
heroku apps:create myapp |
Create new app |
heroku apps:destroy myapp |
Delete app |
heroku apps:info |
Show app info |
heroku apps:rename newname |
Rename app |
heroku apps:open |
Open app in browser |
App Configuration
Command |
Description |
heroku config |
Show config vars |
heroku config:set KEY=value |
Set config var |
heroku config:unset KEY |
Remove config var |
heroku config:get KEY |
Get specific config var |
heroku buildpacks |
List buildpacks |
heroku buildpacks:set heroku/nodejs |
Set buildpack |
Deployment
Git Deployment
Command |
Description |
git push heroku main |
Deploy from main branch |
git push heroku develop:main |
Deploy from develop branch |
heroku git:remote -a myapp |
Add Heroku remote |
heroku releases |
List releases |
heroku releases:rollback v123 |
Rollback to specific release |
Container Deployment
Command |
Description |
heroku container:login |
Login to container registry |
heroku container:push web |
Build and push container |
heroku container:release web |
Release container |
heroku container:rm web |
Remove container |
Dynos and Scaling
Dyno Management
Command |
Description |
heroku ps |
List dynos |
heroku ps:scale web=2 |
Scale web dynos |
heroku ps:scale worker=1 |
Scale worker dynos |
heroku ps:restart |
Restart all dynos |
heroku ps:restart web.1 |
Restart specific dyno |
heroku ps:stop web.1 |
Stop specific dyno |
Dyno Types
Command |
Description |
heroku ps:type |
Show dyno types |
heroku ps:resize web=standard-1x |
Resize dyno type |
heroku ps:exec |
SSH into dyno |
Add-ons
Add-on Management
Command |
Description |
heroku addons |
List app add-ons |
heroku addons:create heroku-postgresql |
Add PostgreSQL |
heroku addons:create heroku-redis |
Add Redis |
heroku addons:destroy ADDON_NAME |
Remove add-on |
heroku addons:upgrade ADDON_NAME:PLAN |
Upgrade add-on plan |
heroku addons:downgrade ADDON_NAME:PLAN |
Downgrade add-on plan |
Popular Add-ons
Command |
Description |
heroku addons:create sendgrid |
Add SendGrid email |
heroku addons:create papertrail |
Add Papertrail logging |
heroku addons:create newrelic |
Add New Relic monitoring |
heroku addons:create scheduler |
Add Heroku Scheduler |
Database Operations
PostgreSQL
Command |
Description |
heroku pg |
List PostgreSQL databases |
heroku pg:info |
Show database info |
heroku pg:psql |
Connect to database |
heroku pg:reset DATABASE_URL |
Reset database |
heroku pg:backups |
List backups |
heroku pg:backups:capture |
Create backup |
heroku pg:backups:restore BACKUP_URL DATABASE_URL |
Restore backup |
Database Maintenance
Command |
Description |
heroku pg:maintenance |
Show maintenance info |
heroku pg:maintenance:run |
Run maintenance |
heroku pg:stats |
Show database stats |
heroku pg:diagnose |
Diagnose database issues |
Logging and Monitoring
Logs
Command |
Description |
heroku logs |
Show recent logs |
heroku logs --tail |
Stream logs |
heroku logs --source app |
Show app logs only |
heroku logs --dyno web.1 |
Show specific dyno logs |
heroku logs --num 1000 |
Show more log lines |
Monitoring
Command |
Description |
heroku ps:autoscale:enable |
Enable autoscaling |
heroku ps:autoscale:disable |
Disable autoscaling |
heroku metrics |
Show app metrics |
Domains and SSL
Domain Management
Command |
Description |
heroku domains |
List domains |
heroku domains:add example.com |
Add custom domain |
heroku domains:remove example.com |
Remove domain |
heroku domains:info example.com |
Show domain info |
SSL Certificates
Command |
Description |
heroku certs |
List SSL certificates |
heroku certs:add cert.pem key.pem |
Add SSL certificate |
heroku certs:remove |
Remove SSL certificate |
heroku certs:auto:enable |
Enable automatic SSL |
heroku certs:auto:disable |
Disable automatic SSL |
Pipelines and Review Apps
Pipeline Management
Command |
Description |
heroku pipelines |
List pipelines |
heroku pipelines:create mypipeline |
Create pipeline |
heroku pipelines:destroy mypipeline |
Delete pipeline |
heroku pipelines:add mypipeline --stage staging |
Add app to pipeline |
heroku pipelines:remove |
Remove app from pipeline |
Command |
Description |
heroku pipelines:promote --remote staging |
Promote to production |
heroku releases:rollback --remote production |
Rollback production |
Review Apps
Command |
Description |
heroku reviewapps:enable |
Enable review apps |
heroku reviewapps:disable |
Disable review apps |
Teams and Collaboration
Team Management
Command |
Description |
heroku teams |
List teams |
heroku members |
List team members |
heroku members:add user@example.com |
Add team member |
heroku members:remove user@example.com |
Remove team member |
Access Control
Command |
Description |
heroku access |
List app collaborators |
heroku access:add user@example.com |
Add collaborator |
heroku access:remove user@example.com |
Remove collaborator |
CLI Plugins
Plugin Management
Command |
Description |
heroku plugins |
List installed plugins |
heroku plugins:install PLUGIN_NAME |
Install plugin |
heroku plugins:uninstall PLUGIN_NAME |
Uninstall plugin |
heroku plugins:update |
Update all plugins |
Popular Plugins
Command |
Description |
heroku plugins:install heroku-repo |
Install repo plugin |
heroku repo:reset |
Reset git repository |
heroku repo:purge_cache |
Purge build cache |
Environment Management
Multiple Environments
Command |
Description |
heroku git:remote -a myapp-staging -r staging |
Add staging remote |
heroku git:remote -a myapp-production -r production |
Add production remote |
git push staging main |
Deploy to staging |
git push production main |
Deploy to production |
Environment Variables
Command |
Description |
heroku config --remote staging |
Show staging config |
heroku config:set NODE_ENV=production --remote production |
Set production config |
Maintenance and Troubleshooting
Maintenance Mode
Command |
Description |
heroku maintenance:on |
Enable maintenance mode |
heroku maintenance:off |
Disable maintenance mode |
heroku maintenance |
Check maintenance status |
Troubleshooting
Command |
Description |
heroku run bash |
Run bash shell |
heroku run rails console |
Run Rails console |
heroku run python manage.py shell |
Run Django shell |
heroku run node |
Run Node.js REPL |
Command |
Description |
heroku labs:enable preboot |
Enable preboot |
heroku labs:disable preboot |
Disable preboot |
heroku ps:wait |
Wait for dyno to be ready |
Best Practices
Deployment
- Use Pipelines: Set up staging and production environments
- Environment Variables: Store configuration in config vars
- Database Migrations: Run migrations during deployment
- Health Checks: Implement health check endpoints
Security
- SSL: Always use SSL for production apps
- Environment Separation: Keep staging and production separate
- Access Control: Limit collaborator access
- Secrets Management: Use config vars for sensitive data
- Dyno Sizing: Choose appropriate dyno types
- Caching: Implement caching strategies
- Database Optimization: Monitor and optimize database queries
- CDN: Use CDN for static assets
Monitoring
- Logging: Implement comprehensive logging
- Metrics: Monitor application metrics
- Alerts: Set up alerts for critical issues
- Error Tracking: Use error tracking services