From 0fd1f84da325dccfb9939697c0adb96ef446999a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Albert=20Rag=C3=A1ny-N=C3=A9meth?= Date: Fri, 17 Apr 2026 23:30:23 +0200 Subject: [PATCH 1/4] Fix lint --- public/js/group/create.js | 10 +++++----- public/js/md-editor.js | 2 +- public/js/room/calendar.js | 12 ++++++------ public/js/tags.js | 2 +- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/public/js/group/create.js b/public/js/group/create.js index 00f379da..938508d8 100644 --- a/public/js/group/create.js +++ b/public/js/group/create.js @@ -1,9 +1,9 @@ // eslint-disable-next-line @typescript-eslint/no-unused-vars -import FullCalendar from "https://cdn.jsdelivr.net/npm/fullcalendar@5.7.0"; -import { Calendar } from "https://cdn.jsdelivr.net/npm/@fullcalendar/core@5.7.0"; -import dayGridPlugin from "https://cdn.jsdelivr.net/npm/@fullcalendar/daygrid@5.7.0"; -import timeGridPlugin from "https://cdn.jsdelivr.net/npm/@fullcalendar/timegrid@5.7.0"; -import listPlugin from "https://cdn.jsdelivr.net/npm/@fullcalendar/list@5.7.0"; +import FullCalendar from 'https://cdn.jsdelivr.net/npm/fullcalendar@5.7.0' +import { Calendar } from 'https://cdn.jsdelivr.net/npm/@fullcalendar/core@5.7.0' +import dayGridPlugin from 'https://cdn.jsdelivr.net/npm/@fullcalendar/daygrid@5.7.0' +import timeGridPlugin from 'https://cdn.jsdelivr.net/npm/@fullcalendar/timegrid@5.7.0' +import listPlugin from 'https://cdn.jsdelivr.net/npm/@fullcalendar/list@5.7.0' let meetingPlace = 'floor' const MEETING_PLACES = ['floor', 'link', 'other'] diff --git a/public/js/md-editor.js b/public/js/md-editor.js index 72c1346d..77462905 100644 --- a/public/js/md-editor.js +++ b/public/js/md-editor.js @@ -1,4 +1,4 @@ -import EasyMDE from "https://cdn.jsdelivr.net/npm/easymde@2.15.0"; +import EasyMDE from 'https://cdn.jsdelivr.net/npm/easymde@2.15.0' const submitBtn = document.getElementById('submitBtn') const textArea = document.getElementById('desc') diff --git a/public/js/room/calendar.js b/public/js/room/calendar.js index 002c79be..89a6d9be 100644 --- a/public/js/room/calendar.js +++ b/public/js/room/calendar.js @@ -1,10 +1,10 @@ // eslint-disable-next-line @typescript-eslint/no-unused-vars -import FullCalendar from "https://cdn.jsdelivr.net/npm/fullcalendar@5.7.0"; -import { Calendar } from "https://cdn.jsdelivr.net/npm/@fullcalendar/core@5.7.0"; -import dayGridPlugin from "https://cdn.jsdelivr.net/npm/@fullcalendar/daygrid@5.7.0"; -import timeGridPlugin from "https://cdn.jsdelivr.net/npm/@fullcalendar/timegrid@5.7.0"; -import listPlugin from "https://cdn.jsdelivr.net/npm/@fullcalendar/list@5.7.0"; -import interactionPlugin from "https://cdn.jsdelivr.net/npm/@fullcalendar/interaction@5.7.0"; +import FullCalendar from 'https://cdn.jsdelivr.net/npm/fullcalendar@5.7.0' +import { Calendar } from 'https://cdn.jsdelivr.net/npm/@fullcalendar/core@5.7.0' +import dayGridPlugin from 'https://cdn.jsdelivr.net/npm/@fullcalendar/daygrid@5.7.0' +import timeGridPlugin from 'https://cdn.jsdelivr.net/npm/@fullcalendar/timegrid@5.7.0' +import listPlugin from 'https://cdn.jsdelivr.net/npm/@fullcalendar/list@5.7.0' +import interactionPlugin from 'https://cdn.jsdelivr.net/npm/@fullcalendar/interaction@5.7.0' const commonCalendarOptions = { plugins: [dayGridPlugin, timeGridPlugin, listPlugin, interactionPlugin], diff --git a/public/js/tags.js b/public/js/tags.js index 7a1f9950..10c158cb 100644 --- a/public/js/tags.js +++ b/public/js/tags.js @@ -1,4 +1,4 @@ -import Tagify from "https://cdn.jsdelivr.net/npm/@yaireo/tagify@3.22.0"; +import Tagify from 'https://cdn.jsdelivr.net/npm/@yaireo/tagify@3.22.0' function transformTag(tagData) { tagData.style = 'line-height: normal;' From c232fd0b4a00d3aae4be400fc64376075345ee65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Albert=20Rag=C3=A1ny-N=C3=A9meth?= Date: Fri, 17 Apr 2026 23:33:24 +0200 Subject: [PATCH 2/4] Revert "fix: use 5.7.0 of fullcalendar (#993)" This reverts commit 0618f19f --- README.md | 5 +++-- docker-compose.yml | 25 ++++++++++++++++--------- public/js/group/create.js | 10 +++++----- public/js/room/calendar.js | 12 ++++++------ views/group/new.pug | 2 +- views/room/calendar.pug | 2 +- 6 files changed, 32 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index 26bcd5e0..c5adf1d0 100644 --- a/README.md +++ b/README.md @@ -68,13 +68,14 @@ Run `yarn watch` to run reload the server on file changes. Note: this deletes th - Set up a `.env` file based on `.env.example` with real values. ```bash -docker compose up -d --build +docker-compose build +docker-compose up ``` While the containers are running, execute the following: ```bash -docker compose run web bash -c "yarn run migrate" +docker-compose run tanulo bash -c "yarn run migrate" ``` ## Debugging diff --git a/docker-compose.yml b/docker-compose.yml index 109625d6..e27659b3 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,21 +7,28 @@ services: dockerfile: Dockerfile ports: - "${PORT}:${PORT}" - env_file: - - .env + environment: + - CLIENT_ID=${CLIENT_ID} + - CLIENT_SECRET=${CLIENT_SECRET} + - CALLBACK_URL=${CALLBACK_URL} + - SESSION_SECRET=${SESSION_SECRET} networks: - tanulo-network restart: always - db: - image: postgres:12 + postgres: + image: postgres restart: always - env_file: - - .env + environment: + POSTGRES_USER: "${DB_USERNAME}" + POSTGRES_PASSWORD: "${DB_PASSWORD}" + POSTGRES_DB: "${DB_DATABASE}" networks: - - tanulo-network + tanulo-network: + aliases: + - postgresql.db volumes: - - tanulo_db_folder:/var/lib/postgresql/tanulo-data + - postgres:/var/lib/postgresql/tanulo-data volumes: - tanulo_db_folder: + postgres: networks: tanulo-network: diff --git a/public/js/group/create.js b/public/js/group/create.js index 938508d8..beb8370f 100644 --- a/public/js/group/create.js +++ b/public/js/group/create.js @@ -1,9 +1,9 @@ // eslint-disable-next-line @typescript-eslint/no-unused-vars -import FullCalendar from 'https://cdn.jsdelivr.net/npm/fullcalendar@5.7.0' -import { Calendar } from 'https://cdn.jsdelivr.net/npm/@fullcalendar/core@5.7.0' -import dayGridPlugin from 'https://cdn.jsdelivr.net/npm/@fullcalendar/daygrid@5.7.0' -import timeGridPlugin from 'https://cdn.jsdelivr.net/npm/@fullcalendar/timegrid@5.7.0' -import listPlugin from 'https://cdn.jsdelivr.net/npm/@fullcalendar/list@5.7.0' +import FullCalendar from 'https://cdn.jsdelivr.net/npm/fullcalendar@5.6.0' +import { Calendar } from 'https://cdn.jsdelivr.net/npm/@fullcalendar/core@5.6.0' +import dayGridPlugin from 'https://cdn.jsdelivr.net/npm/@fullcalendar/daygrid@5.6.0' +import timeGridPlugin from 'https://cdn.jsdelivr.net/npm/@fullcalendar/timegrid@5.6.0' +import listPlugin from 'https://cdn.jsdelivr.net/npm/@fullcalendar/list@5.6.0' let meetingPlace = 'floor' const MEETING_PLACES = ['floor', 'link', 'other'] diff --git a/public/js/room/calendar.js b/public/js/room/calendar.js index 89a6d9be..d67ddd9b 100644 --- a/public/js/room/calendar.js +++ b/public/js/room/calendar.js @@ -1,10 +1,10 @@ // eslint-disable-next-line @typescript-eslint/no-unused-vars -import FullCalendar from 'https://cdn.jsdelivr.net/npm/fullcalendar@5.7.0' -import { Calendar } from 'https://cdn.jsdelivr.net/npm/@fullcalendar/core@5.7.0' -import dayGridPlugin from 'https://cdn.jsdelivr.net/npm/@fullcalendar/daygrid@5.7.0' -import timeGridPlugin from 'https://cdn.jsdelivr.net/npm/@fullcalendar/timegrid@5.7.0' -import listPlugin from 'https://cdn.jsdelivr.net/npm/@fullcalendar/list@5.7.0' -import interactionPlugin from 'https://cdn.jsdelivr.net/npm/@fullcalendar/interaction@5.7.0' +import FullCalendar from 'https://cdn.jsdelivr.net/npm/fullcalendar@5.6.0' +import { Calendar } from 'https://cdn.jsdelivr.net/npm/@fullcalendar/core@5.6.0' +import dayGridPlugin from 'https://cdn.jsdelivr.net/npm/@fullcalendar/daygrid@5.6.0' +import timeGridPlugin from 'https://cdn.jsdelivr.net/npm/@fullcalendar/timegrid@5.6.0' +import listPlugin from 'https://cdn.jsdelivr.net/npm/@fullcalendar/list@5.6.0' +import interactionPlugin from 'https://cdn.jsdelivr.net/npm/@fullcalendar/interaction@5.6.0' const commonCalendarOptions = { plugins: [dayGridPlugin, timeGridPlugin, listPlugin, interactionPlugin], diff --git a/views/group/new.pug b/views/group/new.pug index d67382e3..d4a4695e 100644 --- a/views/group/new.pug +++ b/views/group/new.pug @@ -2,7 +2,7 @@ extends ../layouts/main block styles link(rel="stylesheet" href="https://unpkg.com/easymde@2.15.0/dist/easymde.min.css") - link(rel="stylesheet", href="https://cdn.jsdelivr.net/npm/fullcalendar@5.7.0/main.min.css") + link(rel="stylesheet", href="https://cdn.jsdelivr.net/npm/fullcalendar@5.6.0/main.min.css") link(rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@yaireo/tagify@3.22.0/dist/tagify.css") link(rel="stylesheet" href="https://cdn.jsdelivr.net/npm/flatpickr/dist/flatpickr.min.css") link(rel="stylesheet" href="https://npmcdn.com/flatpickr/dist/themes/material_blue.css") diff --git a/views/room/calendar.pug b/views/room/calendar.pug index 6fe50972..c4a4903c 100644 --- a/views/room/calendar.pug +++ b/views/room/calendar.pug @@ -1,7 +1,7 @@ extend ../layouts/main block styles - link(rel="stylesheet", href="https://cdn.jsdelivr.net/npm/fullcalendar@5.7.0/main.min.css") + link(rel="stylesheet", href="https://cdn.jsdelivr.net/npm/fullcalendar@5.6.0/main.min.css") block content div(class="ml-4") From 8e2e36d95c3d53640b77514b5b75c3bb878b98c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Albert=20Rag=C3=A1ny-N=C3=A9meth?= Date: Fri, 17 Apr 2026 23:48:47 +0200 Subject: [PATCH 3/4] Use ESM imports --- public/js/group/create.js | 10 +++++----- public/js/md-editor.js | 2 +- public/js/room/calendar.js | 12 ++++++------ public/js/tags.js | 2 +- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/public/js/group/create.js b/public/js/group/create.js index beb8370f..2c4ff1a3 100644 --- a/public/js/group/create.js +++ b/public/js/group/create.js @@ -1,9 +1,9 @@ // eslint-disable-next-line @typescript-eslint/no-unused-vars -import FullCalendar from 'https://cdn.jsdelivr.net/npm/fullcalendar@5.6.0' -import { Calendar } from 'https://cdn.jsdelivr.net/npm/@fullcalendar/core@5.6.0' -import dayGridPlugin from 'https://cdn.jsdelivr.net/npm/@fullcalendar/daygrid@5.6.0' -import timeGridPlugin from 'https://cdn.jsdelivr.net/npm/@fullcalendar/timegrid@5.6.0' -import listPlugin from 'https://cdn.jsdelivr.net/npm/@fullcalendar/list@5.6.0' +import 'https://cdn.jsdelivr.net/npm/fullcalendar@5.6.0' +import { Calendar } from 'https://cdn.jsdelivr.net/npm/@fullcalendar/core@5.6.0/+esm' +import dayGridPlugin from 'https://cdn.jsdelivr.net/npm/@fullcalendar/daygrid@5.6.0/+esm' +import timeGridPlugin from 'https://cdn.jsdelivr.net/npm/@fullcalendar/timegrid@5.6.0/+esm' +import listPlugin from 'https://cdn.jsdelivr.net/npm/@fullcalendar/list@5.6.0/+esm' let meetingPlace = 'floor' const MEETING_PLACES = ['floor', 'link', 'other'] diff --git a/public/js/md-editor.js b/public/js/md-editor.js index 77462905..95ba574d 100644 --- a/public/js/md-editor.js +++ b/public/js/md-editor.js @@ -1,4 +1,4 @@ -import EasyMDE from 'https://cdn.jsdelivr.net/npm/easymde@2.15.0' +import EasyMDE from 'https://cdn.jsdelivr.net/npm/easymde@2.15.0/+esm' const submitBtn = document.getElementById('submitBtn') const textArea = document.getElementById('desc') diff --git a/public/js/room/calendar.js b/public/js/room/calendar.js index d67ddd9b..556f1766 100644 --- a/public/js/room/calendar.js +++ b/public/js/room/calendar.js @@ -1,10 +1,10 @@ // eslint-disable-next-line @typescript-eslint/no-unused-vars -import FullCalendar from 'https://cdn.jsdelivr.net/npm/fullcalendar@5.6.0' -import { Calendar } from 'https://cdn.jsdelivr.net/npm/@fullcalendar/core@5.6.0' -import dayGridPlugin from 'https://cdn.jsdelivr.net/npm/@fullcalendar/daygrid@5.6.0' -import timeGridPlugin from 'https://cdn.jsdelivr.net/npm/@fullcalendar/timegrid@5.6.0' -import listPlugin from 'https://cdn.jsdelivr.net/npm/@fullcalendar/list@5.6.0' -import interactionPlugin from 'https://cdn.jsdelivr.net/npm/@fullcalendar/interaction@5.6.0' +import 'https://cdn.jsdelivr.net/npm/fullcalendar@5.6.0' +import { Calendar } from 'https://cdn.jsdelivr.net/npm/@fullcalendar/core@5.6.0/+esm' +import dayGridPlugin from 'https://cdn.jsdelivr.net/npm/@fullcalendar/daygrid@5.6.0/+esm' +import timeGridPlugin from 'https://cdn.jsdelivr.net/npm/@fullcalendar/timegrid@5.6.0/+esm' +import listPlugin from 'https://cdn.jsdelivr.net/npm/@fullcalendar/list@5.6.0/+esm' +import interactionPlugin from 'https://cdn.jsdelivr.net/npm/@fullcalendar/interaction@5.6.0/+esm' const commonCalendarOptions = { plugins: [dayGridPlugin, timeGridPlugin, listPlugin, interactionPlugin], diff --git a/public/js/tags.js b/public/js/tags.js index 10c158cb..a8288464 100644 --- a/public/js/tags.js +++ b/public/js/tags.js @@ -1,4 +1,4 @@ -import Tagify from 'https://cdn.jsdelivr.net/npm/@yaireo/tagify@3.22.0' +import Tagify from 'https://cdn.jsdelivr.net/npm/@yaireo/tagify@3.22.0/+esm' function transformTag(tagData) { tagData.style = 'line-height: normal;' From a7e8acbef24856cf061f54953a5ea656e9a6182d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Albert=20Rag=C3=A1ny-N=C3=A9meth?= Date: Sat, 18 Apr 2026 00:09:25 +0200 Subject: [PATCH 4/4] Fix Docker --- Dockerfile | 2 +- docker-compose.yml | 7 ++----- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index 005c7adf..5cb8203a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM node:14 +FROM node:20 RUN mkdir /usr/src/app WORKDIR /usr/src/app ENV PATH /usr/src/app/node_modules/.bin:$PATH diff --git a/docker-compose.yml b/docker-compose.yml index e27659b3..20bb634a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,11 +7,8 @@ services: dockerfile: Dockerfile ports: - "${PORT}:${PORT}" - environment: - - CLIENT_ID=${CLIENT_ID} - - CLIENT_SECRET=${CLIENT_SECRET} - - CALLBACK_URL=${CALLBACK_URL} - - SESSION_SECRET=${SESSION_SECRET} + env_file: + - .env networks: - tanulo-network restart: always