Thank you for your interest in contributing infrastructure templates to LinkForty! This guide will help you add support for new cloud platforms and deployment methods.
We welcome community contributions for additional infrastructure providers. This allows LinkForty users to deploy on their preferred platforms with minimal setup.
- Docker & Docker Compose (
examples/) - Fly.io (
infra/fly.io/)
- All other platforms
- We validate they work but may not provide detailed troubleshooting
- Check existing issues/PRs to avoid duplicate work
- Open a discussion on GitHub to gauge interest
- Choose a popular platform that benefits many users
- Test thoroughly before submitting
We're especially interested in templates for:
- AWS (ECS/Fargate, Elastic Beanstalk)
- Google Cloud (Cloud Run, GKE)
- Azure (Container Instances, App Service)
- Railway
- Render
- DigitalOcean App Platform
- Kubernetes (generic manifests)
- Terraform (multi-cloud IaC)
Your infrastructure template must include:
-
Configuration Files
- Platform-specific deployment config (e.g.,
app.yaml,terraform.tf) - Environment variable template
- Build/deployment instructions
- Platform-specific deployment config (e.g.,
-
Documentation
DEPLOYMENT.md- Step-by-step deployment guide- Database setup instructions
- Redis setup instructions (optional but recommended)
- Cost estimates for different tiers
-
Security Guidelines
- SSL/TLS configuration
- Secret management best practices
- Network security recommendations
- Backup strategy
-
Testing
- Proof of successful deployment
- Screenshots or deployment logs
- Performance benchmarks (optional)
Add your template under infra/[provider]/:
infra/
├── your-provider/
│ ├── README.md # Quick overview
│ ├── DEPLOYMENT.md # Detailed deployment guide
│ ├── config.[ext] # Platform-specific config
│ ├── .env.production.example # Environment variables
│ └── [additional files] # Provider-specific resources
infra/
├── aws-ecs/
│ ├── README.md # Overview of AWS ECS deployment
│ ├── DEPLOYMENT.md # Step-by-step guide
│ ├── task-definition.json # ECS task definition
│ ├── service.json # ECS service config
│ ├── cloudformation.yaml # Infrastructure template (optional)
│ ├── .env.production.example # Environment variables
│ └── scripts/
│ ├── setup.sh # Automated setup script (optional)
│ └── deploy.sh # Deployment script (optional)
Your DEPLOYMENT.md should include:
# Deploying LinkForty to [Provider Name]
## Prerequisites
- Account setup
- CLI tools needed
- Required permissions
## Step 1: Database Setup
- PostgreSQL 13+ configuration
- Connection string format
- Security settings
## Step 2: Redis Setup (Optional)
- Redis configuration
- Connection string format
## Step 3: Application Deployment
- Configuration steps
- Secret management
- Build and deploy process
## Step 4: Verification
- Health check verification
- Test redirect creation
- Troubleshooting common issues
## Scaling
- Vertical scaling
- Horizontal scaling
- Multi-region deployment
## Monitoring
- Logs access
- Metrics dashboard
- Alerts setup
## Cost Estimation
- Free tier (if available)
- Small production setup
- Large production setup
## Troubleshooting
- Common issues and solutions
## Resources
- Platform documentation links# LinkForty on [Provider Name]
Quick overview of deploying LinkForty to [Provider].
## Quick Start
[One-click deploy button if available]
## Features
- What makes this platform good for LinkForty
- Key benefits
## Cost Estimate
- Starting at $X/month
## Documentation
- [Full deployment guide](./DEPLOYMENT.md)
## Support
- Community-maintained
- Link to platform's support- Use comments to explain non-obvious settings
- Include defaults that work for most users
- Parameterize where possible (don't hardcode values)
- Follow platform conventions (naming, structure)
- Match LinkForty's standards (see
examples/.env.example) - Include all required variables
- Document optional variables
- Show example values (with placeholders for secrets)
- Never include actual secrets in example files
- Use secure defaults (SSL/TLS, authentication)
- Document security best practices
- Include secret rotation instructions
Before submitting, test your template:
- Start from scratch (new account or clean environment)
- Follow your DEPLOYMENT.md step-by-step
- Verify all commands work as documented
- Note any issues or unclear steps
- Application starts successfully
- Health check endpoint responds
- Create a test link via API
- Verify redirect works
- Check logs are accessible
- Test database connection
- Test Redis connection (if used)
- HTTPS is enforced
- Secrets are not exposed in logs
- Database uses SSL
- CORS is configurable
- No public exposure of internal services
- Another person can follow your guide successfully
- All prerequisites are listed
- Cost estimates are accurate
- Troubleshooting section is helpful
Create a branch:
git checkout -b infra/add-[provider-name]Add your files:
git add infra/[provider-name]/Commit with clear message:
git commit -m "Add infrastructure template for [Provider Name]"Add your provider to infra/README.md:
### [Provider Name] (Community)
**Location:** [`infra/[provider-name]/`](./[provider-name]/)
**Best for:**
- [Use case 1]
- [Use case 2]
[View deployment guide →](./[provider-name]/DEPLOYMENT.md)## Summary
Adds infrastructure template for deploying LinkForty to [Provider Name].
## What's Included
- [ ] Configuration files
- [ ] Deployment guide
- [ ] Environment variable template
- [ ] Security documentation
- [ ] Cost estimates
## Testing
- [ ] Successfully deployed to [Provider]
- [ ] Verified all features work
- [ ] Tested by at least one other person
## Screenshots/Logs
[Include proof of successful deployment]
## Cost Estimate
- Free tier: [Yes/No]
- Small production: ~$X/month
- Medium production: ~$Y/month
## Additional Notes
[Any platform-specific quirks or considerations]Your PR will be reviewed for:
- Completeness - All required components present
- Accuracy - Instructions work as documented
- Security - Follows best practices
- Quality - Clear, well-documented
- Maintenance - Reasonable to maintain
We may request changes or improvements.
- Your template will be listed in the main README
- You'll be credited as the maintainer
- Users may open issues specific to your platform
- You'll be tagged for platform-specific questions
You're expected to:
- Respond to issues related to your platform (within reason)
- Update templates when platform changes significantly
- Test updates before merging changes
- Notify maintainers if you can no longer maintain
If you can't continue maintaining:
- Open an issue titled "Seeking maintainer for [Provider]"
- Tag current maintainers
- We'll mark it as "community-seeking-maintainer"
- Review and merge PRs for your platform
- Help with general LinkForty questions
- Validate deployments still work (periodically)
- Archive unmaintained platforms (if necessary)
- Debug provider-specific issues (beyond basic validation)
- Maintain deep expertise in all platforms
- Provide 24/7 support for community platforms
- Platform-specific deployment questions
- Configuration issues unique to the platform
- Cost optimization for that platform
- Platform CLI/API usage
- Cloud account setup and billing
- Platform account permissions/access issues
- General cloud computing questions
- Non-Link-Forty application issues
- Application bugs
- Database schema issues
- API behavior questions
- General architecture questions
Located at infra/fly.io/, this template demonstrates:
- ✅ Clear, step-by-step instructions
- ✅ Complete configuration files with comments
- ✅ Security checklist
- ✅ Cost estimates at multiple tiers
- ✅ Troubleshooting section
- ✅ Links to platform documentation
- ❌ One-liner deployment without explanation
- ❌ Missing environment variables
- ❌ No security guidance
- ❌ Untested instructions
- ❌ Hardcoded values (like app names)
- ❌ No cost information
- Open a discussion on GitHub
- Tag maintainers: @[maintainer-username]
- Join our community chat (if available)
- Review existing templates (especially
infra/fly.io/) - Check LinkForty's main documentation
- Ask in GitHub Discussions
Contributors will be:
- Listed in the template's README as maintainer
- Mentioned in release notes
- Credited in the project's contributors list
Thank you for helping make LinkForty accessible on more platforms!
All infrastructure templates are licensed under the same MIT license as LinkForty Core.
By contributing, you agree to license your contribution under this license.