A blog software written in Typescript, with an Express.js backend and a Vue3 frontend.
- git
- Node 18 & NPM 8
- Docker with the Compose plugin
- 5000: dev server
- 5010: dev client
- 5020: dev postgres
- 5030: login portal (fake OAuth)
- 5040: dev SMTP server (HTTP port)
- 5041: dev SMTP server (SMTP port)
- 5100: production app
- 5120: production postgres
Unless otherwise stated, all commands should be executed in the root directory of the project.
npm install
In case you develop in an IntelliJ IDE, you can initialize or override your IDE settings with useful defaults by doing this:
# It's good practice to commit any uncommitted changes before doing this,
# so nothing is lost (should generally be safe, but not guaranteed)
git restore --overlay --source intellij .
Takes the contents of the intellij
branch
and overlays these files on the current worktree.
If you don't have a local copy of that branch, try replacing intellij
with origin/intellij
.
npm run build
At the moment this needs to be repeated every time the common
module changes.
npm start
See the OAuth docs for instructions how to setup login for different OAuth providers.
The project consists of three subprojects (in NPM terminology “workspaces”): client, server, common
NPM scripts of these workspaces can be run like this:
# Runs task ‹taskName› in ‹workspaceName› (`--workspace` can be shortened to `-w`)
npm run --workspace ‹workspaceName› ‹taskName›
# Runs task ‹taskName› in all workspaces (`--workspaces` can be shortened to `-ws`)
npm run --workspaces ‹taskName›