From 6c93be8b91b442649c208fc890634fe51e828f6a Mon Sep 17 00:00:00 2001 From: Smaug Date: Tue, 27 Jan 2026 21:03:32 +0100 Subject: [PATCH] feat(service): add alexandrie template (#8021) Co-authored-by: peaklabs-dev <122374094+peaklabs-dev@users.noreply.github.com> --- public/svgs/alexandrie.svg | 1 + templates/compose/alexandrie.yaml | 93 +++++++++++++++++++++++++++++++ 2 files changed, 94 insertions(+) create mode 100644 public/svgs/alexandrie.svg create mode 100644 templates/compose/alexandrie.yaml diff --git a/public/svgs/alexandrie.svg b/public/svgs/alexandrie.svg new file mode 100644 index 000000000..404fc5e2b --- /dev/null +++ b/public/svgs/alexandrie.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/compose/alexandrie.yaml b/templates/compose/alexandrie.yaml new file mode 100644 index 000000000..9d7d59227 --- /dev/null +++ b/templates/compose/alexandrie.yaml @@ -0,0 +1,93 @@ +# documentation: https://github.com/Smaug6739/Alexandrie/tree/main/docs +# slogan: A powerful Markdown workspace designed for speed, clarity, and creativity. +# category: productivity +# tags: note-taking, markdown, knowledge-management, personal-wiki, productivity +# logo: svgs/alexandrie.svg +# port: 8200 + +services: + frontend: + image: ghcr.io/smaug6739/alexandrie-frontend:v8.4.1 + environment: + - SERVICE_URL_FRONTEND_8200 + - PORT=8200 + - NUXT_PUBLIC_CONFIG_DISABLE_SIGNUP_PAGE=${CONFIG_DISABLE_SIGNUP:-false} + - NUXT_PUBLIC_CONFIG_DISABLE_LANDING_PAGE=${CONFIG_DISABLE_LANDING:-false} + - NUXT_PUBLIC_BASE_API=${SERVICE_URL_BACKEND} + - NUXT_PUBLIC_BASE_CDN=${SERVICE_URL_RUSTFS} + - NUXT_PUBLIC_CDN_ENDPOINT=${CDN_ENDPOINT:-/alexandrie/} + - NUXT_PUBLIC_BASE_URL=${SERVICE_URL_FRONTEND} + depends_on: + - backend + + backend: + image: ghcr.io/smaug6739/alexandrie-backend:v8.4.1 + environment: + - SERVICE_URL_BACKEND_8201 + - BACKEND_PORT=8201 + - GIN_MODE=release + - JWT_SECRET=${SERVICE_PASSWORD_JWT} + - COOKIE_DOMAIN=${SERVICE_URL_FRONTEND} + - FRONTEND_URL=${SERVICE_URL_FRONTEND} + - ALLOW_UNSECURE=${ALLOW_UNSECURE:-false} + - DATABASE_HOST=mysql + - DATABASE_PORT=3306 + - DATABASE_NAME=${MYSQL_DATABASE:-alexandrie-db} + - DATABASE_USER=${SERVICE_USER_MYSQL} + - DATABASE_PASSWORD=${SERVICE_PASSWORD_MYSQL} + - MINIO_ENDPOINT=rustfs:9000 + - MINIO_PUBLIC_URL=${SERVICE_URL_RUSTFS} + - MINIO_SECURE=${MINIO_SECURE:-false} + - MINIO_ACCESSKEY=${SERVICE_USER_RUSTFS} + - MINIO_SECRETKEY=${SERVICE_PASSWORD_RUSTFS} + - MINIO_BUCKET=${MINIO_BUCKET:-alexandrie} + - SMTP_HOST=${SMTP_HOST:-} + - SMTP_MAIL=${SMTP_MAIL:-} + - SMTP_PASSWORD=${SMTP_PASSWORD:-} + depends_on: + mysql: + condition: service_healthy + rustfs: + condition: service_healthy + + mysql: + image: mysql:8.0 + environment: + - MYSQL_ROOT_PASSWORD=${SERVICE_PASSWORD_MYSQLROOT} + - MYSQL_USER=${SERVICE_USER_MYSQL} + - MYSQL_PASSWORD=${SERVICE_PASSWORD_MYSQL} + - MYSQL_DATABASE=${MYSQL_DATABASE:-alexandrie-db} + volumes: + - mysql-data:/var/lib/mysql + healthcheck: + test: + - CMD + - mysqladmin + - ping + - "-h" + - localhost + - "-u" + - root + - "-p${SERVICE_PASSWORD_MYSQLROOT}" + timeout: 5s + interval: 10s + retries: 5 + + rustfs: + image: rustfs/rustfs:1.0.0-alpha.81 + environment: + - SERVICE_URL_RUSTFS_9000 + - RUSTFS_ACCESS_KEY=${SERVICE_USER_RUSTFS} + - RUSTFS_SECRET_KEY=${SERVICE_PASSWORD_RUSTFS} + - RUSTFS_CONSOLE_ENABLE=${RUSTFS_CONSOLE_ENABLE:-false} + - RUSTFS_LOG_LEVEL=${RUSTFS_LOG_LEVEL:-info} + volumes: + - rustfs-data:/data + - rustfs-logs:/logs + healthcheck: + test: + - CMD-SHELL + - "nc -z localhost 9000 || exit 1" + interval: 10s + timeout: 5s + retries: 5