An API + webapp to manage PSForever accounts, characters, and servers.
Find a file
Chord fa6e168ccc Application improvements
* Change favicon
* Display account banned status on admin search
* Pull in application version from Webpack
* Add "Feedback" button in footer and github references
* Fix faction icons to make them the same size
* PaginatedList component now supports back
* Tabbed navs support back
* Hide Pagination when only one page
* Improve admin table style and size
2019-12-31 09:46:34 -05:00
api Application improvements 2019-12-31 09:46:34 -05:00
app Application improvements 2019-12-31 09:46:34 -05:00
db Add schema and readme 2019-12-30 14:36:00 -05:00
public Application improvements 2019-12-31 09:46:34 -05:00
scss Application improvements 2019-12-31 09:46:34 -05:00
.gitignore Initial commit 2019-12-30 09:27:49 -05:00
index.js Add apache logging + trust proxy to prod 2019-12-30 15:50:01 -05:00
package.json Hide admin buttons on regular user 2019-12-30 15:36:35 -05:00
README.md Add schema and readme 2019-12-30 14:36:00 -05:00
webpack.config.cjs Application improvements 2019-12-31 09:46:34 -05:00

PSFPortal

An API + webapp to manage PSForever accounts, characters, and servers.

Features

  • User registration, login, and sessions
  • Home page
  • Admin management

Upcoming Features

  • Email verification + captcha
  • Changing passwords
  • WorldServer mangement

Developing

This requires a relatively modern version of Node that supports async/await and ES6 (v13.x+). Tested using v13.3.0. You may still get (node:61412) ExperimentalWarning: The ESM module loader is experimental.. Ignore this as ESM is essentially stable in recent versions.

First download and install the Node dependencies:

git clone https://github.com/psforever/PSFPortal
cd PSFPortal/
npm install

Next, install PostgreSQL from your package manager. Load the DB schema into a fresh database (in this case named psforever):

psql psforever < db/schema.sql

Before running, you will need to create a .env file like this:

PGUSER=...
PGHOST=...
PGPASSWORD=...
PGDATABASE=...
PGPORT=...
COOKIE_SECRET=<make this very long and random>

Never share/release/commit your .env file.

Finally, run the following commands:

# Will start the frontend Webpack builder with hot reload
npm run dev
# And in another terminal, will start the backend server
npm run dev-server

Production Running/Building

Follow the same steps as above, but instead run npm run production at the very end.