Structure copied from news-server

This commit is contained in:
2021-02-28 01:12:33 +11:00
parent 1d850e94f0
commit 3d4bae1281
11 changed files with 3823 additions and 1 deletions
+8
View File
@@ -0,0 +1,8 @@
WEB_PORT=3200
DB_HOSTNAME=database
DB_DATABASE=chat
DB_USERNAME=chat
DB_PASSWORD=blastoise
DB_TIMEZONE=Australia/Sydney
+36
View File
@@ -0,0 +1,36 @@
name: Publish Docker image
on:
release:
types: [ published ]
jobs:
push_to_registry:
name: Push Docker Image to Docker Hub
runs-on: ubuntu-latest
steps:
- name: Check Out The Repo
uses: actions/checkout@v2
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Get Smart Tag
id: prepare
uses: Surgo/docker-smart-tag-action@v1
with:
docker_image: krgamestudios/chat-server
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Push to Docker Hub
uses: docker/build-push-action@v2
with:
push: true
tags: ${{ steps.prepare.outputs.tag }}
platforms: amd64,arm
+107
View File
@@ -0,0 +1,107 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
*.lcov
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# TypeScript v1 declaration files
typings/
# TypeScript cache
*.tsbuildinfo
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variables file
.env
.env.test
# parcel-bundler cache (https://parceljs.org/)
.cache
# Next.js build output
.next
# Nuxt.js build / generate output
.nuxt
dist
# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and *not* Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public
# vuepress build output
.vuepress/dist
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
# DynamoDB Local files
.dynamodb/
# TernJS port file
.tern-port
# Docker generated files and folders
data/
+11
View File
@@ -0,0 +1,11 @@
Copyright (c) 2021 Kayne Ruse, KR Game Studios
This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.
Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
+4 -1
View File
@@ -1,2 +1,5 @@
# chat-server # chat-server
An API centric chat server.
An API centric chat server. Uses Sequelize and mariaDB by default.
+3571
View File
File diff suppressed because it is too large Load Diff
+32
View File
@@ -0,0 +1,32 @@
{
"name": "chat-server",
"version": "1.0.0",
"description": "An API centric chat server. Uses Sequelize and mariaDB by default.",
"main": "server/server.js",
"scripts": {
"start": "node server/server.js",
"dev": "npm run watch:server",
"watch:server": "nodemon . --ext js,jsx,json --ignore 'node_modules/*'"
},
"repository": {
"type": "git",
"url": "git+https://github.com/krgamestudios/chat-server.git"
},
"author": "Kayne Ruse",
"license": "ISC",
"bugs": {
"url": "https://github.com/krgamestudios/chat-server/issues"
},
"homepage": "https://github.com/krgamestudios/chat-server#readme",
"dependencies": {
"body-parser": "^1.19.0",
"cors": "^2.8.5",
"dotenv": "^8.2.0",
"express": "^4.17.1",
"mariadb": "^2.5.2",
"sequelize": "^6.5.0"
},
"devDependencies": {
"nodemon": "^2.0.7"
}
}
+10
View File
@@ -0,0 +1,10 @@
const express = require('express');
const router = express.Router();
//the routes
//TODO: import the routes here
//basic route management
//TODO: define the routes here
module.exports = router;
+12
View File
@@ -0,0 +1,12 @@
const Sequelize = require('sequelize');
const sequelize = new Sequelize(process.env.DB_DATABASE, process.env.DB_USERNAME, process.env.DB_PASSWORD, {
host: process.env.DB_HOSTNAME,
dialect: 'mariadb',
timezone: process.env.DB_TIMEZONE,
logging: false
});
sequelize.sync();
module.exports = sequelize;
+3
View File
@@ -0,0 +1,3 @@
module.exports = {
//TODO: models
};
+29
View File
@@ -0,0 +1,29 @@
//environment variables
require('dotenv').config();
//create the server
const express = require('express');
const app = express();
const server = require('http').Server(app);
const bodyParser = require('body-parser');
const cors = require('cors');
//config
app.use(bodyParser.json());
app.use(cors());
//database connection
const database = require('./database');
//access the news
app.use('/chat', require('./chat'));
//error on access
app.get('*', (req, res) => {
res.redirect('https://github.com/krgamestudios/chat-server');
});
//startup
server.listen(process.env.WEB_PORT || 3200, (err) => {
console.log(`listening to localhost:${process.env.WEB_PORT || 3200}`);
});