Added Running Config

This commit is contained in:
2025-09-12 18:38:13 +02:00
parent c98394b5bf
commit fc46e807e7
7 changed files with 5425 additions and 0 deletions

5
.gitignore vendored Normal file
View File

@@ -0,0 +1,5 @@
node_modules
# Keep environment variables out of version control
.env
/src/generated/prisma

18
.gitlab-ci.yml Normal file
View 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
View 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
View 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

File diff suppressed because it is too large Load Diff

48
package.json Normal file
View 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
View 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"]
}