🤖 PR generated for branch `fix/cyrillic-fonts-dev-certs-and-page-head`.
### Changes Summary
- **Fonts**: Add Cyrillic glyph subsets for Lato, EB Garamond, and Fira
Code.
- **Dev**: Support remote Root CA and encrypted dev CA key in
`.env.dev`.
- **UI & Kits**: Add size variant to `Breadcrumbs` component and enlarge
`PageHead` breadcrumbs with tuned collapse scroll threshold.
- **ESLint**: Add `no-hanging-particles` i18n & markdown typography rule
with auto-fixer.
- **Content & i18n**: Apply `ru-text` editorial and typography polish
(em dashes, number ranges, «ё» restoration, non-breaking spaces) across
`services/www` and `services/docs`.
1.9 KiB
title, weight
| title | weight |
|---|---|
| Deployment & Operations | 2 |
Goal: Configure, deploy, and monitor a Quetza bot instance.
1. Environment Preparation
Quetza relies on environment variables for configuration. Never commit these to version control.
| Variable | Description | Required |
|---|---|---|
DISCORD_TOKEN |
Bot token from Discord Developer Portal | Yes |
CLIENT_ID |
Application ID for slash command registration | Yes |
LLAMA_API_KEY |
Required if using the AI module | No |
2. Deployment Strategies
{{< tabs >}} {{< tab name="Docker (Recommended)" >}} Docker ensures a consistent runtime environment.
-
Build the image:
docker build -t quetza-bot . -
Run the container:
bash docker run -d \ --env-file .env \ --name quetza \ quetza-bot{{< /tab >}} {{< tab name="Source" >}} Source deployment is useful for development. -
Install dependencies:
pnpm install -
Build the project:
pnpm build -
Start the bot:
bash pnpm start{{< /tab >}} {{< /tabs >}}
3. Operational Monitoring
Once running, use these mechanisms to check health:
- Logs: Check standard output (Docker logs) for initialization errors.
/pingCommand: Verifies network latency and API responsiveness./modulesCommand: Lists all loaded modules to confirm feature availability.
Warning
Scaling Constraint: Quetza follows a single-instance-per-token model. Do not run multiple instances with the same token, as this will cause WebSocket conflicts.
See also: