From 65994439d7e493fbec571375b843a5b881ac2059 Mon Sep 17 00:00:00 2001 From: MichalC <103170279+wSBMichalee@users.noreply.github.com> Date: Sat, 19 Sep 2026 11:45:54 +0200 Subject: [PATCH] build: prepare Next.js standalone output and Payload Postgres adapter for Coolify deployment --- .dockerignore | 12 ++++++++++++ .env.example | 19 ++++++++++++++++++- next.config.ts | 1 + src/payload.config.ts | 9 ++++----- 4 files changed, 35 insertions(+), 6 deletions(-) create mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..7e14caf --- /dev/null +++ b/.dockerignore @@ -0,0 +1,12 @@ +node_modules +.next +.git +.env +.env.local +dev.db +*.db +.DS_Store +npm-debug.log* +.vscode +.gemini +.agents diff --git a/.env.example b/.env.example index 076ba6e..36b8aaf 100644 --- a/.env.example +++ b/.env.example @@ -1,2 +1,19 @@ -DATABASE_URI=file:./dev.db +# Baza danych +DATABASE_URI=postgres://user:password@localhost:5432/dbname +# Dla lokalnego dewelopmentu: +# DATABASE_URI=file:./dev.db + +# Payload PAYLOAD_SECRET=YOUR_SECRET_HERE + +# Opcjonalne: SMTP (do formularzy) +# SMTP_HOST= +# SMTP_PORT= +# SMTP_USER= +# SMTP_PASS= +# SMTP_FROM_ADDRESS= +# SMTP_FROM_NAME= + +# Opcjonalne: Turnstile (Cloudflare) +# NEXT_PUBLIC_TURNSTILE_SITE_KEY= +# TURNSTILE_SECRET_KEY= diff --git a/next.config.ts b/next.config.ts index a93dd05..9f59cd4 100644 --- a/next.config.ts +++ b/next.config.ts @@ -7,6 +7,7 @@ const __filename = fileURLToPath(import.meta.url) const dirname = path.dirname(__filename) const nextConfig: NextConfig = { + output: 'standalone', async headers() { const { buildSecurityHeaders } = await import('@intecion/ipal-kit') return [ diff --git a/src/payload.config.ts b/src/payload.config.ts index ba6bbd3..a4d86d3 100644 --- a/src/payload.config.ts +++ b/src/payload.config.ts @@ -1,4 +1,5 @@ import { sqliteAdapter } from '@payloadcms/db-sqlite' +import { postgresAdapter } from '@payloadcms/db-postgres' import { mcpPlugin } from '@payloadcms/plugin-mcp' import { seoPlugin } from '@payloadcms/plugin-seo' import { ipalKit, panelSmtpAdapter } from '@intecion/ipal-kit' @@ -33,11 +34,9 @@ export default buildConfig({ typescript: { outputFile: path.resolve(dirname, 'payload-types.ts'), }, - db: sqliteAdapter({ - client: { - url: process.env.DATABASE_URI || '', - }, - }), + db: process.env.DATABASE_URI?.startsWith('postgres') + ? postgresAdapter({ pool: { connectionString: process.env.DATABASE_URI }, push: false }) + : sqliteAdapter({ client: { url: process.env.DATABASE_URI || '' } }), sharp, localization: { locales: i18n.locales.map(l => l.code),