From da01c8a9ffb7f6589e77c852b2c53c2030c360e2 Mon Sep 17 00:00:00 2001 From: danbugs Date: Wed, 21 Feb 2024 00:00:47 -0800 Subject: [PATCH] changes for do deploy Signed-off-by: danbugs --- .gitignore | 4 ++- Cargo.lock | 11 +++++++ Dockerfile-SmitheBackend-Do | 16 ++++++++++ Makefile | 13 +++++++- backend-deployment-do.yml | 61 +++++++++++++++++++++++++++++++++++++ backend-ingress-do.yml | 21 +++++++++++++ backend-service-do.yml | 12 ++++++++ backend/Cargo.toml | 3 +- 8 files changed, 138 insertions(+), 3 deletions(-) create mode 100644 Dockerfile-SmitheBackend-Do create mode 100644 backend-deployment-do.yml create mode 100644 backend-ingress-do.yml create mode 100644 backend-service-do.yml diff --git a/.gitignore b/.gitignore index 23fd849..22ca27f 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,6 @@ test.out frontend/dist tokens.txt id_ranges.txt -coverage.lcov \ No newline at end of file +coverage.lcov +**.env +**.pem \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index 172f4eb..9a085c2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1559,6 +1559,15 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" +[[package]] +name = "openssl-src" +version = "300.2.3+3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cff92b6f71555b61bb9315f7c64da3ca43d87531622120fea0195fc761b4843" +dependencies = [ + "cc", +] + [[package]] name = "openssl-sys" version = "0.9.99" @@ -1567,6 +1576,7 @@ checksum = "22e1bf214306098e4832460f797824c05d25aacdf896f64a985fb0fd992454ae" dependencies = [ "cc", "libc", + "openssl-src", "pkg-config", "vcpkg", ] @@ -2281,6 +2291,7 @@ name = "smithe_backend" version = "0.1.0" dependencies = [ "anyhow", + "openssl", "rocket", "rocket-governor", "rocket_cors", diff --git a/Dockerfile-SmitheBackend-Do b/Dockerfile-SmitheBackend-Do new file mode 100644 index 0000000..a207a7c --- /dev/null +++ b/Dockerfile-SmitheBackend-Do @@ -0,0 +1,16 @@ +FROM debian:bookworm-slim + +# Set the working directory in the container +WORKDIR /usr/src/smithereens + +# Install the necessary library +RUN apt-get update && apt-get install -y libpq5 openssl + +# Copy only the smithe_backend binary +COPY target/x86_64-unknown-linux-gnu/release/smithe_backend . + +# Set the environment variable +ENV ROCKET_ADDRESS=0.0.0.0 + +# Specify the command to run the binary +CMD ["./smithe_backend"] diff --git a/Makefile b/Makefile index de21165..066dfea 100644 --- a/Makefile +++ b/Makefile @@ -100,4 +100,15 @@ py-install-reqs: .PHONY: py-run py-run: - py TokenGenerationBot.py \ No newline at end of file + py TokenGenerationBot.py + +# DIGITAL OCEAN +.PHONY: build-do # build on WSL +build-do: + cargo build --release --all --target x86_64-unknown-linux-gnu + +.PHONY: deploy-do +deploy-do: + docker build -t danstaken/smithe-backend-do -f Dockerfile-SmitheBackend-Do . + docker push danstaken/smithe-backend-do + diff --git a/backend-deployment-do.yml b/backend-deployment-do.yml new file mode 100644 index 0000000..53aee0f --- /dev/null +++ b/backend-deployment-do.yml @@ -0,0 +1,61 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: backend-deployment +spec: + replicas: 3 + selector: + matchLabels: + app: backend + template: + metadata: + labels: + app: backend + spec: + containers: + - name: backend + image: danstaken/smithe-backend-do:latest + imagePullPolicy: Always + ports: + - containerPort: 8000 + env: + - name: PIDGTM_DATABASE_URL + valueFrom: + secretKeyRef: + name: backend-secrets-multiple-tokens + key: PIDGTM_DATABASE_URL + - name: STARTGG_TOKEN + valueFrom: + secretKeyRef: + name: backend-secrets-multiple-tokens + key: STARTGG_TOKEN + - name: STARTGG_TOKEN_1 + valueFrom: + secretKeyRef: + name: backend-secrets-multiple-tokens + key: STARTGG_TOKEN_1 + - name: STARTGG_TOKEN_2 + valueFrom: + secretKeyRef: + name: backend-secrets-multiple-tokens + key: STARTGG_TOKEN_2 + - name: STARTGG_TOKEN_3 + valueFrom: + secretKeyRef: + name: backend-secrets-multiple-tokens + key: STARTGG_TOKEN_3 + - name: STARTGG_TOKEN_4 + valueFrom: + secretKeyRef: + name: backend-secrets-multiple-tokens + key: STARTGG_TOKEN_4 + - name: STARTGG_TOKEN_5 + valueFrom: + secretKeyRef: + name: backend-secrets-multiple-tokens + key: STARTGG_TOKEN_5 + - name: STARTGG_TOKEN_6 + valueFrom: + secretKeyRef: + name: backend-secrets-multiple-tokens + key: STARTGG_TOKEN_6 diff --git a/backend-ingress-do.yml b/backend-ingress-do.yml new file mode 100644 index 0000000..9086b4d --- /dev/null +++ b/backend-ingress-do.yml @@ -0,0 +1,21 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: backend-ingress +spec: + ingressClassName: nginx + tls: + - hosts: + - danbugsserver.com + secretName: danbugsserver-tls + rules: + - host: danbugsserver.com + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: backend-service + port: + number: 80 diff --git a/backend-service-do.yml b/backend-service-do.yml new file mode 100644 index 0000000..7a7b0c9 --- /dev/null +++ b/backend-service-do.yml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Service +metadata: + name: backend-service +spec: + type: LoadBalancer + selector: + app: backend + ports: + - protocol: TCP + port: 80 + targetPort: 8000 diff --git a/backend/Cargo.toml b/backend/Cargo.toml index 05a3447..f8d6d14 100644 --- a/backend/Cargo.toml +++ b/backend/Cargo.toml @@ -11,4 +11,5 @@ rocket_cors = "0.6.0" serde_json = "1" thiserror = "1" smithe_lib = { path = "../lib" } -rocket-governor = "0.2.0-rc.1" \ No newline at end of file +rocket-governor = "0.2.0-rc.1" +openssl = { version = "0.10", features = ["vendored"] } \ No newline at end of file