From 7f21b27bb8333bc0529e0468364f260100d202b6 Mon Sep 17 00:00:00 2001 From: Raj Nandan Sharma Date: Thu, 12 Mar 2026 14:39:45 +0530 Subject: [PATCH] chore: integrate Zeabur deployment options in documentation and templates --- README.md | 1 + src/routes/(docs)/docs/+page.svelte | 7 + .../v4/getting-started/introduction.md | 5 + .../docs/content/v4/setup/deployment.md | 1 + zeabur-template.yaml | 160 ++++++++++++++++++ 5 files changed, 174 insertions(+) create mode 100644 zeabur-template.yaml diff --git a/README.md b/README.md index e021d9ac..db55fec6 100644 --- a/README.md +++ b/README.md @@ -173,6 +173,7 @@ For the full quick start (including local Docker builds and dev mode), see the d ## One Click Deployment [![Deploy on Railway](https://railway.com/button.svg)](https://railway.com/deploy/spSvic?referralCode=1Pn7vs&utm_medium=integration&utm_source=template&utm_campaign=generic) +[![Deploy on Zeabur](https://zeabur.com/button.svg)](https://zeabur.com/templates/1YRTMI?referralCode=rajnandan1) ## Features diff --git a/src/routes/(docs)/docs/+page.svelte b/src/routes/(docs)/docs/+page.svelte index 733a4b54..a08036fb 100644 --- a/src/routes/(docs)/docs/+page.svelte +++ b/src/routes/(docs)/docs/+page.svelte @@ -319,6 +319,13 @@ > Deploy on Railway + + Deploy on Zeabur + {#if getMetrics().length > 0} diff --git a/src/routes/(docs)/docs/content/v4/getting-started/introduction.md b/src/routes/(docs)/docs/content/v4/getting-started/introduction.md index ca020d89..ff571d8b 100644 --- a/src/routes/(docs)/docs/content/v4/getting-started/introduction.md +++ b/src/routes/(docs)/docs/content/v4/getting-started/introduction.md @@ -22,6 +22,11 @@ Kener is built and maintained by [Rajnandan1](https://www.rajnandan.com). It is 6. Discord - [join](https://discord.gg/uSTpnuK9XR) 7. Contribution - [contribute](/docs/v4/getting-started/contributing) +## One Click Deployment {#one-click-deployment} + +[![Deploy on Railway](https://railway.com/button.svg)](https://railway.com/deploy/spSvic?referralCode=1Pn7vs&utm_medium=integration&utm_source=template&utm_campaign=generic) +[![Deploy on Zeabur](https://zeabur.com/button.svg)](https://zeabur.com/templates/1YRTMI?referralCode=rajnandan1) + Ready to get started? Head over to the [Quick Start](/docs/v4/getting-started/quick-start) guide. ## Ways to Sponsor {#ways-to-sponsor} diff --git a/src/routes/(docs)/docs/content/v4/setup/deployment.md b/src/routes/(docs)/docs/content/v4/setup/deployment.md index c8639b5c..8de3ab68 100644 --- a/src/routes/(docs)/docs/content/v4/setup/deployment.md +++ b/src/routes/(docs)/docs/content/v4/setup/deployment.md @@ -4,6 +4,7 @@ description: Deploy Kener with Docker or Node.js and verify service health with --- [![Deploy on Railway](https://railway.com/button.svg)](https://railway.com/deploy/spSvic?referralCode=1Pn7vs&utm_medium=integration&utm_source=template&utm_campaign=generic) +[![Deploy on Zeabur](https://zeabur.com/button.svg)](https://zeabur.com/templates/1YRTMI?referralCode=rajnandan1) Use this guide when moving from local testing to production. It includes `.env` examples for PostgreSQL, MySQL, subpath deployments, and both SMTP/Resend email providers. diff --git a/zeabur-template.yaml b/zeabur-template.yaml new file mode 100644 index 00000000..78bb29b8 --- /dev/null +++ b/zeabur-template.yaml @@ -0,0 +1,160 @@ +# yaml-language-server: $schema=https://schema.zeabur.app/template.json +apiVersion: zeabur.com/v1 +kind: Template +metadata: + name: Kener +spec: + description: Stunning status pages, batteries included! + icon: https://raw.githubusercontent.com/rajnandan1/kener/main/static/kener.svg + coverImage: https://raw.githubusercontent.com/rajnandan1/kener/main/static/og.jpg + tags: + - Uptime + - Monitor + - Status Page + - Incident Management + - DevOps + - SvelteKit + - Open Source + - Dashboard + readme: "# Kener\n\nKener is a sleek and lightweight status page system built with SvelteKit and NodeJS. It's not here to replace heavyweights like Datadog or Atlassian but rather to offer a simple, modern, and hassle-free way to set up a great-looking status page with minimal effort.\n\nDesigned with ease of use and customization in mind, Kener provides all the essential features you'd expect from a status page—without unnecessary complexity.\n\n[\U0001F3E0 Homepage](https://kener.ing/) | [GitHub](https://github.com/rajnandan1/kener)\n\n## Why Kener?\n\n- Real-time monitoring (API, Ping, TCP, DNS, SSL, SQL, and more)\n- Uptime tracking and latency metrics\n- Incident and maintenance management\n- Customizable dashboards with theming\n- Internationalization (20+ languages)\n- Embeddable widgets and status badges\n- Email notifications (SMTP / Resend)\n- Webhook and Slack/Discord alerts\n\n## After Deployment\n\n1. Open your Kener domain in a browser.\n2. Complete the initial setup wizard to create your admin account.\n3. Add your first monitor from the management dashboard.\n\n## Documentation\n\nFull docs: [https://kener.ing/docs](https://kener.ing/docs)\n\n## Support Kener\n\nKener is built and maintained by Rajnandan1. If you find it useful, consider supporting the project:\n\n- [GitHub Sponsors](https://github.com/sponsors/rajnandan1)\n- [Buy Me a Coffee](https://www.buymeacoffee.com/rajnandan1)\n- [PayPal](https://www.paypal.com/paypalme/rajnandan1)\n- [Star on GitHub](https://github.com/rajnandan1/kener)\n" + variables: + - key: PUBLIC_DOMAIN + type: DOMAIN + name: Public Domain + description: The URL of Kener + services: + - name: Kener + icon: https://raw.githubusercontent.com/rajnandan1/kener/main/static/kener.svg + dependencies: + - postgresql + - redis + template: PREBUILT + spec: + source: + image: rajnandan1/kener:latest + ports: + - id: web + port: 3000 + type: HTTP + env: + DATABASE_URL: + default: ${POSTGRES_CONNECTION_STRING} + KENER_SECRET_KEY: + default: ${PASSWORD} + ORIGIN: + default: https://${ZEABUR_WEB_DOMAIN} + REDIS_URL: + default: ${REDIS_CONNECTION_STRING} + domainKey: PUBLIC_DOMAIN + - name: postgresql + icon: https://cdn.zeabur.com/marketplace/postgresql.svg + template: PREBUILT + spec: + source: + image: postgres:18 + ports: + - id: database + port: 5432 + type: TCP + volumes: + - id: data + dir: /var/lib/postgresql/data + instructions: + - title: Connection String + content: postgresql://${POSTGRES_USERNAME}:${POSTGRES_PASSWORD}@${PORT_FORWARDED_HOSTNAME}:${DATABASE_PORT_FORWARDED_PORT}/${POSTGRES_DATABASE} + - title: PostgreSQL Connect Command + content: psql "postgresql://${POSTGRES_USERNAME}:${POSTGRES_PASSWORD}@${PORT_FORWARDED_HOSTNAME}:${DATABASE_PORT_FORWARDED_PORT}/${POSTGRES_DATABASE}" + - title: PostgreSQL username + content: ${POSTGRES_USERNAME} + - title: PostgreSQL password + content: ${POSTGRES_PASSWORD} + - title: PostgreSQL database + content: ${POSTGRES_DATABASE} + - title: PostgreSQL host + content: ${PORT_FORWARDED_HOSTNAME} + - title: PostgreSQL port + content: ${DATABASE_PORT_FORWARDED_PORT} + env: + PGDATA: + default: /var/lib/postgresql/data/pgdata + expose: false + POSTGRES_CONNECTION_STRING: + default: postgresql://${POSTGRES_USERNAME}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DATABASE} + expose: true + POSTGRES_DATABASE: + default: ${POSTGRES_DB} + expose: true + POSTGRES_DB: + default: kener + POSTGRES_HOST: + default: ${CONTAINER_HOSTNAME} + expose: true + POSTGRES_PASSWORD: + default: ${PASSWORD} + expose: true + POSTGRES_PORT: + default: ${DATABASE_PORT} + expose: true + POSTGRES_URI: + default: ${POSTGRES_CONNECTION_STRING} + expose: true + POSTGRES_USER: + default: root + POSTGRES_USERNAME: + default: ${POSTGRES_USER} + expose: true + - name: redis + icon: https://raw.githubusercontent.com/zeabur/service-icons/main/marketplace/redis.svg + template: PREBUILT + spec: + source: + image: redis/redis-stack-server:latest + ports: + - id: database + port: 6379 + type: TCP + volumes: + - id: data + dir: /data + instructions: + - title: Command to connect to your Redis + content: redis-cli -h ${PORT_FORWARDED_HOSTNAME} -p ${DATABASE_PORT_FORWARDED_PORT} -a ${REDIS_PASSWORD} + - title: Redis Connection String + content: redis://:${REDIS_PASSWORD}@${PORT_FORWARDED_HOSTNAME}:${DATABASE_PORT_FORWARDED_PORT} + - title: Redis password + content: ${REDIS_PASSWORD} + - title: Redis host + content: ${PORT_FORWARDED_HOSTNAME} + - title: Redis port + content: ${DATABASE_PORT_FORWARDED_PORT} + env: + CONFFILE: + default: /etc/redis-stack.conf + REDIS_ARGS: + default: --requirepass ${REDIS_PASSWORD} + REDIS_CONNECTION_STRING: + default: redis://:${REDIS_PASSWORD}@${REDIS_HOST}:${REDIS_PORT} + expose: true + REDIS_HOST: + default: ${CONTAINER_HOSTNAME} + expose: true + REDIS_PASSWORD: + default: ${PASSWORD} + expose: true + REDIS_PORT: + default: ${DATABASE_PORT} + expose: true + REDIS_URI: + default: ${REDIS_CONNECTION_STRING} + expose: true + configs: + - path: /etc/redis-stack.conf + template: | + port 6379 + daemonize no + permission: null + envsubst: null + instructions: + - type: DOMAIN + title: Kener Status Page + content: ${PUBLIC_DOMAIN}