[Feature]: ウェブベースのセットアップ画面を作る #3

Open
opened 2025-10-03 01:32:24 +09:00 by last2014 · 8 comments
Owner

Summary

scripts/setup.tsだけじゃなくブラウザ上で使用できるセットアップ画面を作りたい。

Purpose

説明文の入力などで不便な部分がある、サーバー初心者に弱いため。

Concept

packages/web/src/main.tsでconfigのimport前にfsでconfigの存在確認をする。
存在しない場合はpackages/web/src/setup.tsのHonoをimportして動かす。

Development

Community & me

# Summary scripts/setup.tsだけじゃなくブラウザ上で使用できるセットアップ画面を作りたい。 # Purpose 説明文の入力などで不便な部分がある、サーバー初心者に弱いため。 # Concept packages/web/src/main.tsでconfigのimport前にfsでconfigの存在確認をする。 存在しない場合はpackages/web/src/setup.tsのHonoをimportして動かす。 # Development Community & me
last2014 added the
feature
label 2025-10-03 01:32:31 +09:00
Author
Owner

configあってポートが使われてたら変更させられるけどセットアップ画面は難しいな
1-65535試すのも時間かかるし
3000固定にしてどうにかして使わせるか

configあってポートが使われてたら変更させられるけどセットアップ画面は難しいな 1-65535試すのも時間かかるし 3000固定にしてどうにかして使わせるか
Author
Owner

configがないとpnpm run buildできない
空のconfig作るjsでも組むか

configがないとpnpm run buildできない 空のconfig作るjsでも組むか
Author
Owner

難しいので後回し(
packages/setupに作って/でpnpm run startできるようなスクリプトとかの環境が整ったらまたやる

難しいので後回し( packages/setupに作って/でpnpm run startできるようなスクリプトとかの環境が整ったらまたやる
Author
Owner

yamlにして存在しない場合はサンプル返して処理しなければコンパイル自体は出来るか

yamlにして存在しない場合はサンプル返して処理しなければコンパイル自体は出来るか
Author
Owner

ポートを3000固定にすればその方法で行けるか
DBCheck()とかをifでconfigがあるときだけ動かせばいい

ポートを3000固定にすればその方法で行けるか DBCheck()とかをifでconfigがあるときだけ動かせばいい
last2014 reopened this issue 2025-10-05 23:12:05 +09:00
Author
Owner
https://gitea.last2014.com/last2014/peas/src/branch/config-251005/
Author
Owner
import { existsSync, readFileSync } from "fs";
import { getDirname } from "../src/lib/path.js";
import yaml from "yaml";
import type ConfigType from "./config";

let Config: ConfigType = {
  server: {
    port: 3000,
    origin: "http://localhost:3000",
  },
  database: {
    host: "nosetup",
    port: 65536,
    user: "none",
    pass: "none",
    db: "peas",
  },
};
const path = `${getDirname(import.meta.url)}../../../config/config.yaml`;
if (existsSync(path)) {
  Config = yaml.parse(readFileSync(path, "utf-8"));
}

export default Config;

export function isSetup(conf: ConfigType) {
  if (
    conf.database.host === "nosetup" &&
    conf.database.port === 65536 &&
    conf.database.user === "none" &&
    conf.database.pass === "none" &&
    conf.database.db === "peas"
  ) {
    return false;
  } else {
    return true;
  }
}

packages/web/config/peas.config.ts
とか?

```ts import { existsSync, readFileSync } from "fs"; import { getDirname } from "../src/lib/path.js"; import yaml from "yaml"; import type ConfigType from "./config"; let Config: ConfigType = { server: { port: 3000, origin: "http://localhost:3000", }, database: { host: "nosetup", port: 65536, user: "none", pass: "none", db: "peas", }, }; const path = `${getDirname(import.meta.url)}../../../config/config.yaml`; if (existsSync(path)) { Config = yaml.parse(readFileSync(path, "utf-8")); } export default Config; export function isSetup(conf: ConfigType) { if ( conf.database.host === "nosetup" && conf.database.port === 65536 && conf.database.user === "none" && conf.database.pass === "none" && conf.database.db === "peas" ) { return false; } else { return true; } } ``` packages/web/config/peas.config.ts とか?
Author
Owner

Hono起動前にInquirer.jsでポート聞くとかなんとか

Hono起動前にInquirer.jsでポート聞くとかなんとか
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: peas-dev/peas#3
No description provided.