init
Some checks failed
Deploy App / deploy (push) Has been cancelled

This commit is contained in:
valere
2025-09-19 13:04:39 +02:00
commit ed795de317
21 changed files with 10559 additions and 0 deletions

19
.github/workflows/deploy.yml vendored Normal file
View File

@@ -0,0 +1,19 @@
name: Deploy App
on: [push]
jobs:
deploy:
runs-on: ubuntu-22.04
needs: test
container:
volumes:
- /var/docker-web:/var/docker-web
steps:
- uses: actions/checkout@v4
- name: Deploy with docker-web
run: |
APP_DIR=/var/docker-web/apps/${GITHUB_REPOSITORY##*/}
mkdir -p $APP_DIR
cp -a $(find . -mindepth 1 -maxdepth 1 ! -name '.git' ! -name 'node_modules') "$APP_DIR/"
export COMPOSE_BAKE=false
bash /var/docker-web/src/cli.sh up ${GITHUB_REPOSITORY##*/}

24
.gitignore vendored Normal file
View File

@@ -0,0 +1,24 @@
# Nuxt dev/build outputs
.output
.data
.nuxt
.nitro
.cache
dist
# Node dependencies
node_modules
# Logs
logs
*.log
# Misc
.DS_Store
.fleet
.idea
# Local env files
.env
.env.*
!.env.example

1
.nvmrc Normal file
View File

@@ -0,0 +1 @@
20

5
.vscode/settings.json vendored Normal file
View File

@@ -0,0 +1,5 @@
{
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
}
}

22
Dockerfile Normal file
View File

@@ -0,0 +1,22 @@
# Stage de build
FROM node:20-alpine AS build
WORKDIR /app
RUN npm install -g pnpm
COPY package.json pnpm-lock.yaml* ./
RUN pnpm install --frozen-lockfile
COPY . .
RUN pnpm build
# Stage production
FROM node:20-alpine
WORKDIR /app
COPY --from=build /app/.output .output
COPY --from=build /app/package.json ./
COPY --from=build /app/node_modules ./node_modules
EXPOSE 3000
CMD ["node", ".output/server/index.mjs"]

75
README.md Normal file
View File

@@ -0,0 +1,75 @@
# Nuxt Minimal Starter
Look at the [Nuxt documentation](https://nuxt.com/docs/getting-started/introduction) to learn more.
## Setup
Make sure to install dependencies:
```bash
# npm
npm install
# pnpm
pnpm install
# yarn
yarn install
# bun
bun install
```
## Development Server
Start the development server on `http://localhost:3000`:
```bash
# npm
npm run dev
# pnpm
pnpm dev
# yarn
yarn dev
# bun
bun run dev
```
## Production
Build the application for production:
```bash
# npm
npm run build
# pnpm
pnpm build
# yarn
yarn build
# bun
bun run build
```
Locally preview production build:
```bash
# npm
npm run preview
# pnpm
pnpm preview
# yarn
yarn preview
# bun
bun run preview
```
Check out the [deployment documentation](https://nuxt.com/docs/getting-started/deployment) for more information.

3
app/app.vue Normal file
View File

@@ -0,0 +1,3 @@
<template>
<NuxtPage />
</template>

View File

@@ -0,0 +1,5 @@
<template>
<h1 class="flex gap-y-4 items-center justify-center flex items-center justify-center min-h-screen">
<img src="/logo.svg" />
</h1>
</template>

3
app/pages/index.vue Normal file
View File

@@ -0,0 +1,3 @@
<template>
<NuxtTemplate />
</template>

4
config.sh Executable file
View File

@@ -0,0 +1,4 @@
export REPO_NAME="nuxtci"
export DOMAIN="nuxtci.$MAIN_DOMAIN"
export PORT="7903"
export PORT_EXPOSED="3000"

23
docker-compose.yml Executable file
View File

@@ -0,0 +1,23 @@
services:
__APP_NAME__:
image: local/__APP_NAME__
build:
context: .
dockerfile: Dockerfile
container_name: __APP_NAME__
restart: unless-stopped
working_dir: /app
ports:
- "${PORT}:${PORT_EXPOSED}"
volumes:
- "${MEDIA_DIR}:/mnt/media"
environment:
VIRTUAL_HOST: "${DOMAIN}"
LETSENCRYPT_HOST: "${DOMAIN}"
PUID: "${PUID}"
PGID: "${PGID}"
networks:
default:
name: dockerweb
external: true

6
eslint.config.mjs Normal file
View File

@@ -0,0 +1,6 @@
// @ts-check
import withNuxt from './.nuxt/eslint.config.mjs'
export default withNuxt(
// Your custom configs here
)

48
logo.svg Normal file
View File

@@ -0,0 +1,48 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="25.31884mm"
height="16.87923mm"
viewBox="0 0 25.31884 16.87923"
version="1.1"
id="svg1"
inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
sodipodi:docname="logo.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#505050"
bordercolor="#eeeeee"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#505050"
inkscape:document-units="mm"
inkscape:zoom="0.79375"
inkscape:cx="396.85039"
inkscape:cy="561.25984"
inkscape:window-width="1920"
inkscape:window-height="1132"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs1" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<path
fill="#00dc82"
d="m 14.20412,16.87923 h 9.41203 c 0.29902,0 0.59263,-0.078 0.85156,-0.22609 a 1.6963627,1.6963627 0 0 0 0.62327,-0.61787 1.6761077,1.6761077 0 0 0 0.22786,-0.84404 1.6761077,1.6761077 0 0 0 -0.22863,-0.8438 L 18.76936,3.4964503 a 1.6963627,1.6963627 0 0 0 -0.62318,-0.61778 1.713242,1.713242 0 0 0 -0.85139,-0.22609 c -0.29884,0 -0.59246,0.0781 -0.8513,0.22618 a 1.6963627,1.6963627 0 0 0 -0.62318,0.61778 l -1.61619,2.77629 -3.16004,-5.42903003 A 1.6963627,1.6963627 0 0 0 10.42064,0.22602027 1.713242,1.713242 0 0 0 9.5691703,2.6800251e-7 c -0.29893,0 -0.59263,0.0780000019975 -0.85156,0.22610000199749 a 1.6963627,1.6963627 0 0 0 -0.62343,0.6177 L 0.22862027,14.34735 A 1.6752637,1.6752637 0 0 0 2.7493408e-7,15.19123 C -1.6972507e-4,15.48754 0.07850027,15.77862 0.22787027,16.03527 a 1.6963627,1.6963627 0 0 0 0.62326,0.61787 1.713242,1.713242 0 0 0 0.85156003,0.22609 h 5.90807 c 2.34089,0 4.0672197,-1.01908 5.2550097,-3.00728 l 2.8839,-4.9500097 1.5447,-2.64911 4.63588,7.9572897 h -6.18058 z m -6.6896597,-2.65181 -4.12309,-7.9e-4 6.1805,-10.6091097 3.0839197,5.30456 -2.06484,3.5454797 c -0.7888497,1.28999 -1.6849597,1.76 -3.0764897,1.76"
data-v-7503c9ae=""
id="path1"
style="stroke-width:0.0843963" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

6
nuxt.config.ts Normal file
View File

@@ -0,0 +1,6 @@
// https://nuxt.com/docs/api/configuration/nuxt-config
export default defineNuxtConfig({
compatibilityDate: '2025-07-15',
devtools: { enabled: true },
modules: ['@nuxt/eslint', '@nuxtjs/tailwindcss']
})

24
package.json Normal file
View File

@@ -0,0 +1,24 @@
{
"name": "nuxt-app",
"type": "module",
"private": true,
"scripts": {
"build": "nuxt build",
"dev": "nuxt dev",
"generate": "nuxt generate",
"preview": "nuxt preview",
"postinstall": "nuxt prepare"
},
"dependencies": {
"@nuxt/eslint": "1.9.0",
"@nuxtjs/tailwindcss": "6.14.0",
"eslint": "^9.33.0",
"nuxt": "^4.0.3",
"vue": "^3.5.18",
"vue-router": "^4.5.1"
},
"engines": {
"pnpm": ">=10 <11"
},
"packageManager": "pnpm@10.14.0+sha512.ad27a79641b49c3e481a16a805baa71817a04bbe06a38d17e60e2eaee83f6a146c6a688125f5792e48dd5ba30e7da52a5cda4c3992b9ccf333f9ce223af84748"
}

10186
pnpm-lock.yaml generated Normal file

File diff suppressed because it is too large Load Diff

BIN
public/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

74
public/logo.svg Normal file
View File

@@ -0,0 +1,74 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
class="MuiBox-root css-15p9n5u"
fill="#ffffff"
data-darkreader-inline-fill=""
version="1.1"
viewBox="0 0 324.58591 324.58593"
id="svg4"
sodipodi:docname="logo.svg"
width="324.58591"
height="324.58591"
inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs4" />
<sodipodi:namedview
id="namedview4"
pagecolor="#505050"
bordercolor="#eeeeee"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#505050"
showgrid="false"
inkscape:zoom="1.3811869"
inkscape:cx="65.88536"
inkscape:cy="230.59876"
inkscape:window-width="1920"
inkscape:window-height="1132"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg4" />
<g
transform="matrix(15.993754,0,0,15.993754,202.02026,95.822752)"
id="g4">
<g
transform="matrix(0.61413,0,0,0.61413,-46.767,1.3479)"
fill="#0062f8"
fill-opacity="0.4466"
id="g3">
<circle
cx="72.107002"
cy="4.5725002"
r="9.6731005"
id="circle1" />
<circle
cx="72.107002"
cy="4.5725002"
r="13.713"
id="circle2" />
<circle
cx="72.107002"
cy="4.5725002"
r="16.523001"
id="circle3" />
</g>
<path
d="M 3.9199,3.7221 C 3.8917,3.69915 3.62818,3.50017 3.07291,3.50017 c -0.13871,0 -0.28565,0.013 -0.4378,0.0377 C 2.52762,2.79968 1.91947,2.43987 1.89129,2.42387 L 1.74175,2.33718 1.64335,2.47936 C 1.52037,2.66983 1.4308,2.8799 1.37851,3.10051 1.27881,3.52184 1.33951,3.91715 1.55319,4.25611 1.29485,4.39959 0.88306,4.4373 0.79723,4.43816 h -6.8517 c -0.17908,7.09e-4 -0.32415,0.14558 -0.3251,0.32467 0.12299,0.5694 0.12059,0.55303 0.31955,1.0758 0.23623,0.61985 0.58734,1.0763 1.0442,1.3567 0.51191,0.31426 1.3455,0.49415 2.2869,0.49415 0.4404,0 0.87993,-0.03991 1.27,-0.1153 0.61422,-0.11833 1.1725,-0.32162 1.6584,-0.60294 0.42468,-0.24615 0.80673,-0.5594 1.1313,-0.92761 0.54269,-0.61552 0.68368,-0.72492 1.087,-1.2223 0.0325,0.0015 0.0641,0.002 0.0958,0.002 0.59428,0 0.96012,-0.2384 1.1617,-0.43779 C 3.89418,4.16881 3.9722,3.95294 3.98044,3.9291 l 0.0421,-0.12484 z"
fill="#ffffff"
stroke-width="0.43346"
id="path3" />
</g>
<path
fill="#00dc82"
d="m 168.1312,157.41035 h 35.57302 c 1.13014,0 2.23986,-0.29473 3.21848,-0.85454 a 6.4114498,6.4114498 0 0 0 2.35566,-2.33523 6.3348952,6.3348952 0 0 0 0.86123,-3.1901 6.3348952,6.3348952 0 0 0 -0.86411,-3.18914 l -23.88983,-41.01159 a 6.4114498,6.4114498 0 0 0 -2.35533,-2.33492 6.4752453,6.4752453 0 0 0 -3.21785,-0.85453 c -1.12949,0 -2.23922,0.29506 -3.21752,0.85486 a 6.4114498,6.4114498 0 0 0 -2.35533,2.33491 l -6.10842,10.49309 -11.94348,-20.519188 a 6.4114498,6.4114498 0 0 0 -2.35629,-2.33492 6.4752453,6.4752453 0 0 0 -3.21816,-0.85422 c -1.12982,0 -2.23986,0.29473 -3.21849,0.85454 a 6.4114498,6.4114498 0 0 0 -2.35628,2.3346 l -29.72808,51.037048 a 6.3317054,6.3317054 0 0 0 -0.86411,3.18946 c -6.4e-4,1.11993 0.29665,2.22008 0.86124,3.1901 a 6.4114498,6.4114498 0 0 0 2.35565,2.33523 6.4752453,6.4752453 0 0 0 3.21848,0.85454 h 22.32972 c 8.84748,0 15.37216,-3.85165 19.86145,-11.36613 l 10.89978,-18.70867 5.83825,-10.01239 17.52144,30.0748 h -23.35969 z m -25.28376,-10.0226 -15.58333,-0.003 23.35937,-40.0974 11.65575,20.0487 -7.8041,13.40025 c -2.98148,4.87557 -6.36838,6.65196 -11.62769,6.65196"
data-v-7503c9ae=""
id="path1"
style="stroke-width:0.318978" />
</svg>

After

Width:  |  Height:  |  Size: 3.8 KiB

2
public/robots.txt Normal file
View File

@@ -0,0 +1,2 @@
User-Agent: *
Disallow:

11
tailwind.config.js Normal file
View File

@@ -0,0 +1,11 @@
/** @type {import('tailwindcss').Config} */
module.exports = {
content: [
"./components/**/*.{js,vue,ts}",
"./layouts/**/*.vue",
"./pages/**/*.vue",
"./plugins/**/*.{js,ts}",
"./app.vue",
"./error.vue",
],
};

18
tsconfig.json Normal file
View File

@@ -0,0 +1,18 @@
{
// https://nuxt.com/docs/guide/concepts/typescript
"files": [],
"references": [
{
"path": "./.nuxt/tsconfig.app.json"
},
{
"path": "./.nuxt/tsconfig.server.json"
},
{
"path": "./.nuxt/tsconfig.shared.json"
},
{
"path": "./.nuxt/tsconfig.node.json"
}
]
}