Added Running Config
This commit is contained in:
5
.gitignore
vendored
Normal file
5
.gitignore
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
node_modules
|
||||
# Keep environment variables out of version control
|
||||
.env
|
||||
|
||||
/src/generated/prisma
|
||||
18
.gitlab-ci.yml
Normal file
18
.gitlab-ci.yml
Normal file
@@ -0,0 +1,18 @@
|
||||
before_script:
|
||||
- docker info
|
||||
|
||||
stages:
|
||||
- build
|
||||
|
||||
build-backend:
|
||||
stage: build
|
||||
tags:
|
||||
- shell
|
||||
- docker-daemon
|
||||
variables:
|
||||
IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
|
||||
script:
|
||||
- echo $IMAGE_TAG
|
||||
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
|
||||
- docker build -t $IMAGE_TAG .
|
||||
- docker push $IMAGE_TAG
|
||||
20
Dockerfile
Normal file
20
Dockerfile
Normal file
@@ -0,0 +1,20 @@
|
||||
# Basis-Image mit Node.js
|
||||
FROM node:20-alpine
|
||||
|
||||
# Arbeitsverzeichnis im Container
|
||||
WORKDIR /usr/src/app
|
||||
|
||||
# package.json und package-lock.json zuerst kopieren
|
||||
COPY package*.json ./
|
||||
|
||||
# Dependencies installieren (nur Produktion, falls nötig)
|
||||
RUN npm install --omit=dev
|
||||
|
||||
# Restlichen Quellcode kopieren
|
||||
COPY . .
|
||||
|
||||
# Port setzen (Fastify läuft standardmäßig auf 3000)
|
||||
EXPOSE 3000
|
||||
|
||||
# Startkommando
|
||||
CMD ["npm", "start"]
|
||||
24
docker-compose.yml
Normal file
24
docker-compose.yml
Normal file
@@ -0,0 +1,24 @@
|
||||
services:
|
||||
backend:
|
||||
image: reg.federspiel.software/fedeo/backend:main
|
||||
restart: always
|
||||
|
||||
environment:
|
||||
JWT_SECRET: "pd6Hp76xtN8R9t6WkagH2FnW8wDWx"
|
||||
COOKIE_SECRET: "X9mieXp98PCXkFWja66xnDNaJhVKq"
|
||||
MAIL_FROM: "FEDEO Notify <notify@fedeo.de>"
|
||||
SMTP_HOST: "mail.your-server.de"
|
||||
SMTP_PASS: "NDor3A9QLbc87V39"
|
||||
SMTP_PORT: 465
|
||||
SMTP_SSL: true
|
||||
SMTP_USER: "notify@fedeo.de"
|
||||
SUPABASE_SERVICE_ROLE_KEY: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InV3cHB2Y3hmbHJjc2lidXpzYmlsIiwicm9sZSI6InNlcnZpY2Vfcm9sZSIsImlhdCI6MTcwMDkzODE5NCwiZXhwIjoyMDE2NTE0MTk0fQ.6hOkD1J8XBkVJUm-swv0ngLQ74xrEYr28EEbo0rUrts"
|
||||
SUPABASE_URL: "https://uwppvcxflrcsibuzsbil.supabase.co"
|
||||
PORT: 3100
|
||||
S3_BUCKET: "FEDEO"
|
||||
S3_SECRET_KEY: "aZ33xBv47sPPsHuFKeHSDiLagjqF7nShnuGkj7B1"
|
||||
S3_ACCESS_KEY: "RYOMQRW8KSTY3UQX7RPJ"
|
||||
S3_REGION: "eu-central"
|
||||
S3_ENDPOINT: "https://fedeo.nbg1.your-objectstorage.com"
|
||||
EMAILENGINE_TOKEN: "dcd8209bc5371c728f9ec951600afcfc74e8c391a7e984b2a6df9c4665dc7ad6"
|
||||
EMAILENGINE_URL: "https://ee.fedeo.io/v1"
|
||||
5292
package-lock.json
generated
Normal file
5292
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
48
package.json
Normal file
48
package.json
Normal file
@@ -0,0 +1,48 @@
|
||||
{
|
||||
"name": "backend",
|
||||
"version": "1.0.0",
|
||||
"description": "",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"dev": "tsx watch src/index.ts",
|
||||
"build": "tsc",
|
||||
"start": "node dist/index.js"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://git.federspiel.software/fedeo/backend.git"
|
||||
},
|
||||
"keywords": [],
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"@aws-sdk/client-s3": "^3.879.0",
|
||||
"@aws-sdk/s3-request-presigner": "^3.879.0",
|
||||
"@fastify/cookie": "^11.0.2",
|
||||
"@fastify/cors": "^11.1.0",
|
||||
"@fastify/multipart": "^9.0.3",
|
||||
"@fastify/swagger": "^9.5.1",
|
||||
"@fastify/swagger-ui": "^5.2.3",
|
||||
"@prisma/client": "^6.15.0",
|
||||
"@supabase/supabase-js": "^2.56.1",
|
||||
"@zip.js/zip.js": "^2.7.73",
|
||||
"archiver": "^7.0.1",
|
||||
"axios": "^1.12.1",
|
||||
"bcrypt": "^6.0.0",
|
||||
"dayjs": "^1.11.18",
|
||||
"fastify": "^5.5.0",
|
||||
"fastify-plugin": "^5.0.1",
|
||||
"jsonwebtoken": "^9.0.2",
|
||||
"nodemailer": "^7.0.6",
|
||||
"pdf-lib": "^1.17.1",
|
||||
"xmlbuilder": "^15.1.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/bcrypt": "^6.0.0",
|
||||
"@types/jsonwebtoken": "^9.0.10",
|
||||
"@types/node": "^24.3.0",
|
||||
"prisma": "^6.15.0",
|
||||
"tsx": "^4.20.5",
|
||||
"typescript": "^5.9.2"
|
||||
}
|
||||
}
|
||||
18
tsconfig.json
Normal file
18
tsconfig.json
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"target": "ES2020",
|
||||
"module": "NodeNext",
|
||||
"moduleResolution": "NodeNext",
|
||||
"esModuleInterop": true,
|
||||
"allowSyntheticDefaultImports": true,
|
||||
"strict": true,
|
||||
"skipLibCheck": true,
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"outDir": "dist",
|
||||
"types": ["node"]
|
||||
},
|
||||
"include": ["src"],
|
||||
"exclude": ["node_modules", "dist"]
|
||||
}
|
||||
Reference in New Issue
Block a user