From ac07aa2ed86c1ff47af34a3e50533ea2ce4946ff Mon Sep 17 00:00:00 2001 From: Rabithua Date: Tue, 25 Nov 2025 20:03:46 +0800 Subject: [PATCH] feat: add Rote template - Add Rote deployment template with frontend, backend, and PostgreSQL services - Configure domain routing for frontend (port 80) and backend (port 3000) - Set up automatic password generation and environment variables - Use latest image tag by default - Add logo and metadata to meta.json --- blueprints/rote/docker-compose.yml | 45 +++++++++++++++++++++++++++++ blueprints/rote/rote.png | Bin 0 -> 55373 bytes blueprints/rote/template.toml | 23 +++++++++++++++ meta.json | 13 +++++++++ 4 files changed, 81 insertions(+) create mode 100644 blueprints/rote/docker-compose.yml create mode 100644 blueprints/rote/rote.png create mode 100644 blueprints/rote/template.toml diff --git a/blueprints/rote/docker-compose.yml b/blueprints/rote/docker-compose.yml new file mode 100644 index 00000000..a88354a0 --- /dev/null +++ b/blueprints/rote/docker-compose.yml @@ -0,0 +1,45 @@ +services: + rote-backend: + image: rabithua/rote-backend:${IMAGE_TAG:-latest} + pull_policy: always + environment: + POSTGRESQL_URL: postgresql://rote:${POSTGRES_PASSWORD}@rote-postgres:5432/rote + depends_on: + rote-postgres: + condition: service_healthy + restart: unless-stopped + command: + [ + "sh", + "-c", + "sleep 15 && bun run dist/scripts/runMigrations.js && bun run dist/server.js", + ] + + rote-frontend: + image: rabithua/rote-frontend:${IMAGE_TAG:-latest} + pull_policy: always + depends_on: + - rote-backend + environment: + # VITE_API_BASE must point to an address that reaches rote-backend (reverse-proxy domain or host IP:port) + VITE_API_BASE: ${VITE_API_BASE} + restart: unless-stopped + + rote-postgres: + image: postgres:17 + restart: unless-stopped + environment: + POSTGRES_USER: rote + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} + POSTGRES_DB: rote + volumes: + - rote-postgres-data:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U rote -d rote"] + interval: 5s + timeout: 3s + retries: 10 + start_period: 30s + +volumes: + rote-postgres-data: {} diff --git a/blueprints/rote/rote.png b/blueprints/rote/rote.png new file mode 100644 index 0000000000000000000000000000000000000000..9aca501f2a568bec6e7cf488508a5efee7a52b00 GIT binary patch literal 55373 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�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 Ly-4>C2c-QAh|nh- literal 0 HcmV?d00001 diff --git a/blueprints/rote/template.toml b/blueprints/rote/template.toml new file mode 100644 index 00000000..f1957c00 --- /dev/null +++ b/blueprints/rote/template.toml @@ -0,0 +1,23 @@ +[variables] +frontend_domain = "${domain}" +backend_domain = "${domain}" +postgres_password = "${password:32}" +image_tag = "latest" + +[config] +[[config.domains]] +serviceName = "rote-frontend" +port = 80 +host = "${frontend_domain}" + +[[config.domains]] +serviceName = "rote-backend" +port = 3000 +host = "${backend_domain}" + +[config.env] +POSTGRES_PASSWORD = "${postgres_password}" +IMAGE_TAG = "${image_tag}" +VITE_API_BASE = "https://${backend_domain}" + +[[config.mounts]] diff --git a/meta.json b/meta.json index ffc2d558..2cea5802 100644 --- a/meta.json +++ b/meta.json @@ -4761,6 +4761,19 @@ "chat" ] }, + { + "id": "rote", + "name": "Rote", + "version": "latest", + "description": "Rote is an open-source multi-platform personal note system featuring an open API, full data ownership, and effortless Docker deployment.", + "logo": "rote.png", + "links": { + "github": "https://github.com/Rabithua/Rote", + "website": "https://rote.ink", + "docs": "https://github.com/Rabithua/Rote/tree/main/doc/userguide" + }, + "tags": ["notes", "productivity", "postgres", "bun"] + }, { "id": "roundcube", "name": "Roundcube",