Merge pull request #9 from PretendoNetwork/docker

Docker
This commit is contained in:
Jemma 2022-05-08 10:16:22 -05:00 committed by GitHub
commit 44ceda860c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 40 additions and 4 deletions

5
.dockerignore Normal file
View File

@ -0,0 +1,5 @@
node_modules
.git
config.json
certs
src/logs

4
.gitignore vendored
View File

@ -1 +1,5 @@
.DS_Store
node_modules
certs
config.json
src/logs

15
Dockerfile Normal file
View File

@ -0,0 +1,15 @@
FROM node:18-alpine
RUN apk add --no-cache python3 make gcc g++
WORKDIR /app
COPY "docker/entrypoint.sh" ./
COPY package*.json ./
RUN npm install
COPY . ./
VOLUME [ "/app/config.json", "/app/certs" ]
CMD ["sh", "entrypoint.sh"]

View File

@ -1,7 +1,7 @@
# What is this?
This is the Pretendo Network Miiverse API Server, which replaces the former Nintendo Network Miiverse API Server *.olv.nintendo.net
# Install and usage
First install [NodeJS](https://nodejs.org) and [MongoDB](https://mongodb.com). Download/clone this repo and run `npm i` to install all dependencies. Edit `src/config.json` to your liking. Run the server via `npm run start`.
First install [NodeJS](https://nodejs.org) and [MongoDB](https://mongodb.com). Download/clone this repo and run `npm i` to install all dependencies. Create a `config.json` to your liking (example in `config.example.json`). Run the server via `npm run start`.
# To-Do
- [x] Discovery Server
- [x] Posts Server

12
docker/entrypoint.sh Normal file
View File

@ -0,0 +1,12 @@
#!/bin/sh
files='config.json certs/access/private.pem certs/access/aes.key'
for file in $files; do
if [ ! -f $file ]; then
echo "$PWD/$file file does not exist. Please mount and try again."
exit 1
fi
done
exec node src/server.js

View File

@ -1,5 +1,5 @@
const mongoose = require('mongoose');
const { mongoose: mongooseConfig } = require('./config.json');
const { mongoose: mongooseConfig } = require('../config.json');
const { ENDPOINT } = require('./models/endpoint');
const { COMMUNITY } = require('./models/communities');
const { POST } = require('./models/post');

View File

@ -4,7 +4,7 @@ const morgan = require('morgan');
const xmlparser = require('./middleware/xml-parser');
const database = require('./database');
const logger = require('./logger');
const config = require('./config.json');
const config = require('../config.json');
const { http: { port } } = config;
const app = express();

View File

@ -2,7 +2,7 @@ const crypto = require('crypto');
const NodeRSA = require('node-rsa');
const fs = require('fs-extra');
const database = require('../database');
const config = require('../config.json');
const config = require('../../config.json');
const xmlParser = require('xml2json');
const request = require("request");
const moment = require('moment');