Accelerate your next web project with a production-ready, self-hosted-ready foundation
| Primary repo (self-hosted GitLab) | https://git.fivgpn.com/template/nuxt-core-template |
| Mirror (GitHub β Use this template) | https://github.com/yesfedor/nuxt-core-template |
| Prod demo | https://nuxt-core-template.fivgpn.com |
| Stage demo | https://stage-nuxt-core-template.fivgpn.com |
| Technology | Description |
|---|---|
| SSR/SSG/Hybrid Rendering | |
| Composition API Ecosystem | |
| Strict Type Checking | |
| Multi-stage, non-root, healthcheck |
| Module | Purpose | Docs |
|---|---|---|
@nuxt/devtools |
Development Experience Toolkit | Docs |
@nuxt/icon |
Icon Management System | Docs |
@nuxt/eslint |
Code Standardization | Docs |
@nuxtjs/stylelint-module |
CSS/SCSS Quality Control | Docs |
@nuxtjs/i18n |
Internationalization | Docs |
@nuxtjs/device |
Device Detection | Docs |
@pinia/nuxt |
State Management | Docs |
@vite-pwa/nuxt |
PWA / Service Worker | Docs |
| Module | Purpose | Docs |
|---|---|---|
es-toolkit |
Modern Lodash Alternative | Docs |
mitt |
Event Bus Implementation | Docs |
@vueuse/nuxt |
Reactive Utilities | Docs |
| Module | Purpose | Docs |
|---|---|---|
@vee-validate/nuxt + yup |
Form Validation | Docs |
ajv + ajv-keywords |
JSON Schema Validation | Docs |
Ships with a complete GitLab CI/CD pipeline designed for your own GitLab instance and your own VMs β no SaaS required.
- by-image-tag delivery β build once into a Docker image (Node 24 Alpine, non-root, healthcheck), push to the GitLab Container Registry, deploy by pulling that tag. Nothing is built on the server.
- Environment-agnostic image β one image runs any contour; per-contour
config is injected at runtime via
NUXT_PUBLIC_*. - Contours β
devΒ·testΒ·stageΒ·prodΒ·vm1Β·vm2, each an isolated compose project (co-locate several on one VM, distinct host ports). - Promotion & release β
mainauto-deploys tostage; a manual button promotes the same tag toprod;release:patch|minor|majorbumpspackage.json, tagsvX.Y.Zand re-tags the image β no rebuild. - Zero-touch new projects β container names and deploy paths derive from
$CI_PROJECT_NAME; a new project only changes ports, domains and app identity.
π Full runbooks: Deployment Β· Using this template
βββ app/
β βββ assets/stylesheets # SCSS Foundation
β βββ components/core # Global Components
β βββ pages # Route System
β βββ api # Auto-imported API Composables
βββ Docker/ # Per-contour docker-compose files
βββ environments/ # Per-contour + build env
βββ shared/ # Business Logic Helpers-
Dynamic Icon System Auto-generated types from
~/assets/iconswith IDE support -
Core Scope Component
<core-scope> <!-- Global context initialization --> </core-scope>
<script setup lang="ts">
import { useForm } from 'vee-validate'
import * as yup from 'yup'
// Unified validation schema
const schema = yup.object({
email: yup.string().required().email(),
age: yup.number().min(18).max(99),
metadata: yup.object({
preferences: yup.array().of(yup.string())
})
});
const { handleSubmit } = useForm({
validationSchema: schema
});
const onSubmit = handleSubmit((values) => {
// Submit to API
});
</script>
<template>
<form @submit="onSubmit">
<Field name="email" type="email" />
<ErrorMessage name="email" />
<button type="submit">Submit</button>
</form>
</template>// shared/ajv/schemas/user.ts
import { defineSchema } from 'ajv'
export const userSchema = defineSchema({
type: 'object',
properties: {
email: { type: 'string', format: 'email' },
age: { type: 'number', minimum: 18, maximum: 99 },
metadata: {
type: 'object',
properties: {
preferences: {
type: 'array',
items: { type: 'string' }
}
},
required: ['preferences']
}
},
required: ['email', 'age'],
additionalProperties: false
});Requires Node 24 LTS (pinned in .nvmrc).
# Use the pinned Node version
nvm install && nvm use
# Environment setup
cp ./environments/local.env .env
# Install dependencies
npm install# Start dev server
npm run dev
# Production build (local)
npm run build && node .output/server/index.mjs
# Full production container (local)
docker compose -f Docker/docker-compose.local.yml up --build| Section | Description |
|---|---|
| Deployment | Self-hosted CI/CD, contours, secrets, versioning |
| Using this template | Bootstrap from zero + adding new projects |
| Architecture Guide | Project Structure Philosophy |
| Style Guide | SCSS Methodology |
We welcome contributions! Please follow our Contribution Guidelines and read our Code of Conduct.
MIT Β© Garanin Fedor