Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Nitrogen CLI
Nitrogen is a tool for deploying web services to AWS Nitro Enclaves. Given a dockerfile and an ssh key, Nitrogen will spin up an EC2, configure the network, and build and deploy your web service. You get back a hostname that's ready to go. Nitrogen is fully open source and it comes with pre-built scripts for deploying popular services like Nginx, Redis, and MongoDB.
Install
Nitrogen can easily be installed with the following:
For Linux or Mac:
$ curl -fsSL https://raw.githubusercontent.com/capeprivacy/nitrogen/main/install.sh | sh
For Windows Powershell
$ iex (irm https://raw.githubusercontent.com/capeprivacy/nitrogen/main/install.ps1)
Note: An AWS account is required. If you have AWS cli configured you can retrieve your credentials with cat ~/.aws/credentials
. See troubleshooting if your AWS account uses MFA
Commands
nitrogen setup <stack_name> <ssh_public_key>
nitrogen build <dockerfile_directory>
nitrogen deploy <stack_name> <ssh_private_key>
nitrogen logs <stack_name> <ssh_private_key>
nitrogen delete <stack_name>
Features
- Spins up any enclave supported EC2 instance type (with Nitro Enclaves enabled)
- Creates a security group for a specified port.
- Sets up SSH.
- Runs a socat proxy from public internet (TCP) into the nitro enclave (VSOCK).
- Builds any Dockerfile into an Enclave Image File (EIF).
- Deploys any EIF and launches a nitro enclave.
Examples
Nginx Example
> INFO
> INFO
> INFO
> Filename:
> EIF
> <!DOCTYPE <html>
<head>
<title>Hello </head>
</html>
Nginx TLS Examples
See here.
Troubleshooting
If you have permissions issues and your aws account has MFA enabled then attempt to use a session token before running setup
.
aws sts get-session-token --serial-number arn:aws:iam::<AWS ACCOUNT NUMBER>:mfa/<USER NAME> --token-code <CODE>
Export the values printed from the above command:
export AWS_ACCESS_KEY_ID=
export AWS_SECRET_ACCESS_KEY=
export AWS_SESSION_TOKEN=
You can also use a helper script in this library called sts.sh
. Warning: this will unset any AWS environment variables related to auth
that you have already set in your shell.
. sts.sh <ACCOUNT> <USER NAME> <CODE>
If you wish to deploy the enclave in debug mode, use the "--debug-mode" flag during deploy.
You can then log into the instance and view the enclave console, or use the nitrogen logs
command.
Contributors
Thank you to @kalebpace for contributing the name for the nitrogen crate.