mirror of
https://github.com/hempyhemp/hh-auto-reply.git
synced 2026-06-08 18:04:57 +00:00
Compare commits
2 Commits
5d19fa1cbd
...
20a5f506da
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
20a5f506da | ||
|
|
4761214ec1 |
13
.dockerignore
Normal file
13
.dockerignore
Normal file
@@ -0,0 +1,13 @@
|
||||
node_modules
|
||||
dist
|
||||
.env
|
||||
.env.*
|
||||
prisma/dev.db
|
||||
prisma/dev.db-journal
|
||||
prisma/migrations/*.db
|
||||
.idea
|
||||
.vscode
|
||||
coverage
|
||||
*.log
|
||||
.cache
|
||||
.tmp
|
||||
52
.gitea/workflows/deploy.yml
Normal file
52
.gitea/workflows/deploy.yml
Normal file
@@ -0,0 +1,52 @@
|
||||
name: Deploy
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Keyscan
|
||||
run: |
|
||||
ssh-keyscan git.koptilnya.xyz >> ~/.ssh/known_hosts
|
||||
|
||||
- name: Set up secret file
|
||||
env:
|
||||
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
|
||||
run: |
|
||||
echo "${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}" | sed 's/./& /g'
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ssh-key: ${{ secrets.SSH_PRIVATE_KEY }}
|
||||
ssh-strict: false
|
||||
persist-credentials: false
|
||||
|
||||
# - name: Backup DB
|
||||
# run: cp /home/koptilnya/services/chad/data/database.db /home/koptilnya/services/chad/database-$(date+"%d-%m-%Y").db
|
||||
|
||||
- name: Build
|
||||
run: docker build -t hh-auto-reply ./server
|
||||
|
||||
- name: Stop old container
|
||||
run: docker rm -f hh-auto-reply || true
|
||||
|
||||
- name: Run
|
||||
run: |
|
||||
docker run -d \
|
||||
--name hh-auto-reply \
|
||||
--network traefik \
|
||||
--volume /home/koptilnya/services/chad/data:/app/data \
|
||||
-p 40000-40100:40000-40100/udp \
|
||||
--label "traefik.enable=true" \
|
||||
--label "traefik.http.routers.hh-auto-reply.rule=Host(\`api.koptilnya.xyz\`) && PathPrefix(\`/hh-auto-reply\`)" \
|
||||
--label "traefik.http.routers.hh-auto-reply.entrypoints=websecure" \
|
||||
--label "traefik.http.routers.hh-auto-reply.tls=true" \
|
||||
--label "traefik.http.routers.hh-auto-reply.tls.certresolver=myresolver" \
|
||||
--label "traefik.http.services.hh-auto-reply.loadbalancer.server.port=80" \
|
||||
hh-auto-reply:latest
|
||||
46
Dockerfile
Normal file
46
Dockerfile
Normal file
@@ -0,0 +1,46 @@
|
||||
# ── Stage 1: build ─────────────────────────────────────────────────────────────
|
||||
FROM node:22-slim AS builder
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# build tools for native modules
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
python3 make g++ \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY package.json yarn.lock .yarnrc.yml ./
|
||||
RUN corepack enable
|
||||
|
||||
RUN yarn install --immutable
|
||||
|
||||
COPY tsconfig.json ./
|
||||
COPY prisma ./prisma
|
||||
COPY src ./src
|
||||
|
||||
RUN yarn prisma generate && yarn build
|
||||
|
||||
# ── Stage 2: runtime ───────────────────────────────────────────────────────────
|
||||
FROM node:22-slim AS runner
|
||||
|
||||
WORKDIR /app
|
||||
RUN yarn prisma migrate deploy
|
||||
|
||||
RUN corepack enable
|
||||
|
||||
COPY --from=builder /app/node_modules ./node_modules
|
||||
COPY --from=builder /app/dist ./dist
|
||||
COPY --from=builder /app/prisma ./prisma
|
||||
COPY package.json yarn.lock .yarnrc.yml ./
|
||||
|
||||
# install Chromium + all system dependencies for Playwright
|
||||
RUN npx playwright install --with-deps chromium
|
||||
|
||||
# SQLite data lives on a volume so it survives container restarts
|
||||
RUN mkdir -p /data
|
||||
ENV DATABASE_URL="file:/data/dev.db"
|
||||
ENV NODE_ENV=production
|
||||
|
||||
VOLUME ["/data"]
|
||||
|
||||
# apply pending migrations then start the bot
|
||||
CMD ["sh", "-c", "npx prisma migrate deploy && node dist/index.js"]
|
||||
@@ -7,8 +7,8 @@
|
||||
"build": "tsc",
|
||||
"start": "node --env-file=.env dist/index.js",
|
||||
"db-view": "yarn prisma studio",
|
||||
"db:deploy": "npx prisma migrate deploy && npx prisma generate",
|
||||
"db-migrate": "npx prisma migrate dev",
|
||||
"db-deploy": "npx prisma migrate deploy",
|
||||
"db-migrate-server": "git pull npx prisma migrate deploy",
|
||||
"lint": "eslint .",
|
||||
"lint:fix": "eslint . --fix"
|
||||
|
||||
Reference in New Issue
Block a user