mirror of
https://github.com/TheCriicom/omega-dashboard-ps5.git
synced 2026-10-06 15:00:51 +02:00
API Node.js con account, social (amici, presenza, messaggi, party con voce, bacheca, gruppi, tempo di gioco), Store di homebrew e libreria personale. Proxy che registra le richieste oscurando i dati sensibili, pannello admin web, HTTPS opzionale con Caddy e script di installazione.
28 lines
1.1 KiB
Docker
28 lines
1.1 KiB
Docker
# Api di Omega. Oltre alle dipendenze npm servono ffmpeg (avatar e copertine)
|
|
# e JxrDecApp per le catture PS5 in JPEG XR: Alpine non lo pacchettizza, quindi
|
|
# si compila da jxrlib nel primo stadio.
|
|
FROM node:22-alpine AS jxr
|
|
RUN apk add --no-cache git build-base \
|
|
&& git clone -q --depth 1 https://github.com/4creators/jxrlib /j \
|
|
&& cd /j && make -j4 CFLAGS="-O2 -w -fPIC -D__ANSI__ -DDISABLE_PERF_MEASUREMENT -std=gnu89 -fpermissive -I. -Icommon/include -Iimage/sys -Ijxrgluelib -Ijxrtestlib" \
|
|
&& cp build/JxrDecApp /JxrDecApp
|
|
|
|
FROM node:22-alpine
|
|
# tar GNU per l'archivio del sorgente servito su /source
|
|
RUN apk add --no-cache ffmpeg tar
|
|
COPY --from=jxr /JxrDecApp /usr/local/bin/JxrDecApp
|
|
WORKDIR /app
|
|
COPY package.json package-lock.json* ./
|
|
RUN if [ -f package-lock.json ]; then npm ci --omit=dev; else npm install --omit=dev; fi \
|
|
&& npm cache clean --force
|
|
COPY config ./config
|
|
COPY migrations ./migrations
|
|
COPY src ./src
|
|
COPY store-assets ./store-assets
|
|
COPY admin-ui ./admin-ui
|
|
# foto e video caricati dagli utenti (volume media-data)
|
|
RUN mkdir -p /app/media && chown node:node /app/media
|
|
USER node
|
|
EXPOSE 8080
|
|
CMD ["node", "src/server.js"]
|