- Vue 77.2%
- TypeScript 21%
- CSS 0.8%
- PLpgSQL 0.4%
- JavaScript 0.3%
- Other 0.3%
| .husky | ||
| .vscode | ||
| app | ||
| public | ||
| scripts | ||
| server | ||
| shared | ||
| .dockerignore | ||
| .editorconfig | ||
| .enc.local.env | ||
| .enc.production.env | ||
| .enc.staging.env | ||
| .env.example | ||
| .gitignore | ||
| .sops.yaml | ||
| AGENTS.md | ||
| components.json | ||
| docker-compose.dockiy.yml | ||
| docker-compose.yml | ||
| Dockerfile | ||
| dockiy.config.yml | ||
| dockiy.yml | ||
| drizzle.config.ts | ||
| eslint.config.mjs | ||
| nuxt.config.ts | ||
| package.json | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| README.md | ||
| tsconfig.json | ||
DockIY Nuxt Better Auth template
A full-stack Nuxt starter with Better Auth, PostgreSQL, and Drizzle, deployed with DockIY.
Docs for this template
Requirements
Install Node.js 24+, pnpm 11+, Docker Engine, Docker Compose, and the DockIY CLI. Install SOPS and age for encrypted environment files.
Get started
Create a project or clone this repository, then edit dockiy.yml in the
project root. Set name and the staging/production hosts:
name: my-app
environments:
staging:
host: staging.example.com
compose_file: docker-compose.dockiy.yml
secrets_file: .enc.staging.env
production:
host: example.com
compose_file: docker-compose.dockiy.yml
secrets_file: .enc.production.env
Start the local database, install dependencies, apply migrations, and start Nuxt:
cp .env.example .env
docker compose up -d
pnpm install
pnpm db:migrate
pnpm dev
When Nuxt runs on the host, use port 5433 in NUXT_DATABASE_URL. For local
values, you can also run sops decrypt .enc.local.env > .env. Edit deployment
dotenv files with sops edit .enc.staging.env or
sops edit .enc.production.env; keep .env local and commit only encrypted
files. See the Nuxt Better Auth guide
for authentication, migrations, and deployment.
Google sign-in
Create an OAuth client of type Web application in the
Google Cloud Console. Add
http://localhost:3000/api/auth/callback/google as an authorized redirect URI
for local development. For each deployed environment, add its own callback URI,
such as https://example.com/api/auth/callback/google.
Set NUXT_GOOGLE_CLIENT_ID and NUXT_GOOGLE_CLIENT_SECRET in that environment's
secrets file. Set NUXT_BETTER_AUTH_URL to the same environment's public origin
(for example, https://example.com) so Better Auth sends Google the registered
callback URI. Restart Nuxt after changing local environment variables.