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
- Kubernetes & Docker
- 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
--security-opt seccomp=unconfinedcontainers or are running in VMs or even bare metal, you can run your binary with
lldb --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
./my-programto get something akin to a ‘crash report’ on crash.
If you don’t have
--security-opt seccomp=unconfined) containers (meaning you won’t be able to use
lldb) or you don’t want to use lldb, consider using a library like
swift-backtraceto get stack traces on crash.