This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
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}`))
|
||||
Reference in New Issue
Block a user