Deploying to Servers or Public Cloud
The following guides can help with the deployment to public cloud providers:
- AWS Lambda using the Serverless Application Model (SAM)
- AWS Fargate with Vapor and MongoDB Atlas
- AWS EC2
- DigitalOcean
- Heroku
- Kubernetes & Docker
- GCP
- Have a guides for other popular public clouds like Azure? Add it here!
If you are deploying to your own servers (e.g. bare metal, VMs or Docker) there are several strategies for packaging Swift applications for deployment, see the Packaging Guide for more information.
Deploying a Debuggable Configuration (Production on Linux)
-
If you have
--privileged
/--security-opt seccomp=unconfined
containers or are running in VMs or even bare metal, you can run your binary withlldb --batch -o "break set -n main --auto-continue 1 -C \"process handle SIGPIPE -s 0\"" -o run -k "image list" -k "register read" -k "bt all" -k "exit 134" ./my-program
instead of
./my-program
to get something akin to a ‘crash report’ on crash. -
If you don’t have
--privileged
(or--security-opt seccomp=unconfined
) containers (meaning you won’t be able to uselldb
) or you don’t want to use lldb, consider using a library likeswift-backtrace
to get stack traces on crash.