Before You Deploy

Complete this checklist before adding your first app to ensure smooth deployments.

1

DNS Configuration

Point your domain to your server's IP address so visitors can reach your app.

Go to your domain registrar (Namecheap, Cloudflare, GoDaddy, etc.):

  1. Navigate to DNS settings or DNS records
  2. Add a new A record
TypeHostValueTTL
A@ (or blank)YOUR_SERVER_IPAutomatic

Tip: For subdomains like api.example.com, set Host to api instead of @.

Note: DNS changes can take up to 24-48 hours to propagate, though it's usually much faster.

2

Email Forwarding

Let's Encrypt sends certificate expiry warnings to contact@yourdomain.com. Set up email forwarding so you receive these notifications.

Option A: Domain Registrar Email Forwarding

Most registrars offer free email forwarding:

  1. Go to your registrar's Email or Mail settings
  2. Add a new email forwarder
  3. Forward contact@yourdomain.com to your real email

Option B: Use a Different Email

You can specify a custom email in your app config:

apps/my-app.yaml
name: my-app
domain: my-app.com
ssl:
  email: your-real-email@gmail.com
3

GitHub Deploy Key

Your server needs permission to pull code from your private GitHub repository.

Step 1: Generate SSH Key on Your Server

SSH into your server and run:

# Generate a new SSH key pair
ssh-keygen -t ed25519 -f ~/.ssh/deploy_key -N ""

# Display the public key
cat ~/.ssh/deploy_key.pub

Copy the output - you'll need it for the next step.

Step 2: Add to GitHub

  1. Go to your repository on GitHub
  2. Click SettingsDeploy keys
  3. Click Add deploy key
Title:"My Server"
Key:(paste the public key)
Write access:Leave unchecked (read-only)

Step 3: Configure SSH to Use the Key

Add this to your server's ~/.ssh/config:

Host github.com
  IdentityFile ~/.ssh/deploy_key
  IdentitiesOnly yes

Step 4: Test the Connection

ssh -T git@github.com
# Should output: "Hi username! You've successfully authenticated..."
4

GitHub Webhook (Optional)

Set this up if you want automatic deployments when you push to GitHub.

Step 1: Generate a Webhook Secret

On your server, generate a random secret:

# Generate a random 32-byte hex string
openssl rand -hex 32

Save this secret! You'll need it for both your server and GitHub.

Step 2: Add to Server Environment

Add the secret to your server's environment. Add to ~/.bashrc or /etc/environment:

export SHYP_WEBHOOK_SECRET=your-generated-secret-here

Step 3: Configure GitHub Webhook

  1. Go to your repository on GitHub
  2. Click SettingsWebhooks
  3. Click Add webhook
Payload URL:http://YOUR_SERVER_IP:9000/
Content type:application/json
Secret:(paste your SHYP_WEBHOOK_SECRET)
Events:Just the push event
Active:Yes

Step 4: Start the Webhook Server

On your server, start the Shyp webhook listener:

shyp start

This starts a PM2 process that listens for GitHub webhooks and triggers deployments.

Checklist Summary

  • DNS A record pointing to your server IP
  • Email forwarding for contact@yourdomain.com (or custom email in config)
  • SSH deploy key added to GitHub repository
  • (Optional) Webhook secret generated and configured