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