This commit is contained in:
36
.drone.yml
36
.drone.yml
@@ -89,3 +89,39 @@ trigger:
|
|||||||
- main
|
- main
|
||||||
event:
|
event:
|
||||||
- push
|
- push
|
||||||
|
|
||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
|
name: Deploy Pipeline
|
||||||
|
|
||||||
|
platform:
|
||||||
|
os: linux
|
||||||
|
arch: arm64
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: yarn-install
|
||||||
|
image: node
|
||||||
|
commands:
|
||||||
|
- cd /app
|
||||||
|
- cp /drone/src/package.json ./
|
||||||
|
- cp /drone/src/yarn.lock ./
|
||||||
|
- yarn install --frozen-lockfile
|
||||||
|
- cp -r /drone/src/* .
|
||||||
|
- yarn build
|
||||||
|
volumes:
|
||||||
|
- name: app-build-dir
|
||||||
|
path: /app-build
|
||||||
|
- name: Deploy Container
|
||||||
|
image: compose
|
||||||
|
commands:
|
||||||
|
- cd /app
|
||||||
|
- cp /app-build-dir/* .
|
||||||
|
- build
|
||||||
|
- up -d
|
||||||
|
volumes:
|
||||||
|
- name: app-build-dir
|
||||||
|
path: /app-build
|
||||||
|
volumes:
|
||||||
|
- name: app-build-dir
|
||||||
|
temp: {}
|
||||||
|
|||||||
7
Dockerfile
Normal file
7
Dockerfile
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
FROM node:latest
|
||||||
|
WORKDIR /app
|
||||||
|
COPY package.json .
|
||||||
|
RUN yarn install
|
||||||
|
COPY . .
|
||||||
|
RUN yarn build
|
||||||
|
CMD ["node", "dist/lib/server/index.js"]
|
||||||
56
docker-compose.yml
Normal file
56
docker-compose.yml
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
version: '3.8'
|
||||||
|
|
||||||
|
services:
|
||||||
|
auth-service_mongo:
|
||||||
|
container_name: ${CONTAINER_PREFIX}auth-service_mongo
|
||||||
|
environment:
|
||||||
|
- ALLOW_EMPTY_PASSWORD=yes
|
||||||
|
- MONGODB_USERNAME=${DB_USER}
|
||||||
|
- MONGODB_PASSWORD=${DB_PASS}
|
||||||
|
- MONGODB_DATABASE=${DB_NAME}
|
||||||
|
networks:
|
||||||
|
- docknet
|
||||||
|
volumes:
|
||||||
|
- '/volume1/docker/labs/grow-auth/mongo:/data/db'
|
||||||
|
- '/Volume1/docker/labs/grow-auth/.env:./.env'
|
||||||
|
restart: unless-stopped
|
||||||
|
image: mongo
|
||||||
|
auth-service:
|
||||||
|
container_name: ${CONTAINER_PREFIX}auth-service
|
||||||
|
environment:
|
||||||
|
- PORT=${PORT}
|
||||||
|
- ROUTE_PREFIX=${ROUTE_PREFIX}
|
||||||
|
- LOGIN_ROUTE=${LOGIN_ROUTE}
|
||||||
|
- RESET_ROUTE=${RESET_ROUTE}
|
||||||
|
- DB_HOST=${CONTAINER_PREFIX}auth-service_mongo
|
||||||
|
- DB_USER=${DB_USER}
|
||||||
|
- DB_PASSWORD=${DB_PASS}
|
||||||
|
- DB_NAME=${DB_NAME}
|
||||||
|
- SESSION_KEY=${SESSION_KEY}
|
||||||
|
- JWT_AUDIENCE=${JWT_AUDIENCE}
|
||||||
|
- JWT_ISSUER=${JWT_ISSUER}
|
||||||
|
- JWT_SECRET=${JWT_SECRET}
|
||||||
|
- LOGIN_VALID_TIME=${LOGIN_VALID_TIME}
|
||||||
|
- RESET_VALID_MINUTES=${RESET_VALID_MINUTES}
|
||||||
|
- DEFAULT_TOKEN_DAYS=${DEFAULT_TOKEN_DAYS}
|
||||||
|
labels:
|
||||||
|
- 'traefik.enable=true'
|
||||||
|
- 'traefik.http.routers.grow.rule=Host(`${HOST}`)'
|
||||||
|
- 'traefik.http.routers.grow.rule=Path(`${ROUTE_PREFIX}`)'
|
||||||
|
- 'traefik.http.routers.grow.entrypoints=websecure'
|
||||||
|
- 'traefik.http.routers.grow.tls=true'
|
||||||
|
- 'traefik.http.routers.grow.tls.certresolver=letsencrypt'
|
||||||
|
- 'traefik.http.routers.grow.service=gitea'
|
||||||
|
- 'traefik.http.services.gitea.loadbalancer.server.port=${PORT}'
|
||||||
|
networks:
|
||||||
|
- docknet
|
||||||
|
volumes:
|
||||||
|
- '/Volume1/docker/.yarnrc.yml:./.yarnrc.yml'
|
||||||
|
- '/Volume1/docker/labs/grow-auth/.env:./.env'
|
||||||
|
restart: unless-stopped
|
||||||
|
image: node
|
||||||
|
depends_on:
|
||||||
|
- auth-service_mongo
|
||||||
|
networks:
|
||||||
|
docknet:
|
||||||
|
name: docknet
|
||||||
@@ -1,6 +1,8 @@
|
|||||||
export const PACKAGE_NAME = '@mifi/latch';
|
export const PACKAGE_NAME = '@mifi/latch';
|
||||||
export const PORT = process.env.PORT || 9000;
|
export const PORT = process.env.PORT || 9000;
|
||||||
|
|
||||||
|
export const SESSION_KEY = process.env.SESSION_KEY || 'secret-key';
|
||||||
|
|
||||||
export const JWT_AUDIENCE = process.env.JWT_AUDIENCE || 'mifi.dev';
|
export const JWT_AUDIENCE = process.env.JWT_AUDIENCE || 'mifi.dev';
|
||||||
export const JWT_ISSUER = process.env.JWT_ISSUER || PACKAGE_NAME;
|
export const JWT_ISSUER = process.env.JWT_ISSUER || PACKAGE_NAME;
|
||||||
export const JWT_SECRET = process.env.JWT_SECRET || 'secret';
|
export const JWT_SECRET = process.env.JWT_SECRET || 'secret';
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import passport from './passport';
|
|||||||
import { performanceLogger, perfromanceTimer } from './middleware/performance';
|
import { performanceLogger, perfromanceTimer } from './middleware/performance';
|
||||||
import { errorHandler } from './middleware/errorHandler';
|
import { errorHandler } from './middleware/errorHandler';
|
||||||
import { authRouter } from './controllers/auth';
|
import { authRouter } from './controllers/auth';
|
||||||
|
import { SESSION_KEY } from '../constants/env';
|
||||||
|
|
||||||
const app: Koa = new Koa();
|
const app: Koa = new Koa();
|
||||||
|
|
||||||
@@ -16,7 +17,7 @@ app.use(performanceLogger);
|
|||||||
app.use(bodyparser());
|
app.use(bodyparser());
|
||||||
app.use(cookie());
|
app.use(cookie());
|
||||||
|
|
||||||
app.keys = [process.env.SESSION_KEYS as string];
|
app.keys = [SESSION_KEY];
|
||||||
app.use(session({}, app));
|
app.use(session({}, app));
|
||||||
|
|
||||||
app.use(passport.initialize());
|
app.use(passport.initialize());
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@mifi/auth",
|
"name": "@mifi/auth",
|
||||||
"version": "0.0.1",
|
"version": "0.0.2",
|
||||||
"author": "mifi (Mike Fitzpatrick)",
|
"author": "mifi (Mike Fitzpatrick)",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
Reference in New Issue
Block a user