Capistrano automates a repeatable SSH deployment to an already provisioned VPS. Add Capistrano 3 to your Ruby application’s development bundle, generate its configuration, define the repository, stage, server, release path and persistent files, then run bundle exec cap production deploy. Capistrano checks prerequisites, creates a timestamped release, links shared data, switches the current symlink and removes old releases.
Antihost offers Linux VPS plans with full root access, unlimited traffic on a 1 Gbps port and a 14-day free trial.
What Capistrano does on a VPS
Capistrano is a deployment automation framework built on Ruby, Rake and SSH. It runs from your project machine, connects to the VPS, and executes the same deployment tasks in the same order each time. It does not provision a server, install an operating system, create a database, or replace your application’s process manager. You prepare those pieces separately; Capistrano automates the procedure you would otherwise perform manually over SSH.
As an Amazon Associate I earn from qualifying purchases.
The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →A Capistrano deployment normally uses three directories below :deploy_to:
| Path | Purpose | What happens during a deployment |
|---|---|---|
current |
Stable path used by the running service | A symlink is moved to the newest successful release only after deployment tasks finish. |
releases |
Versioned application checkouts | Each deployment receives a separate release directory; old releases can be retained for rollback. |
shared |
Persistent data outside individual checkouts | Configured linked files and directories are stored here and symlinked into every release. |
This layout means a fresh checkout does not overwrite uploads, logs, sockets, cache data, Bundler configuration or secrets. It also gives you a fast rollback mechanism: Capistrano can point current at an earlier release instead of rebuilding that release from scratch.
#1 Best Overall
- BLUE LIGHT BLOCKING GLASSES: Our blue light glasses for women boast UV400 protection, blocking harmful blue rays from computer screens. With these bluelight glasses women, you can enjoy gaming, reading, or watching TV with no worries of eye strain.
- EYE RELIEF: Our blue light glasses are engineered to reduce blurry vision or strain caused by prolonged screen time. These womens blue light glasses aid in better sleep by preventing blue light from disrupting your natural sleep cycle, helping you fall asleep faster and enjoy a more restful night's sleep, making them the perfect christmas present.
- COMFORTABLE: Crafted from durable material, our trendy blue light glasses for woman or blue light glasses men ensure long-lasting comfort. The high-transmittance lenses accessories, gamer gifts for men, help keep your eyes relaxed. Perfect stocking stuffers, gifts for gamers men, christmas gifts for men, halloween costumes.
- LIGHTWEIGHT: These clear blue light glasses feature a lightweight frame, meaning they’ll stay comfy for long-term wear. Perfect as blue blockers glasses for women or mens blue light glasses, these non-prescription fake glasses for men can be worn throughout the day. The blue light blocking glasses women feature polycarbonate HD lenses, which are anti-reflective and restore true color.
- WORRY-FREE PURCHASE: If you experience any issues, our support team is ready to assist you quickly. These are the perfect costume glasses for cosplay dressing up.
The deployment lifecycle
- Capistrano loads the selected stage and checks its prerequisites.
- It connects to the declared VPS roles over SSH.
- It creates a new directory under
releasesand fetches the requested source revision with the configured SCM. - It installs or prepares dependencies and runs application tasks loaded through the
Capfile. - It creates links from
sharedinto the new release. - It runs migrations, asset compilation or other configured tasks.
- It publishes the release by moving the
currentsymlink. - It removes releases beyond the configured retention count.
If a task fails before publication, the previous current release remains active. A successful task run does not by itself prove that your web server, application process manager or background workers restarted correctly, so check the service after publication.
Prerequisites: prepare the project and VPS
Local machine requirements
- A Ruby project managed with Bundler and a source-control repository.
- Ruby 2.5 or newer for the version documented by the official Capistrano quick start. Confirm this requirement against the Capistrano release you actually pin, because supported Ruby versions can change.
- An SSH client and a key that can authenticate to the deployment account.
- Permission to modify the project’s development bundle and commit the generated Capistrano files.
VPS requirements
- A dedicated, non-privileged deployment user rather than a routine login as root.
- Ruby, Bundler and all runtime dependencies required by the application.
- The SCM executable used by the project, such as Git, available to the deployment user on the VPS. Capistrano invokes it remotely; having it only on your laptop is not enough.
- An application parent directory owned or writable by the deployment user, for example
/var/www/myapp. - SSH public-key authentication and a non-interactive POSIX shell.
- A process manager, reverse proxy, database and any system packages your application needs, configured independently of Capistrano.
Test the exact account and key before configuring Capistrano:
ssh [email protected] 'ruby --version && bundle --version && git --version'
The command should complete without a password prompt, interactive confirmation, or a request for terminal input. If a deployment requires interactive sudo, a shell profile that prints text, or a missing host-key confirmation, fix that first. Non-interactive SSH failures are otherwise easy to mistake for Capistrano configuration errors.
SSH and permissions checklist
- Install the deployment key for the remote user and restrict its permissions locally.
- Ensure the remote user can read the repository, either through an accessible public repository or a deploy key/agent arrangement appropriate to your SCM.
- Ensure the remote user owns the application directory and can create
releasesandshared. - Give the running application process read/write access only to the shared paths it needs.
- Put secrets in a protected shared file or an external secret mechanism; do not commit production credentials to the repository.
Install Capistrano 3 in the project
Add Capistrano to the development group so deployment tooling is available to developers and CI without becoming an application runtime dependency:
group :development do
gem "capistrano", require: false
end
Pin a version compatible with the application’s Ruby and Bundler versions, then install the bundle:
bundle install
From the project root, generate the standard configuration:
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
bundle exec cap install
This creates a Capfile, a shared config/deploy.rb, and stage files such as config/deploy/production.rb and config/deploy/staging.rb. Treat generated values as templates. The generated host, repository, user and paths are not automatically correct for your VPS.
Configure the shared deployment settings
Put values common to every stage in config/deploy.rb. A practical starting point is:
Rank #2
- WINDEX GAMING WIPES: effortlessly clean all your gaming gear and gaming electronics in one easy step with our new Windex Gaming Wipes
- AMMONIA FREE: our ammonia-free formula is safe to use on all of your favorite gaming equipment like consoles, headsets, controllers, screens, keyboards, and more
- PRE-MOISTENED WIPES: each wipe instantly removes dust, dirt, and stubborn smudges and fingerprints leaving a streak-free shine
- ANTI-STATIC: great for cleaning and wiping down your gaming gear and electronics leaving behind no visible residue
- COMPACT RESEALABLE PACKAGE: store your pack of Windex Gaming Wipes anywhere in your home for whenever a quick and easy wipedown is needed
set :application, "myapp"
set :repo_url, "ssh://git.example.net/team/myapp.git"
set :branch, "main"
set :deploy_to, "/var/www/myapp"
append :linked_dirs,
"log",
"tmp/pids",
"tmp/cache",
"tmp/sockets",
"vendor/bundle",
".bundle",
"public/uploads"
append :linked_files,
"config/database.yml",
"config/secrets.yml"
Choose the repository and branch policy
:repo_url must be reachable by the remote deployment account using the SCM credentials available on the VPS. :branch can be a fixed branch such as main, or you can override it per stage. A fixed production branch reduces accidental deployments from a developer’s local branch; a release-tag policy can provide stricter change control if your team already uses tags.
Choose the deployment root
:deploy_to is the parent of releases, shared and current. Point your web server and process manager at /var/www/myapp/current, not at a timestamped release directory. That keeps service configuration stable while Capistrano changes the symlink.
Recommended Free Tools
Configure linked directories
Use append :linked_dirs for data that must survive a new checkout: logs, process IDs, sockets, caches, uploaded files, or a shared Bundler directory. Capistrano creates the corresponding directories under shared and links them into each release. Add only paths that are genuinely persistent. For example, a cache can be shared if its contents are safe across releases; generated build output that must be isolated should remain inside the release instead.
Configure linked files
Use append :linked_files for files that are environment-specific and should not be committed, such as database configuration or application secrets. Create each file under /var/www/myapp/shared before the first deployment, with ownership and permissions that allow the application to read it. A linked-file declaration cannot supply a missing secret; the deployment will fail when Capistrano tries to create a link to a file that does not exist.
Do not blindly copy the Rails examples into a non-Rails application. Select paths from the application’s actual runtime configuration and secret-management design.
Define the production VPS in its stage file
Keep host-specific values in config/deploy/production.rb so staging can use a different machine and settings:
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →server "app.example.net",
user: "deploy",
roles: %w[app web db],
primary: true
set :branch, "main"
You can use an IP address instead of a hostname if DNS is not configured. The roles describe which Capistrano tasks may target the server:
- app identifies the application runtime host.
- web identifies the host involved in web-facing tasks.
- db identifies the host on which database tasks, such as migrations, should run.
On a single VPS it is normal for one server declaration to carry all three roles. On separate machines, declare each host and assign only the roles it should receive. Keep production credentials, hostnames and branch overrides out of the shared file when they differ by environment.
Rank #3
- Ergonomic & Adjustable Design: Fight "text neck" and improve your posture. Designed for comfort, it offers an adjustable height (7.1in-8.5in) (1.4in adjustable range) and angle (5°-85°) Please note: cell phone stand is only 9 inches tall—the length of a standard pencil
- Without blocking subtitles Perfect for office desk Tiktok Face Time Zoom video—this is the ultimate kitchen desk essential for phones! Perfect viewing experience while reducing neck back strain, A must-have for gamers streamers desk, and anyone who values both style and support!
- Sleek & Stable Design fits Otterbox Case: Say goodbye to bent cables, tangles, and tip-overs! LISEN’s stylish adjustable desk phone holder features a built-in charging hole and smart cable management, keeping your phone secure and your workspace clutter-free cool gadgets for men
- ANTI-SLIP DESIGN free hands: The under 10.00 items easy gadgets back and the bottom of this kitchen essentials for women are fully covered by anti-skid silicone, which LISEN stand up desk decor can provide maximum protection device from any scratches and slides
- Your Perfect Viewing Companion:If your product arrives damaged or breaks within 365 days, reach out to LISEN for a quick and hassle-free solution. Struggling with assembly, like tightening the screw? We’ve got your back! Your experience matters to us. (Product including: phone Holder stand*1, screw*1, hexagon screwdriver*1, specification*1)
Add a staging stage
The generated staging file gives you a safe place to validate the workflow. Give it its own hostname, deployment root and branch, and use staging-specific linked files. A stage is selected by the command name, so production and staging remain explicit:
bundle exec cap staging deploy
bundle exec cap production deploy
Load the integrations your application needs
The Capfile loads Capistrano’s core tasks and optional integrations. A Rails application commonly uses:
require "capistrano/setup"
require "capistrano/deploy"
require "capistrano/bundler"
require "capistrano/rails"
Use capistrano/rails when you want the Rails integration, including its standard migration and asset tasks. If you need only those pieces, load the narrower assets and migrations integrations instead. For a non-Rails application, omit the Rails require and define the application’s build, restart and health-check tasks yourself.
The Bundler integration runs bundle-related deployment steps. Persist .bundle in linked_dirs only when the application needs a shared Bundler configuration or shared bundle location. Otherwise, use the dependency layout appropriate to your runtime.
Run a dry run, then publish the first release
Inspect prerequisites and task dependencies
From the project root, use the bundle-qualified command so Capistrano and its plugins come from the project’s lockfile:
bundle exec cap production deploy --prereqs
This displays prerequisite relationships and is useful when a custom task appears to run in an unexpected order. To see detailed task execution and a full error backtrace, add --trace.
Free tools Windows power users keep installed
One-click scans. No signup required.
Perform a no-change check
Run:
bundle exec cap production deploy --dry-run
A dry run lets you inspect the task plan without changing the server. It is useful for confirming that the intended stage loads, the expected roles are selected and custom tasks are present. It does not prove that repository authentication, filesystem permissions, migrations or service restarts will succeed, so treat it as a plan check rather than a deployment test.
Deploy
When the stage and SSH checks are correct, publish the release:
Rank #4
- Easy Installation: Our gaming lights have been designed to enhance your entertainment experience. Simply position the led light bar next to your TV or game console to create a game room environment with ease. They come with USB power and a 60 inch cord for direct mounting and mobility
- Audio Syncing & Extensive Mode: The built-in high-sensitivity music sensor allows you to sync the TV led lights to your favorite music. Lights react and move to the beat of music, film and game audio, creating an incredible immersive sound and light experience – and all without the need for an additional hub. You can choose from 64+ patterns, including strobe, illusion, jump, energy, gradient, running, chasing, fluttering mode etc. Each mode can be applied to different scenes
- 64+ Chasing IC+RGB & W Effect: The independent control design of IC+RGB and white all-in-one multifunctional rgbw led bar lights monitor backlight allows you to easily switch the led lights for desk between IC+RGB and white to enjoy a variety of lighting effects, you can choose white lighting mode with high brightness for better illumination when working, etc. Choose IC+RGB lighting mode when you need to create an entertaining atmosphere for the light show, 16 million colours of Color changing rgb light bar let you dance to the beat and create a dynamic party atmosphere
- Dynamic and Dimmable Lights: 1%-full brightness free brightness adjustment gives you the flexibility to adjust dimmable led light bar for room decorations or a variety of occasions
- USB Powered: USB light bars for room can be powered by powernank, usb charger, TV, Monitor, laptop PC mainframe, making behind TV led lighting bar easy to install in any location.TV led lights are powered by the TV usb interface / PC mainframe, can be turned on/off synchronously with TV / PC
bundle exec cap production deploy
Watch for the repository checkout, dependency installation, linked-path creation, application tasks and final publication. If the command stops before the publication step, inspect the reported task and leave the existing service running while you correct the cause. Re-run the deployment after fixing the underlying issue rather than manually editing the current symlink.
Verify the running service
After Capistrano reports success, check the application through its normal health endpoint or user-facing URL, inspect the process manager status and review the new release’s logs. A deployment can complete while a process still runs old code, a socket path is wrong, a migration failed in a separate step or a reverse proxy points at the wrong directory. Make service verification part of your release procedure.
Rails deployments: migrations, assets and persistent data
The Rails integration supplies tasks including cap deploy:migrate and cap deploy:compile_assets. Use them only when the application needs them and when the database and asset toolchain are available on the VPS.
Common Rails persistent paths include:
logfor application logs.tmp/pidsfor process identifiers.tmp/cachefor cache data.tmp/socketsfor Unix sockets used by an application server.vendor/bundleor.bundlefor a shared dependency configuration.- An upload directory such as
public/uploads.
Common persistent files include config/database.yml and config/secrets.yml, although newer Rails applications may use encrypted credentials or environment variables instead. Configure the mechanism your application actually reads. A file that exists in shared but is not declared as linked will not appear in the release.
Database migrations are not automatically a substitute for a safe schema rollout. For changes that require old and new application versions to coexist, design a backward-compatible migration sequence and coordinate the process restart separately.
Rollback a bad release
If the newly published release is unusable, use Capistrano’s rollback task:
bundle exec cap production deploy:rollback
The rollback changes current back to a prior release retained under releases. It does not undo a database migration, restore overwritten user data, repair a malformed VPS, recreate a missing shared secret or fix a broken process-manager configuration. Treat database changes and persistent data as separate recovery concerns.
Before relying on rollback, retain enough releases for the recovery window and make sure the previous release still has access to the shared files and directories it expects. After the symlink changes, restart or reload the application process if your runtime requires it, then verify the service and logs.
Best Value
- Compatible with Wide Screens - To ensure compatibility with the dual monitor mount, your each monitor must meet three conditions at the same time: First, computer screens size range: 13 to 32 inches. Second, screen weight range: 4.4 to 19.8 lbs. Third, the back of the monitor screen must have VESA mounting holes with a pitch of 75x75mm or 100x100mm.
- Regarding the compatibility with desks - Your desk must meet three conditions at the same time: First, desk material: Only wooden desks are recommended, plastic or glass desks cannot be used. Second, desk thickness range: 0.59" - 3.54". Third, the bottom of the desk should not have any cross beams or panels, as this will interfere with installation. We recommend carefully checking that your desk and monitors meets all above conditions before purchasing.
- Dual C-Clamp Hold - Worried your dual monitors might wobble or slip? Our upgraded base uses a larger platform plus a dual C-clamp structure to lock the dual monitor arm firmly to your desk. Each arm safely keeps your screens steady while you type, click and game—no shaking, no sliding, just a clean and secure setup you can trust every day. It also provides Grommet Mounting installation choice, both options ensure stable and secure fixation for your 0.59" - 3.54" desk.
- Full-Motion Adjustment For Comfortable View - Pull the screen closer when you’re deep in a spreadsheet, push it back to watch videos, or rotate to portrait for coding — moving everything smoothly with just one hand. The monitor stand offers +85°/-50° tilt, ±90° swivel and 360° rotation. Raise your monitor up to 15.75″ to support a healthy sitting posture. Whether you’re working from home, gaming through the night, or switching between video calls and documents, getting the screens to your natural line of sight helps relieve neck, shoulder and back strain so you can stay focused longer with less fatigue.
- Keep Your Desk Organized: By lifting both screens off the desktop, this dual monitor stand opens up valuable space for your keyboard, notebook, docking station or a simple, clutter-free work area. Built-in cable management guides wires along the arms, keeping cords out of sight and out of the way. Enjoy a tidy, modern workstation that looks as good as it feels to use.
Troubleshoot common failures
| Symptom | Likely cause | Fix |
|---|---|---|
| SSH asks for a password or hangs | The key, host key, agent or shell is not usable non-interactively. | Test the exact ssh deploy@host command, install the correct public key, accept the host key through your normal provisioning process and remove interactive shell prompts. |
| Repository checkout fails | The VPS lacks the SCM binary or the deployment account cannot read the repository. | Install the required SCM on the VPS and test repository access as the deployment user. |
Cannot create releases or shared |
The deploy user does not own or have write permission to :deploy_to. |
Create the parent directory with the intended owner and correct its permissions; avoid granting unnecessary root access. |
| Deployment reports a missing linked file | A declared file was not created under shared. |
Create the file with the correct secret contents, owner and mode, then rerun the deployment. |
| Assets or migrations do not run | The relevant plugin is not loaded, dependencies are absent, or the task is not in the expected stage. | Check the Capfile, run with --trace, confirm the task name and verify runtime dependencies on the VPS. |
| New code is deployed but the site serves old code | The process manager was not restarted or the proxy points somewhere other than current. |
Point services at current, add an explicit restart or reload task, and verify the process and proxy configuration. |
| Rollback appears to work but the app still fails | The failure is outside the release symlink, such as an incompatible migration, missing shared data or a service configuration error. | Address the database, shared state or service configuration separately; rollback only selects an earlier release. |
For an opaque failure, rerun the command with --trace, identify the first failing task rather than the last stack-trace line, and reproduce that task manually as the deployment user. This usually distinguishes SSH, permissions, dependency, application and service-manager problems.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Fix the driver behind crashes, sound loss and screen glitches3Repair Windows errors before they cause bigger problemsOperational practices that make Capistrano dependable
Keep deployment code versioned
Commit the Capfile, config/deploy.rb and stage files with the application or in the deployment repository used by your team. Review changes to hosts, branches, linked paths and restart tasks like production code.
Separate provisioning from deployment
Install operating-system packages, Ruby, Bundler, databases, reverse proxies, process managers and firewall rules through your server-provisioning process. Capistrano assumes those prerequisites exist; mixing one-time provisioning commands into every release makes deployments slower and less predictable.
Limit the release footprint
Retain enough releases to cover your rollback policy, but remove obsolete releases so disk usage does not grow indefinitely. Monitor the filesystem, especially when logs, uploaded files or compiled assets are large.
Make restarts and health checks explicit
Capistrano can run custom tasks for restarting or reloading an application process and for checking a health endpoint. Define those tasks deliberately for your process manager, and place the health check after publication so a failed check stops the release procedure or triggers your recovery path.
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minutePC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Protect secrets and uploads
Shared files should be readable only by the accounts that need them. Back up uploads and other persistent data independently of the release directories. A rollback is not a backup strategy.
When Capistrano fits a VPS workflow
Capistrano is a strong fit when you control one VPS or a small set of similarly managed servers, can provide SSH access, and want release directories with symlink-based rollback. Its stage files make production and staging explicit, and its task system lets you encode the exact commands your team already trusts.
It is less suitable when your platform does not permit SSH-based administration, when deployments must run entirely from immutable images or containers, or when server provisioning and fleet scheduling are the primary problem. Capistrano does not automatically provision infrastructure or coordinate a large fleet. In those environments, an artifact- or image-centered pipeline may be a better foundation, with Capistrano retained only where its SSH task model is appropriate.
Quick Recap
A repeatable deployment checklist
- Confirm the application bundle, Ruby compatibility and pinned Capistrano version.
- Verify non-interactive SSH as the dedicated deployment user.
- Verify Ruby, Bundler, the SCM binary and application dependencies on the VPS.
- Check ownership and write access to
:deploy_to. - Review
:repo_url, branch and stage roles. - Create every declared linked file under
sharedand set secure permissions. - Confirm linked directories cover uploads, sockets, logs and other data that must persist.
- Run
--prereqs, then--dry-run. - Deploy with
bundle exec cap production deploy. - Verify the service, logs, migrations, assets and health endpoint.
- Keep sufficient releases and know the rollback command before an incident.
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




