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=unconfinedcontainers 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-programinstead of
./my-programto 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-backtraceto get stack traces on crash.