- Node.js / Express.js
- SQLite
- Passport.js
- SASS / PicoCSS
- Docker / Caddy
- Jest
npm install
npm run db:initnpm run dev: Sass Wactcher, Nodemon, and seeded data.npm test: Executes Jest test suite (initializes database.test.db).npm run sass:build: Compiles SASS to public directory.npm run apidoc: Generates the API documentation html file from the openapi.json file.
This is optional and is only intended for deploying to a remote server (It allows local testing, without pushing to the server).
Deployment requires a .env.deploy file containing SERVER_IP, SERVER_PASSWORD, and DOMAIN_NAME.
-d, --dev: Sets NODE_ENV=dev (equivalent to running withnpm run dev).-c, --clear: Removes remote data/ directory before deployment. (Use with caution!)-l, --logs: Streams remote docker logs.-h, --help: Displays usage information.
public/: Frontend assets and client-side logic.js/widgets/: Reusable UI components.js/pages/: Page-specific logic.
server/: Express application and API routes.server/db/: SQLite drivers and initialization scripts.src/: SASS partials.tests/: Integration and unit tests.Caddyfile: Reverse proxy and TLS configuration.Dockerfile: Container image definition.docker-compose.yml: Service definitions.
The API documentation is generated from public/openapi.json.
- View the documentation: public/openapi.html
- Regenerate documentation:
npm run apidoc
Apache-2.0