test server NUXT_ env in nuxt config
All checks were successful
Deploy App / build (push) Successful in 1m6s
Deploy App / deploy (push) Successful in 18s

This commit is contained in:
valere
2026-02-10 20:59:18 +01:00
parent d89f2aa3e7
commit 0195c52d30
10 changed files with 21 additions and 17 deletions

3
.env
View File

@@ -3,6 +3,3 @@ PORT=7901
PORT_EXPOSED=3000 PORT_EXPOSED=3000
NODE_ENV=production NODE_ENV=production
NUXT_PATH_FILES=mnt/media/files/music
NUXT_PATH_DB=data/music.db
NUXT_URL_PREFIX=https://files.erudi.fr/music/

View File

@@ -6,6 +6,6 @@ export default defineConfig({
schema: './server/db/schema.ts', schema: './server/db/schema.ts',
dialect: 'sqlite', dialect: 'sqlite',
dbCredentials: { dbCredentials: {
url: process.env.NUXT_PATH_DB! url: 'data/music.db'
} }
}) })

View File

@@ -4,6 +4,10 @@ import tsconfigPaths from 'vite-tsconfig-paths'
const isProd = process.env.NODE_ENV === 'production' const isProd = process.env.NODE_ENV === 'production'
export default defineNuxtConfig({ export default defineNuxtConfig({
runtimeConfig: {
NUXT_PATH_FILES: 'mnt/media/files/music',
NUXT_URL_PREFIX: 'https://files.erudi.fr/music/'
},
nitro: { nitro: {
experimental: { experimental: {
tasks: true tasks: true

View File

@@ -1,7 +1,8 @@
import { syncCardsWithDatabase } from '../services/cardSync.service' import { syncCardsWithDatabase } from '../services/cardSync.service'
export default defineEventHandler(async (event) => { export default defineEventHandler(async (event) => {
const folderPath = process.env.NUXT_PATH_FILES const runtimeConfig = useRuntimeConfig()
const folderPath = runtimeConfig.NUXT_PATH_FILES
if (!folderPath) { if (!folderPath) {
throw createError({ throw createError({

View File

@@ -1,7 +1,8 @@
import { syncCardsWithDatabase } from '../../services/cardSync.service' import { syncCardsWithDatabase } from '../../services/cardSync.service'
export default defineEventHandler(async (event) => { export default defineEventHandler(async (event) => {
const folderPath = process.env.NUXT_PATH_FILES const runtimeConfig = useRuntimeConfig()
const folderPath = runtimeConfig.NUXT_PATH_FILES
try { try {
const result = await syncCardsWithDatabase(folderPath) const result = await syncCardsWithDatabase(folderPath)

View File

@@ -1,7 +1,8 @@
import { scanMusicFolder } from '../../utils/fileScanner' import { scanMusicFolder } from '../../utils/fileScanner'
export default defineEventHandler(async (event) => { export default defineEventHandler(async (event) => {
const folderPath = process.env.NUXT_PATH_FILES const runtimeConfig = useRuntimeConfig()
const folderPath = runtimeConfig.NUXT_PATH_FILES
try { try {
// Test 1: Vérifier que le dossier existe // Test 1: Vérifier que le dossier existe

View File

@@ -6,11 +6,7 @@ let _db: ReturnType<typeof drizzle> | null = null
export function useDB() { export function useDB() {
if (_db) return _db if (_db) return _db
let dbPath = process.env.NUXT_PATH_DB let dbPath = 'data/music.db'
if (!dbPath) {
throw new Error('PATH_DB is not configured')
}
// Convertir le chemin en URL file:// si ce n'est pas déjà une URL // Convertir le chemin en URL file:// si ce n'est pas déjà une URL
if (!dbPath.startsWith('file:') && !dbPath.startsWith('libsql:') && !dbPath.startsWith('http')) { if (!dbPath.startsWith('file:') && !dbPath.startsWith('libsql:') && !dbPath.startsWith('http')) {

View File

@@ -1,7 +1,8 @@
import { syncCardsWithDatabase } from '../services/cardSync.service' import { syncCardsWithDatabase } from '../services/cardSync.service'
export default defineNitroPlugin(async (nitroApp) => { export default defineNitroPlugin(async (nitroApp) => {
const folderPath = process.env.NUXT_PATH_FILES const runtimeConfig = useRuntimeConfig()
const folderPath = runtimeConfig.NUXT_PATH_FILES
if (!folderPath) { if (!folderPath) {
console.warn('⚠️ NUXT_PATH_FILES non configuré') console.warn('⚠️ NUXT_PATH_FILES non configuré')

View File

@@ -6,8 +6,8 @@ export default defineTask({
description: 'Synchronise les tracks avec le système de fichiers' description: 'Synchronise les tracks avec le système de fichiers'
}, },
async run() { async run() {
const config = useRuntimeConfig() const runtimeConfig = useRuntimeConfig()
const folderPath = process.env.NUXT_PATH_FILES const folderPath = runtimeConfig.NUXT_PATH_FILES
console.log('⏰ [TASK] Démarrage de la synchronisation planifiée...') console.log('⏰ [TASK] Démarrage de la synchronisation planifiée...')

View File

@@ -9,6 +9,9 @@ const listAudioExts = ['.mp3', '.opus', 'flac']
const listImageExts = ['.jpg', '.jpeg', '.webp'] const listImageExts = ['.jpg', '.jpeg', '.webp']
export async function scanMusicFolder(folderPath: string): Promise<Card[]> { export async function scanMusicFolder(folderPath: string): Promise<Card[]> {
const runtimeConfig = useRuntimeConfig()
const urlPrefix = runtimeConfig.NUXT_URL_PREFIX
try { try {
const files = await readdir(folderPath) const files = await readdir(folderPath)
const cardMap = new Map<string, Card>() const cardMap = new Map<string, Card>()
@@ -30,14 +33,14 @@ export async function scanMusicFolder(folderPath: string): Promise<Card[]> {
for (const imgExt of listImageExts) { for (const imgExt of listImageExts) {
const potentialImage = baseName + imgExt const potentialImage = baseName + imgExt
if (files.includes(potentialImage)) { if (files.includes(potentialImage)) {
imageUrl = process.env.NUXT_URL_PREFIX + baseName + imgExt imageUrl = urlPrefix + baseName + imgExt
break break
} }
} }
cardMap.set(parsed.esid, { cardMap.set(parsed.esid, {
...parsed, ...parsed,
url_audio: process.env.NUXT_URL_PREFIX + baseName + ext, url_audio: urlPrefix + baseName + ext,
url_image: imageUrl, url_image: imageUrl,
suit: parsed.suit, suit: parsed.suit,
rank: parsed.rank rank: parsed.rank