Compare commits

...

3 Commits

Author SHA1 Message Date
pinks 11d8a66c18 update README 2023-10-18 23:11:39 +02:00
pinks 22d9c518be add env var for db path 2023-10-18 23:11:25 +02:00
pinks 4ba6f494d2 sort config 2023-10-18 23:08:18 +02:00
4 changed files with 31 additions and 26 deletions

4
.gitignore vendored
View File

@ -1,3 +1,3 @@
.env .env
app*.db* *.db
updateConfig.ts *.db-*

View File

@ -14,21 +14,26 @@ You can put these in `.env` file or pass them as environment variables.
- `TG_BOT_TOKEN` - Telegram bot token. Get yours from [@BotFather](https://t.me/BotFather). - `TG_BOT_TOKEN` - Telegram bot token. Get yours from [@BotFather](https://t.me/BotFather).
Required. Required.
- `TG_ADMIN_USERNAMES` - Comma separated list of usernames of users that can use admin commands. - `TG_ADMIN_USERNAMES` - Comma separated list of usernames of users that can use admin commands.
- `DENO_KV_PATH` - [Deno KV](https://deno.land/api?s=Deno.openKv&unstable) database file path. A
temporary file is used by default.
- `LOG_LEVEL` - [Log level](https://deno.land/std@0.201.0/log/mod.ts?s=LogLevels). Default: `INFO`. - `LOG_LEVEL` - [Log level](https://deno.land/std@0.201.0/log/mod.ts?s=LogLevels). Default: `INFO`.
You can configure more stuff in [Eris WebUI](http://localhost:5999/) when running.
## Running ## Running
- Start stable diffusion webui: `cd sd-webui`, `./webui.sh --api` - Start Stable Diffusion WebUI: `./webui.sh --api` (in SD WebUI directory)
- Start bot: `deno task start` - Start Eris: `deno task start`
To connect your SD to the bot, open the [Eris UI](http://localhost:5999/), login as admin and add a
worker.
## Codegen ## Codegen
The Stable Diffusion API in `app/sdApi.ts` is auto-generated. To regenerate it, first start your SD The Stable Diffusion API types are auto-generated. To regenerate them, first start your SD WebUI
WebUI with `--nowebui --api`, and then run: with `--nowebui --api`, and then run `deno task generate`
```sh ## Project structure
deno run npm:openapi-typescript http://localhost:7861/openapi.json -o app/sdApi.ts
``` - `/api` - Eris API served at `http://localhost:5999/api/`.
- `/app` - Queue handling and other core processes.
- `/bot` - Handling bot commands and other updates from Telegram API.
- `/ui` - Eris WebUI frontend files served at `http://localhost:5999/`.
- `/util` - Utility functions shared by other parts.

View File

@ -1,4 +1,4 @@
import { KvFs } from "kvfs"; import { KvFs } from "kvfs";
export const db = await Deno.openKv("./app.db"); export const db = await Deno.openKv(Deno.env.get("DENO_KV_PATH"));
export const fs = new KvFs(db); export const fs = new KvFs(db);

View File

@ -1,7 +1,8 @@
{ {
"tasks": { "tasks": {
"start": "deno run --unstable --allow-env --allow-read --allow-write --allow-net main.ts", "check": "deno check --unstable main.ts && deno check --unstable ui/main.tsx",
"check": "deno check --unstable main.ts && deno check --unstable ui/main.tsx" "generate": "deno run npm:openapi-typescript http://localhost:7861/openapi.json -o app/sdApi.ts",
"start": "deno run --unstable --allow-env --allow-read --allow-write --allow-net main.ts"
}, },
"compilerOptions": { "compilerOptions": {
"jsx": "react" "jsx": "react"
@ -18,22 +19,29 @@
}, },
"imports": { "imports": {
"@date-fns/utc": "https://cdn.skypack.dev/@date-fns/utc@1.1.0?dts", "@date-fns/utc": "https://cdn.skypack.dev/@date-fns/utc@1.1.0?dts",
"@twind/core": "https://esm.sh/@twind/core@1.1.3?dev",
"@twind/preset-tailwind": "https://esm.sh/@twind/preset-tailwind@1.1.4?dev",
"async": "https://deno.land/x/async@v2.0.2/mod.ts", "async": "https://deno.land/x/async@v2.0.2/mod.ts",
"date-fns": "https://cdn.skypack.dev/date-fns@2.30.0?dts", "date-fns": "https://cdn.skypack.dev/date-fns@2.30.0?dts",
"file_type": "https://esm.sh/file-type@18.5.0", "file_type": "https://esm.sh/file-type@18.5.0",
"grammy": "https://lib.deno.dev/x/grammy@1/mod.ts",
"grammy_autoquote": "https://lib.deno.dev/x/grammy_autoquote@1/mod.ts", "grammy_autoquote": "https://lib.deno.dev/x/grammy_autoquote@1/mod.ts",
"grammy_files": "https://lib.deno.dev/x/grammy_files@1/mod.ts", "grammy_files": "https://lib.deno.dev/x/grammy_files@1/mod.ts",
"grammy_parse_mode": "https://lib.deno.dev/x/grammy_parse_mode@1/mod.ts", "grammy_parse_mode": "https://lib.deno.dev/x/grammy_parse_mode@1/mod.ts",
"grammy_runner": "https://lib.deno.dev/x/grammy_runner@2/mod.ts", "grammy_runner": "https://lib.deno.dev/x/grammy_runner@2/mod.ts",
"grammy_stateless_question": "https://lib.deno.dev/x/grammy_stateless_question_alpha@3/mod.ts", "grammy_stateless_question": "https://lib.deno.dev/x/grammy_stateless_question_alpha@3/mod.ts",
"grammy_types": "https://lib.deno.dev/x/grammy_types@3/mod.ts", "grammy_types": "https://lib.deno.dev/x/grammy_types@3/mod.ts",
"grammy": "https://lib.deno.dev/x/grammy@1/mod.ts",
"indexed_kv": "https://deno.land/x/indexed_kv@v0.5.0/mod.ts", "indexed_kv": "https://deno.land/x/indexed_kv@v0.5.0/mod.ts",
"kvfs": "https://deno.land/x/kvfs@v0.1.0/mod.ts", "kvfs": "https://deno.land/x/kvfs@v0.1.0/mod.ts",
"kvmq": "https://deno.land/x/kvmq@v0.3.0/mod.ts", "kvmq": "https://deno.land/x/kvmq@v0.3.0/mod.ts",
"openapi_fetch": "https://esm.sh/openapi-fetch@0.7.6", "openapi_fetch": "https://esm.sh/openapi-fetch@0.7.6",
"png_chunk_text": "https://esm.sh/png-chunk-text@1.0.0", "png_chunk_text": "https://esm.sh/png-chunk-text@1.0.0",
"png_chunks_extract": "https://esm.sh/png-chunks-extract@1.0.0", "png_chunks_extract": "https://esm.sh/png-chunks-extract@1.0.0",
"react": "https://esm.sh/react@18.2.0?dev",
"react-dom/client": "https://esm.sh/react-dom@18.2.0/client?dev",
"react-flip-move": "https://esm.sh/react-flip-move@3.0.5?dev",
"react-intl": "https://esm.sh/react-intl@6.4.7?external=react&alias=@types/react:react&dev",
"react-router-dom": "https://esm.sh/react-router-dom@6.16.0?dev",
"reroute": "https://deno.land/x/reroute@v0.1.0/mod.ts", "reroute": "https://deno.land/x/reroute@v0.1.0/mod.ts",
"serve_spa": "https://deno.land/x/serve_spa@v0.2.0/mod.ts", "serve_spa": "https://deno.land/x/serve_spa@v0.2.0/mod.ts",
"std/async/": "https://deno.land/std@0.201.0/async/", "std/async/": "https://deno.land/std@0.201.0/async/",
@ -43,19 +51,11 @@
"std/fmt/": "https://deno.land/std@0.202.0/fmt/", "std/fmt/": "https://deno.land/std@0.202.0/fmt/",
"std/log/": "https://deno.land/std@0.201.0/log/", "std/log/": "https://deno.land/std@0.201.0/log/",
"std/path/": "https://deno.land/std@0.204.0/path/", "std/path/": "https://deno.land/std@0.204.0/path/",
"t_rest/server": "https://esm.sh/ty-rest@0.4.0/server?dev",
"ulid": "https://deno.land/x/ulid@v0.3.0/mod.ts",
"@twind/core": "https://esm.sh/@twind/core@1.1.3?dev",
"@twind/preset-tailwind": "https://esm.sh/@twind/preset-tailwind@1.1.4?dev",
"react-dom/client": "https://esm.sh/react-dom@18.2.0/client?dev",
"react-flip-move": "https://esm.sh/react-flip-move@3.0.5?dev",
"react-intl": "https://esm.sh/react-intl@6.4.7?external=react&alias=@types/react:react&dev",
"react-router-dom": "https://esm.sh/react-router-dom@6.16.0?dev",
"react": "https://esm.sh/react@18.2.0?dev",
"swr": "https://esm.sh/swr@2.2.4?dev", "swr": "https://esm.sh/swr@2.2.4?dev",
"swr/mutation": "https://esm.sh/swr@2.2.4/mutation?dev", "swr/mutation": "https://esm.sh/swr@2.2.4/mutation?dev",
"t_rest/client": "https://esm.sh/ty-rest@0.4.0/client?dev", "t_rest/client": "https://esm.sh/ty-rest@0.4.0/client?dev",
"t_rest/server": "https://esm.sh/ty-rest@0.4.0/server?dev",
"ulid": "https://deno.land/x/ulid@v0.3.0/mod.ts",
"use-local-storage": "https://esm.sh/use-local-storage@3.0.0?dev" "use-local-storage": "https://esm.sh/use-local-storage@3.0.0?dev"
} }
} }