Note: Since commit 7dc3403, the auth process is overhauled. This removes some processes that the original website version showcased, including email OTPs, password hashing, and user registration approval.
This is a functional, full-stack website that is complete with an interactible calendar, a websocket notification and chat system and roles.
-
npm i
-
Create the MySQL server in a Podman container.
podman run -d --name=mysql1 -p 3306:3306 -v ./mysqldata:/var/lib/mysql:Z -e MYSQL_ROOT_PASSWORD=password -e MYSQL_ROOT_HOST=% -e MYSQL_USER=infodb_user -e MYSQL_PASSWORD=sqlpassword -e MYSQL_DATABASE=infodb mysql/mysql-server
-
Start the MySQL Podman container.
podman start mysql1
-
Only run this if the user did not generate
podman exec -it mysql1 mysql -uroot -p CREATE USER 'infodb_user'@'%' INDENTIFIED BY 'JB123';
-
Grant access to the database and to creating shadow databases.
GRANT CREATE, ALTER, DROP, REFERENCES, INDEX ON *.* TO 'infodb_user'@'%'; GRANT ALL PRIVILEGES ON infodb.* TO 'infodb_user'@'%';
-
Create the database structure using Prisma.
npx prisma db push npx prisma migrate dev --name init
To update the database on deployment, run npx prisma migrate deploy
. This will require that the migration files are included in the version control.