Files
theater-ziefen-website/backend/index.js
T
johannes.gasser d9e3f398b8
Build and Deploy / build-and-deploy (push) Failing after 5m26s
add backend
2026-05-03 20:58:09 +02:00

51 lines
1.5 KiB
JavaScript

import express from 'express'
import { TinaNodeBackend, LocalBackendAuthProvider, createDatabase, createLocalDatabase } from '@tinacms/datalayer'
import { AuthJsBackendAuthProvider, TinaAuthJSOptions } from 'tinacms-authjs'
import { MongodbLevel } from 'mongodb-level'
import { GitHubProvider } from 'tinacms-gitprovider-github'
const isLocal = process.env.TINA_PUBLIC_IS_LOCAL === 'true'
const branch = process.env.GITEA_BRANCH || 'main'
const databaseClient = isLocal
? createLocalDatabase()
: createDatabase({
gitProvider: new GitHubProvider({
branch,
owner: process.env.GITEA_OWNER,
repo: process.env.GITEA_REPO,
token: process.env.GITEA_TOKEN,
octokitOptions: {
baseUrl: 'https://git.idealconnected.com/api/v1',
},
}),
databaseAdapter: new MongodbLevel({
collectionName: 'tinacms',
dbName: 'tinacms',
mongoUri: process.env.MONGODB_URI,
}),
})
const authProvider = isLocal
? LocalBackendAuthProvider()
: AuthJsBackendAuthProvider({
authOptions: TinaAuthJSOptions({
databaseClient,
secret: process.env.NEXTAUTH_SECRET,
}),
})
const tinaHandler = TinaNodeBackend({
authProvider,
databaseClient,
})
const app = express()
app.use(express.json())
// Mount at root — TinaNodeBackend routes /api/tina/* internally
app.all('*', (req, res) => tinaHandler(req, res))
const port = process.env.PORT || 3000
app.listen(port, () => console.log(`Tina backend running on port ${port}`))