DeployHQ Frequently Asked Questions
General Deployment Concepts
What does "deployment" mean in software? Software deployment is all of the activities that make a software system available for use. These activities can span from moving code from a repository to a server, to performing build operations on your code and setting up applications for end users.
What does it mean to deploy a project? Deploying a project involves taking your finished code and making it operational on a server, allowing users to access and interact with your website or application. In DeployHQ, a project is where you can configure your deployment strategy and any details needed to make your deployment your own.
What does it mean to deploy code? Deploying code is the action of taking your code from your repository, and making it available for usage in a server, either for development, testing, staging or production purposes.
What is the difference between hosting and deployment? Hosting refers to where your website or application is stored and served from, while deployment is the process of updating or publishing your code to that hosting environment.
What are the 5 steps of deployment? While specific steps may vary, a typical deployment process includes: planning, development, testing, deployment, and monitoring/maintenance. DeployHQ takes care of the 4th step in this process, the deployment step.
What are the 3 deployment models? Common deployment models include on-premises deployment, cloud-based deployment, and hybrid deployment. With DeployHQ, you can deploy to all 3 models in this case, as long as you can connect your server with our system.
What are the 4 types of hosting? There are 4 types of hosting widely used to deploy applications and websites: Shared Hosting, Virtual Private Servers (VPS), Dedicated Servers and Cloud Hosting. DeployHQ allows you to deploy to all 4 types by offering a flexible connection system with all types of hosting solutions.
What are the advantages of using a deployment tool like DeployHQ over manual methods (e.g., FTP/SSH)? Using a deployment tool like DeployHQ offers several advantages over manual methods:
- Automation: Reduces repetitive manual work and the chance of human error.
- Speed: Faster deployments through optimized processes.
- Consistency: Ensures the same deployment process is followed every time.
- Version Control Integration: Seamlessly deploys from Git repositories, allowing easy rollbacks to previous versions.
- Build Processes: Can automate build steps (e.g., compiling assets, running tests) before deployment.
- Configuration Management: Helps manage different configurations for various environments (staging, production).
- Logging and History: Provides a record of all deployments for auditing and troubleshooting.
- Collaboration: Allows teams to manage and monitor deployments from a central place.
What's the difference between Continuous Integration (CI), Continuous Delivery (CD), and Continuous Deployment? How does DeployHQ fit into this workflow?
- Continuous Integration (CI): Developers frequently merge their code changes into a central repository, after which automated builds and tests are run.
- Continuous Delivery (CD): Extends CI by automatically releasing software that passes all tests to a repository or a staging environment. Deployment to production is often a manual step.
- Continuous Deployment (CD): Goes one step further than Continuous Delivery by automatically deploying every change that passes through the production pipeline to production. DeployHQ primarily focuses on the deployment aspect. It can be a crucial part of a Continuous Delivery or Continuous Deployment pipeline, taking the code (which might have been built and tested by a CI server) and deploying it to various environments. DeployHQ's automatic deployments can help achieve Continuous Deployment.
What are some common deployment strategies (e.g., blue/green, canary) and can DeployHQ facilitate them? Common deployment strategies include:
- Blue/Green Deployment: Maintaining two identical production environments ("blue" and "green"). Deployments happen to the inactive environment, which is then switched to become the live one.
- Canary Deployment: Gradually rolling out the new version to a small subset of users before making it available to everyone.
- Rolling Deployment: Slowly replacing instances of the old version with the new version one by one or in batches.
A tool like DeployHQ can facilitate these strategies by allowing you to define multiple server environments and control which environment is targeted by a deployment. Specific support for advanced strategies like automated traffic switching for blue/green would depend on DeployHQ's advanced features or integrations. Please refer to DeployHQ's documentation for more details.
Using DeployHQ
What is DeployHQ? DeployHQ is a powerful deployment platform that automates and simplifies the process of deploying websites and applications from your repositories to your servers. It has some very handy tools to make deployments easier, such as Build pipelines, Automatic deployments, Deployment templates, etc. More on these features can be found here.
How do I start a deployment in DeployHQ? To start a deployment in DeployHQ, connect your repository, configure your server settings, and click the "Deploy" button in the DeployHQ dashboard. For more detailed instructions, you can check our article on how to make your first deployment with DeployHQ.
How do I deploy my code/site? With DeployHQ, you can deploy your app or site by connecting your repository, configuring your server settings, and initiating a deployment. For detailed instructions, please refer to our documentation. DeployHQ also offers multiple ways to deploy code, including automatic deployments triggered by repository changes and manual deployments initiated through our user interface.
How do I deploy in a server? DeployHQ supports deployment to various server types and protocols. Simply configure your server settings in DeployHQ, and our platform will handle the deployment process for you. You can also check our currently documented hosting providers.
Can you use git for deployments? You can definitely use Git for deployment purposes! Learn more about deploying websites with Git here. DeployHQ is designed to work seamlessly with Git repositories.
What are "build pipelines" in DeployHQ and why would I use one? Build pipelines in DeployHQ allow you to define a series of commands that run before your code is deployed. This is useful for tasks like:
- Installing dependencies (e.g.,
npm install
,composer install
) - Compiling assets (e.g., Sass to CSS, JavaScript minification)
- Running tests
- Building a production version of your application
You would use a build pipeline to automate these necessary pre-deployment steps, ensuring your code is correctly prepared before it goes live. Check DeployHQ's features page for more information on how to configure them.
- Installing dependencies (e.g.,
How do "Automatic Deployments" work in DeployHQ, and what triggers them? Automatic deployments in DeployHQ typically monitor your connected Git repository. When changes are pushed to a specific branch (e.g.,
main
,master
, or a custom branch), DeployHQ can automatically trigger a deployment to your configured server. This helps in achieving Continuous Deployment or Continuous Delivery workflows. You can usually configure the specific branch and other conditions for automatic deployments within your project settings in DeployHQ.Can I manage environment-specific configurations (e.g., database credentials for staging vs. production) with DeployHQ? If so, how? Yes, managing environment-specific configurations is a common requirement. Deployment tools like DeployHQ often provide ways to handle this, such as:
- Environment Variables: Allowing you to set variables within DeployHQ that are then available during the deployment process or injected into your application.
- Configuration Files: Deploying different configuration files based on the target environment.
- Build Script Logic: Using your build pipeline to generate or select the correct configuration at deployment time.
Please refer to the DeployHQ documentation for specific details on managing environment configurations.
Does DeployHQ support deployment to serverless platforms or containerized environments (e.g., AWS Lambda, Docker, Kubernetes)? DeployHQ's core functionality is often focused on deploying to servers via protocols like SSH/SFTP, FTP, etc. Support for serverless platforms (like AWS Lambda, Azure Functions) or container orchestration systems (like Docker Swarm or Kubernetes) would depend on specific integrations or features. You would need to check DeployHQ's documentation and guides to see if they offer direct support or if you can use build commands to interact with the APIs of these platforms.
What kind of notifications can DeployHQ send regarding deployment status (e.g., success, failure)? Deployment tools like DeployHQ typically offer notifications to keep you informed about the status of your deployments. Common notification channels include:
- Email notifications
- Integrations with team chat applications (e.g., Slack, Microsoft Teams)
- Webhook notifications to custom systems These notifications usually cover events like deployment success, failure (with error details), and sometimes a summary of changes. Check your DeployHQ project settings or their features page for available notification options.
How does DeployHQ handle rollbacks if a deployment fails or introduces issues? DeployHQ, leveraging Git, makes rollbacks straightforward. Since each deployment typically corresponds to a Git commit, rolling back often involves redeploying a previous, stable commit. DeployHQ usually provides an interface to view deployment history and re-deploy an older version quickly. More advanced rollback strategies might involve specific scripts or server configurations.
Can I schedule deployments for specific times with DeployHQ? Some deployment tools offer the ability to schedule deployments for specific times, which can be useful for deploying during off-peak hours. Check the DeployHQ features list or your project settings to see if scheduled deployments are supported.
Does DeployHQ offer features for team collaboration (e.g., multiple users, permissions)? Most professional deployment tools, including DeployHQ, offer features for team collaboration. This typically includes:
- Adding multiple users to an account or project.
- Role-based access control or permissions to restrict what users can do (e.g., who can deploy to production).
- Audit logs to see who performed which actions. Details on team management features can be found on DeployHQ's pricing or features page.
What is "zero-downtime deployment" and can DeployHQ help achieve it? Zero-downtime deployment is a strategy that allows you to update an application without any user-facing interruption in service. This often involves techniques like blue/green deployments, rolling updates, or canary releases. While DeployHQ handles the code transfer and execution of commands, achieving true zero-downtime often requires specific server setup and load balancing. DeployHQ can facilitate the process by allowing you to deploy to different server sets or trigger scripts that manage traffic switching, but the underlying infrastructure for zero-downtime needs to be in place.
How can I manage database migrations or other pre/post-deployment tasks with DeployHQ? DeployHQ's build pipeline feature is designed for this. You can add commands to your build pipeline to:
- Run database migrations:
php artisan migrate
,rake db:migrate
, etc. (before the new code is live). - Clear caches: After deployment.
- Restart application servers: If necessary.
- Any other script or command needed before or after the code files are updated. These commands can be configured to run at specific stages of the deployment process.
- Run database migrations:
What version control systems (besides Git) does DeployHQ integrate with, if any? While DeployHQ's primary focus and tightest integration is with Git (supporting providers like GitHub, GitLab, Bitbucket, or self-hosted Git repositories), you should check their official documentation for support for other VCS like Subversion or Mercurial. However, Git is the industry standard for modern web development.
Are there any limitations on repository size or project complexity with DeployHQ? Most SaaS platforms have some limitations, which could be related to repository size, number of files, deployment duration, or build process resources, often tied to the subscription plan. For specific limitations, it's best to consult DeployHQ's pricing page or their terms of service.
How secure is DeployHQ? DeployHQ takes security seriously. We use encryption for data in transit and at rest, employ secure protocols, and regularly perform security audits. As for account security, we offer various methods to secure your account, you can read more on your options in this article.
How does DeployHQ handle SSH keys and other sensitive credentials for server access? Secure handling of credentials is vital. Deployment services like DeployHQ typically:
- Store SSH private keys and other sensitive data encrypted at rest.
- Use secure protocols (SSH/SFTP) for server communication.
- Provide mechanisms for managing server credentials within their interface, avoiding the need to store them in your repository. For DeployHQ's specific security measures regarding credentials, refer to their security documentation or support.
Support and Pricing
Can I deploy a app/website for free? While DeployHQ is a paid service, we do offer both a free tier with a limited amount of daily deployments, and a free trial. You can check all our options in our pricing page.
What kind of support does DeployHQ offer? DeployHQ offers comprehensive documentation, email support, and priority support for higher-tier plans.
What happens if I exceed the deployment limits on the free tier or my plan? Typically, if you exceed limits (e.g., number of deployments, build minutes) on a free tier or a specific plan, further deployments might be temporarily blocked until the limit resets (e.g., daily or monthly) or until you upgrade your plan. For DeployHQ's specific policies, please check their pricing page details or contact their support.
Troubleshooting
What common issues can arise during deployment, and how can I prepare for or troubleshoot them (perhaps generally, with a hint of how DeployHQ helps)? Common deployment issues include:
- Permission errors: The deployment user lacks necessary write permissions on the server.
- Incorrect paths: Configuration pointing to wrong directories.
- Dependency issues: Missing PHP extensions, incorrect Node.js versions, etc.
- Build failures: Errors in compilation, tests failing.
- Database connection problems: Incorrect credentials or network issues.
- Full disk space: Server running out of storage. To prepare:
- Ensure consistent environments (development, staging, production).
- Test deployments in a staging environment first.
- Have a rollback plan. DeployHQ helps by providing detailed deployment logs, which are crucial for identifying the cause of failures. Its build pipeline can also run pre-flight checks or tests.
If you have other questions, please refer to our full documentation or contact our support team.