Before You Deploy
Complete this checklist before adding your first app to ensure smooth deployments.
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.):
- Navigate to DNS settings or DNS records
- Add a new A record
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.
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:
- Go to your registrar's Email or Mail settings
- Add a new email forwarder
- Forward
contact@yourdomain.comto your real email
Option B: Use a Different Email
You can specify a custom email in your app config:
name: my-app
domain: my-app.com
ssl:
email: your-real-email@gmail.comGitHub 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.pubCopy the output - you'll need it for the next step.
Step 2: Add to GitHub
- Go to your repository on GitHub
- Click Settings → Deploy keys
- Click Add deploy key
Step 3: Configure SSH to Use the Key
Add this to your server's ~/.ssh/config:
Host github.com
IdentityFile ~/.ssh/deploy_key
IdentitiesOnly yesStep 4: Test the Connection
ssh -T git@github.com
# Should output: "Hi username! You've successfully authenticated..."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 32Save 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-hereStep 3: Configure GitHub Webhook
- Go to your repository on GitHub
- Click Settings → Webhooks
- Click Add webhook
Step 4: Start the Webhook Server
On your server, start the Shyp webhook listener:
shyp startThis 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
