Commit b4f2bdba authored by Grant's avatar Grant
Browse files

initial commit

parents
Loading
Loading
Loading
Loading

.dockerignore

0 → 100644
+13 −0
Original line number Diff line number Diff line
**/node_modules
build
data
**/dist
packages/build
Dockerfile
secrets

# dotfiles
.git*
.vscode
**/.env*
 No newline at end of file

.gitignore

0 → 100644
+28 −0
Original line number Diff line number Diff line
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules

# testing
/coverage

# production
/build

# misc
.DS_Store
*.pem

# debug
npm-debug.log*

# local env files
.env*.local

# typescript
*.tsbuildinfo
next-env.d.ts

/data
/secrets
 No newline at end of file

Dockerfile

0 → 100644
+82 −0
Original line number Diff line number Diff line
FROM node:20-alpine AS base

FROM base as dev_dep
RUN mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app
WORKDIR /home/node/app

# --- dependencies ---
COPY --chown=node:node package*.json ./
COPY --chown=node:node backend/package*.json ./backend/
COPY --chown=node:node frontend/package*.json ./frontend/

USER node
RUN npm install --include=dev

FROM base as dep
RUN mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app
WORKDIR /home/node/app

# --- dependencies ---
COPY --chown=node:node package*.json ./
COPY --chown=node:node backend/package*.json ./backend/
COPY --chown=node:node frontend/package*.json ./frontend/

USER node
RUN npm install --omit=dev

#
# === BUILDER ===
#

FROM base as build
RUN mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app
WORKDIR /home/node/app

COPY --from=dev_dep /home/node/app/ ./

COPY --chown=node:node . .

# --- build frontend ---

RUN npm -w frontend run build

# --- build backend ---

RUN npx -w backend prisma generate
RUN npm -w backend run build

#
# === RUNNER ===
#

FROM base as run
WORKDIR /home/node/app
COPY --from=dep /home/node/app/ ./
COPY package*.json docker-start.sh ./

# --- prepare frontend ---

RUN mkdir -p frontend
COPY --from=build /home/node/app/frontend/dist ./frontend/

# --- prepare server ---

RUN mkdir -p backend
COPY --from=build /home/node/app/backend/package.json ./backend/
COPY --from=build /home/node/app/backend/prisma ./backend/prisma
COPY --from=build /home/node/app/backend/dist ./backend/dist

# --- finalize ---

RUN npx -w backend prisma generate

# set runtime env variables

ENV PORT 3000
ENV NODE_ENV production
ENV SERVE_FRONTEND /home/node/app/frontend

EXPOSE 3000
ENTRYPOINT [ "/bin/sh" ]
CMD [ "./docker-start.sh" ]
 No newline at end of file

README.md

0 → 100644
+5 −0
Original line number Diff line number Diff line
# fediverse-auth

Providing a central OpenID Connect service for Fediverse identification

Leverages OpenID Connect Auto Discovery & Dynamic Client Registration

backend/.gitignore

0 → 100644
+5 −0
Original line number Diff line number Diff line
node_modules
# Keep environment variables out of version control
.env
dist
 No newline at end of file