From 3753bcf1a0f80605019756512b35da139f2ba176 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lui=CC=81s=20Freitas?= Date: Wed, 18 Dec 2024 11:45:57 +0000 Subject: [PATCH] updates --- .dockerignore | 40 +++++++++++++++++++++++++++ .github/workflows/fly-deploy.yml | 18 +++++++++++++ Dockerfile | 45 +++++++++++++++++++++++++++++++ bun.lockb | Bin 421320 -> 423294 bytes fly.toml | 22 +++++++++++++++ package.json | 9 ++++--- src/server.ts | 24 ++++++++++++++++- vercel.json | 27 ------------------- 8 files changed, 153 insertions(+), 32 deletions(-) create mode 100644 .dockerignore create mode 100644 .github/workflows/fly-deploy.yml create mode 100644 Dockerfile create mode 100644 fly.toml delete mode 100644 vercel.json diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..65aca75 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,40 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. +# build +dist/ + +# dependencies +/node_modules +/.pnp +.pnp.js +.yarn/install-state.gz + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts + +.env diff --git a/.github/workflows/fly-deploy.yml b/.github/workflows/fly-deploy.yml new file mode 100644 index 0000000..b0c246e --- /dev/null +++ b/.github/workflows/fly-deploy.yml @@ -0,0 +1,18 @@ +# See https://fly.io/docs/app-guides/continuous-deployment-with-github-actions/ + +name: Fly Deploy +on: + push: + branches: + - main +jobs: + deploy: + name: Deploy app + runs-on: ubuntu-latest + concurrency: deploy-group # optional: ensure only one action runs at a time + steps: + - uses: actions/checkout@v4 + - uses: superfly/flyctl-actions/setup-flyctl@master + - run: flyctl deploy --remote-only + env: + FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }} diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..2e8a3a0 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,45 @@ +# syntax = docker/dockerfile:1 + +# Adjust BUN_VERSION as desired +ARG BUN_VERSION=1.1.29 +FROM oven/bun:${BUN_VERSION}-slim as base + +LABEL fly_launch_runtime="Bun" + +# Bun app lives here +WORKDIR /app + +# Set production environment +ENV NODE_ENV="production" + +# Throw-away build stage to reduce size of final image +FROM base as build + +# Install packages needed to build node modules +RUN apt-get update -qq && \ + apt-get install --no-install-recommends -y build-essential pkg-config python-is-python3 + +# Install node modules +COPY bun.lockb package.json ./ +RUN bun install + +# Copy application code +COPY . . + +# Build application +RUN bun --bun run build + +# Remove development dependencies +RUN rm -rf node_modules && \ + bun install --ci + + +# Final stage for app image +FROM base + +# Copy built application +COPY --from=build /app /app + +# Start the server by default, this can be overwritten at runtime +EXPOSE 10000 +CMD [ "bun", "run", "start" ] diff --git a/bun.lockb b/bun.lockb index 2fecd744372714b09eaf76463933d476bac3b25b..db5c1a280ad1c6ec83bae27012745202c3430590 100755 GIT binary patch delta 65151 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%0AU7l0j=crZ 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

yGM_){l4YP;ez}Ae#b06buTs8${V02qxE5Ap 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 g|6Y(BQk? { + res.send(` +

Bitte Uniswap Agent API

+

Welcome to the Bitte Uniswap Agent API server.

+ +

Available Routes:

+
    +
  • /api/health - Health check endpoint
  • +
  • /api/tools/uniswap - Uniswap integration endpoints
  • +
+ `); +}); + // Routes app.use("/api/health", healthRouter); app.use("/api/tools/uniswap", uniswapRouter); diff --git a/vercel.json b/vercel.json deleted file mode 100644 index fbe9d45..0000000 --- a/vercel.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "version": 2, - "builds": [ - { - "src": "dist/server.js", - "use": "@vercel/node" - }, - { - "src": "public/**/*", - "use": "@vercel/static" - }, - { - "src": "src/**/*.ts", - "use": "@vercel/node" - } - ], - "routes": [ - { - "src": "/(.*)", - "dest": "src/server.ts" - } - ], - "buildCommand": "bun run build", - "installCommand": "bun install", - "devCommand": "bun start", - "outputDirectory": "dist" -}