PHP: Configure SSH keys

This documentation is part of the Deploy with GitHub Actions guide. You can view the complete guide here: How to deploy your PHP code using GitHub Actions.

👋 Welcome to the Stackhero documentation!

Stackhero offers a PHP cloud solution designed for fast, reliable deployments:

  • Deploy your PHP application to production in seconds with a simple git push.
  • Use your own domain, with automatic HTTPS certificates configured for you—no manual steps required.
  • Take advantage of automatic backups, one-click updates, and straightforward, predictable pricing. Stackhero manages these aspects so you can focus on your code.
  • Enjoy strong performance and enhanced security on a private, dedicated VM built specifically for your applications.

Save time and streamline your workflow—getting started with Stackhero's PHP cloud hosting takes just a few minutes.

SSH keys are the recommended method for allowing GitHub Actions to securely connect to your PHP service during deployment. In this guide, you will create a dedicated SSH key pair for this purpose.

To generate new SSH keys, run the following command on your computer:

ssh-keygen -C "" -f /tmp/ssh_key -N ""

Next, retrieve the public key by running:

cat /tmp/ssh_key.pub

Go to your Stackhero dashboard and select your "Production" PHP service. Click on "Configure" and follow these steps:

  1. Under SSH public keys, click on "Add a public key".
  2. Set the Description to "GitHub Action".
  3. Paste the public key you just retrieved into the Key field.

Get service settingsGet service settings

Now, add the private key to your GitHub project so it can be used during deployment:

  • Go to Settings, then select Environments and click on New environment.

    Configuring GitHub environmentsConfiguring GitHub environments

  • In the Name field, enter "production" and confirm.

    Setting the environmentSetting the environment

  • Click on the No restriction button and select Selected branches and tags.

    Setting environment restrictionsSetting environment restrictions

  • Click on Add deployment branch or tag rule, enter "production" in the Name pattern field, and click on Add rule.

    Setting environment branchSetting environment branch Setting environment branchSetting environment branch

  • Under Environment secrets, click on Add secret.

    Add secretAdd secret

Retrieve the private key you generated earlier by running:

cat /tmp/ssh_key

In the GitHub environment settings:

  • For Name, enter STACKHERO_SSH_PRIVATE_KEY and paste your private key into the Value field.

    Setting the SSH private key secretSetting the SSH private key secret

  • In the Environment variables section, click on Add variable.

    Setting variablesSetting variables

  • For Name, enter STACKHERO_ENDPOINT and paste your PHP service endpoint into the Value field. You can find this endpoint in your Stackhero dashboard.

    Setting the endpoint variableSetting the endpoint variable

If you have customized your service's domain name, use the customized version instead of <XXXXXX>.stackhero-network.com.

For security reasons, it is recommended to delete the generated SSH keys from your computer after setup:

rm /tmp/ssh_key /tmp/ssh_key.pub