feat(db): Implement schema migrations and add Projects section

Introduces a custom migration system for SQLite, allowing incremental and safe schema evolution.
Adds a new 'Projects' section to the CV, including database tables, public UI, and full management
in the admin dashboard with live editing, drag-and-drop reordering, and collapsible forms.

Updates:
-  and  for schema management.
-  with  script.
-  to use migrations.
-  to rely on migrations.
-  and  for new project data operations.
-  and  for Projects UI.
-  and  to integrate the Projects section.

Also updates:
-  to automatically import Keycloak realm on startup.
-  for the Elysia app build.
-  with refined print styles (omitting socials and about).
This commit is contained in:
Tuan-Dat Tran
2025-11-22 11:20:03 +01:00
parent be0be3bd00
commit 3de8f6a971
18 changed files with 684 additions and 136 deletions

View File

@@ -14,7 +14,9 @@ services:
keycloak:
image: quay.io/keycloak/keycloak:23.0
command: start-dev
command: start-dev --import-realm
volumes:
- ./realm-export.json:/opt/keycloak/data/import/realm.json
environment:
KC_DB: postgres
KC_DB_URL: jdbc:postgresql://postgres:5432/keycloak
@@ -22,6 +24,7 @@ services:
KC_DB_PASSWORD: password
KEYCLOAK_ADMIN: admin
KEYCLOAK_ADMIN_PASSWORD: admin
KC_HOSTNAME_URL: http://localhost:8080/
ports:
- "8080:8080"
depends_on:
@@ -34,4 +37,4 @@ volumes:
networks:
keycloak_network:
driver: bridge
driver: bridge