Docs/Reference/Shipper Documentation

Shipper Documentation

Welcome to the Shipper documentation! This comprehensive guide covers everything you need to know about deploying applications with Shipper.

Quick Links

Getting Started

New to Shipper?

  1. Read the main README - Understand what Shipper is and its features
  2. Configuration Guide - Learn how to configure shipper.yml
  3. GitHub Actions Setup - Set up automated deployments

Common Tasks

Setting Up Deployments

Managing Resources

Advanced Topics

Documentation Structure

Configuration

CONFIGURATION.md - Complete configuration guide

  • Provider configuration (Ploi)
  • Project setup
  • Profile configuration
  • Database configuration
  • Environment variables
  • Complete examples
  • Best practices

PR Previews

PR_PREVIEWS.md - Preview deployment guide

  • How preview deployments work
  • Configuration for previews
  • GitHub Actions workflows
  • Domain strategy
  • Database management
  • Automatic cleanup
  • Troubleshooting

Sites Management

SITES.md - Site lifecycle guide

  • Site creation and updates
  • Domain configuration
  • Repository setup
  • Deployment process
  • Site commands (validate, plan, apply, destroy)
  • Multiple projects
  • Security and monitoring

Database Management

DATABASES.md - Database features guide

  • Database configuration
  • Variable interpolation
  • Database lifecycle
  • Password management
  • Multiple databases
  • Migrations
  • Backups and restore
  • Preview databases

GitHub Actions

GITHUB_ACTIONS.md - CI/CD automation guide

  • Production deployments
  • Staging deployments
  • Preview deployments
  • Cleanup workflows
  • Workflow patterns
  • Notifications
  • Security best practices

GitHub Action

GITHUB_ACTION.md - Reusable action guide

  • Using Shipper as a GitHub Action
  • Action inputs and outputs
  • Usage examples
  • Version management
  • Migration guide
  • Troubleshooting

Build System

BUILD_SYSTEM.md - Build and release guide

  • How the binary is built
  • Box configuration
  • Release process
  • Distribution methods
  • Reusable GitHub Action
  • Version management

Strict Standards

STRICT_STANDARDS.md - Code quality guide

  • Type safety rules
  • PHPStan configuration
  • Laravel Pint setup
  • Testing with Pest
  • Best practices
  • Continuous integration

Key Features

Declarative Configuration

Define your entire deployment infrastructure in shipper.yml:

  • Multiple projects
  • Multiple environments (production, staging, preview)
  • Database configurations
  • Provider settings

Plan and Apply Workflow

Like infrastructure-as-code tools:

  1. Plan: Preview what changes will be made
  2. Apply: Execute the deployment
  3. Validate: Check configuration before deploying

Automatic Resource Management

Shipper handles:

  • Site creation and configuration
  • Database provisioning
  • SSL certificates
  • Environment variables
  • Deployment tracking

GitHub Actions Integration

  • Automated deployments on push
  • PR preview environments
  • Automatic cleanup
  • Deployment status reporting

Support and Resources

Getting Help

  • Issues: Report bugs or request features on GitHub Issues
  • Discussions: Ask questions on GitHub Discussions
  • Documentation: Browse this comprehensive documentation

Contributing

Contributions are welcome! See the main repository for contribution guidelines.

License

Shipper is open-source software licensed under the MIT license.

Common Workflows

Setting Up a New Project

  1. Create shipper.yml in your repository root
  2. Configure provider credentials
  3. Define your project and profiles
  4. Add GitHub Actions workflows
  5. Set repository secrets (PLOI_API_KEY)
  6. Push to trigger first deployment

Example: See Configuration Guide

Adding PR Previews

  1. Add preview profile to project configuration
  2. Configure preview domain pattern
  3. Add preview database configuration
  4. Create preview deployment workflow
  5. Create cleanup workflow
  6. Test with a pull request

Example: See PR Previews Guide

Deploying Multiple Projects

  1. Define multiple projects in shipper.yml
  2. Use matrix strategy in workflows
  3. Deploy all projects or specific ones
  4. Monitor deployment status

Example: See Sites Management

Troubleshooting

Configuration Issues

Deployment Issues

GitHub Actions Issues

Best Practices

  1. Always validate configuration before deploying
  2. Use plan command to preview changes
  3. Enable PR previews for better testing
  4. Automate cleanup of preview environments
  5. Use environment variables for secrets
  6. Pin versions in production
  7. Monitor deployments for issues
  8. Backup databases before major changes
  9. Test in staging before production
  10. Document your setup for your team

Updates and Changelog

Check the releases page for:

  • New features
  • Bug fixes
  • Breaking changes
  • Migration guides

Next Steps

Choose your path:

New User?Configuration Guide

Setting up CI/CD?GitHub Actions Guide

Need PR Previews?PR Previews Guide

Managing Databases?Database Guide

Want to Contribute?Strict Standards