This commit is contained in:
Jemma 2022-05-31 22:57:16 -05:00
commit 46bdc585f5
22 changed files with 52 additions and 32 deletions

5
.dockerignore Normal file
View File

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

4
.gitignore vendored Normal file
View File

@ -0,0 +1,4 @@
node_modules
config.json
certs
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

@ -14,7 +14,7 @@ This is the PN miiverse replacement web UI, which works with the 3DS and Wii U M
# 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 `example.config.js` to your liking and rename it `config.js`. 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. Edit `example.config.json` to your liking and rename it `config.json`. Run the server via `npm run start`.
Check out the [Wiki](https://github.com/PretendoNetwork/juxt-web/wiki) for information on how to set up your mongoDB to work with the application

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,16 +0,0 @@
# syntax=docker/dockerfile:1
FROM node:12-alpine
EXPOSE 80/tcp
EXPOSE 443/tcp
RUN apk add --no-cache npm python3 make g++
WORKDIR /app
COPY . .
RUN mkdir /config
VOLUME /config
WORKDIR /app/src
RUN mv config.example.json /config/config.json
RUN npm install
WORKDIR /app
RUN echo "cp /config/config.json /app/src/config.json && npm start" > startup.sh
RUN chmod +x startup.sh
ENTRYPOINT "/app/startup.sh"

View File

@ -1,5 +1,5 @@
const mongoose = require('mongoose');
const { account_db: mongooseConfig } = require('./config.json');
const { account_db: mongooseConfig } = require('../config.json');
const { uri, database, options } = mongooseConfig;
const logger = require('./logger');

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

@ -1,4 +1,4 @@
const config = require('../config.json');
const config = require('../../config.json');
const util = require('../util');
function auth(request, response, next) {

View File

@ -7,7 +7,7 @@ const cookieParser = require('cookie-parser');
const auth = require('./middleware/auth');
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 @@ var express = require('express');
const database = require('../../../../database');
const logger = require('../../../../logger');
const util = require('../../../../util');
const config = require('../../../../config.json');
const config = require('../../../../../config.json');
const { COMMUNITY } = require('../../../../models/communities');
const { POST } = require('../../../../models/post');
var router = express.Router();

View File

@ -3,7 +3,7 @@ var xml = require('object-to-xml');
const database = require('../../../../database');
const logger = require('../../../../logger');
const util = require('../../../../util');
const config = require('../../../../config.json');
const config = require('../../../../../config.json');
const request = require("request");
var path = require('path');
var moment = require('moment');

View File

@ -2,7 +2,7 @@ var express = require('express');
var xml = require('object-to-xml');
const database = require('../../../../database');
const util = require('../../../../util');
const config = require('../../../../config.json');
const config = require('../../../../../config.json');
var multer = require('multer');
var moment = require('moment');
var upload = multer({ dest: 'uploads/' });

View File

@ -2,7 +2,7 @@ var express = require('express');
var xml = require('object-to-xml');
const database = require('../../../../database');
const util = require('../../../../util');
const config = require('../../../../config.json');
const config = require('../../../../../config.json');
var moment = require('moment');
var router = express.Router();

View File

@ -2,7 +2,7 @@ var express = require('express');
var xml = require('object-to-xml');
const database = require('../../../../database');
const util = require('../../../../util');
const config = require('../../../../config.json');
const config = require('../../../../../config.json');
const { CONVERSATION } = require('../../../../models/conversation');
const { POST } = require('../../../../models/post');
var moment = require('moment');

View File

@ -2,7 +2,7 @@ var express = require('express');
var xml = require('object-to-xml');
const database = require('../../../../database');
const util = require('../../../../util');
const config = require('../../../../config.json');
const config = require('../../../../../config.json');
var moment = require('moment');
var router = express.Router();

View File

@ -1,7 +1,7 @@
var express = require('express');
const database = require('../../../../database');
const util = require('../../../../util');
const config = require('../../../../config.json');
const config = require('../../../../../config.json');
const { POST } = require('../../../../models/post');
const rateLimit = require('../../../../middleware/ratelimit');
var multer = require('multer');

View File

@ -2,7 +2,7 @@ var express = require('express');
var xml = require('object-to-xml');
const database = require('../../../../database');
const util = require('../../../../util');
const config = require('../../../../config.json');
const config = require('../../../../../config.json');
var moment = require('moment');
var router = express.Router();

View File

@ -2,7 +2,7 @@ var express = require('express');
var xml = require('object-to-xml');
const database = require('../../../../database');
const util = require('../../../../util');
const config = require('../../../../config.json');
const config = require('../../../../../config.json');
var multer = require('multer');
var moment = require('moment');
var upload = multer({ dest: 'uploads/' });

View File

@ -4,7 +4,7 @@ var parseString = require('xml2js').parseString;
const database = require('../../../../database');
const util = require('../../../../util');
var path = require('path');
const config = require("../../../../config.json");
const config = require("../../../../../config.json");
const request = require("request");
const logger = require("../../../../logger");

View File

@ -3,7 +3,7 @@ const NodeRSA = require('node-rsa');
const fs = require('fs-extra');
const database = require('./database');
const logger = require('./logger');
const config = require('./config.json');
const config = require('../config.json');
const { USER } = require('./models/user');
const translations = require('./translations')
var HashMap = require('hashmap');