This is a templated based on Echo Server and Bat Cave that contains the basic setup of a rust HTTP Server with telemetry and a postgres database.
There is also a basic terraform config included to be built upon.
This project also includes the standard CI/CD:
- Release
- Rust CI
- Terraform CI
- CD
- Intake
- Mocha (NodeJS) based integration tests
- Build:
cargo build
- Test:
cargo test
- Run:
docker-compose-up
- Integration test:
yarn install
(once) and thenyarn integration:local(dev/staging/prod)
Any reference to rust-http-starter
should be changed to your project name as well as all the below list:
-
README.md
Replace this file with a Readme for your project -
Cargo.toml
Change package name and authors, then build the project to re-gen theCargo.lock
-
/terraform/main.tf
Changeapp_name
to the repo's name -
/terraform/main.tf
Setup a new hosted zone in the infra repository -
/terraform/variables.tf
Change the default value ofpublic_url
-
/terraform/backend.tf
Change thekey
for thes3
backend to your project's name -
/.github/workflows/cd.yml
Ensure any URLs for health checks and environments match the terraform files -
/.github/workflows/intake.yml
This is specific to WalletConnect, feel free to remove or modify for your own needs -
/.github/ISSUE_TEMPLATE/feature_request.yml
Change any references to Rust HTTP Starter\ -
/.github/workflows/release.yml
On line 95-97 there are references to the registry name on ECR/GHCR ensure you change this -
/.github/integration/integration.tests.ts
Update the URLs -
/Dockerfile-dev
Update the workdir -
/docker-compose.yml
Update references to rust-http-starter
-
/.github/workflows/**/*.yml
Change theruns-on
to theubuntu-runners
group
Required GitHub secrets for Actions to run successfully
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
PAT
Personal Access Token for Github to commit releases
ASSIGN_TO_PROJECT_GITHUB_TOKEN