Files
evidencija-rezija/README.md

40 lines
1.3 KiB
Markdown

# ToDo
* year pagination
# Authentication
Authentication consists of the following parts:
* `next-auth` boilerplate
* `middleware.ts` = hooks-up `next-auth` into the page processing pipeline - user session is checked before any page is rendered
* `auth.ts` = defines how the authentication is done, and how session is checked (used by middleware)
* `/app/api/[...nextauth]/route.ts` = defines route which shows an authentication form
Source:
* [How to Implement Google Authentication in a Next.js App Using NextAuth](https://www.telerik.com/blogs/how-to-implement-google-authentication-nextjs-app-using-nextauth)
* [Next Js 14 Authentication on Edge Runtime](https://www.youtube.com/watch?v=rEopVx0FKGI)
# Multi-User Support
Each location record is marked with a user ID.
All the actions user `withUser` to fetch user ID, which is then used in all the DB operations.
# Deploying
The deployment is done via Docker:
* build docker image
* deploy Docker service
## Building Docker image
Run the following command:
```bash
docker build . -t utility-bills-tracker:1.0.0
```
The image will be stored in the local Docker instance.
## Deploying Docker service
Run the following command:
```bash
HOSTNAME=0.0.0.0 \
NEXTAUTH_URL=https://rezije.app \
docker stack deploy \
-c docker-compose-deploy.yml \
utility-bills-tracker
```