From 72031bba3704291b26fdbae1be9c4dcb2fe1bf50 Mon Sep 17 00:00:00 2001 From: ntki72 Date: Fri, 3 Jan 2025 21:46:33 +0900 Subject: [PATCH] =?UTF-8?q?=E7=AE=A1=E7=90=86=E7=94=BB=E9=9D=A2=E3=81=AE?= =?UTF-8?q?=E3=83=98=E3=83=83=E3=83=80=E3=83=BC=E3=82=92=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E3=81=97=E3=80=81=E3=82=BF=E3=82=A4=E3=83=88=E3=83=AB=E3=82=92?= =?UTF-8?q?=E3=80=8C=E7=A5=9E=E6=A4=BF=E3=83=A9=E3=82=A4=E3=83=96=E3=82=B9?= =?UTF-8?q?=E3=82=B1=E3=82=B8=E3=83=A5=E3=83=BC=E3=83=AB=E3=80=8D=E3=81=AB?= =?UTF-8?q?=E5=A4=89=E6=9B=B4=E3=80=82=E3=83=AD=E3=82=B0=E3=82=A2=E3=82=A6?= =?UTF-8?q?=E3=83=88=E6=A9=9F=E8=83=BD=E3=82=92=E8=BF=BD=E5=8A=A0=E3=81=97?= =?UTF-8?q?=E3=80=81Docker=E8=A8=AD=E5=AE=9A=E3=82=92=E4=BF=AE=E6=AD=A3?= =?UTF-8?q?=E3=80=82=E6=96=B0=E3=81=97=E3=81=84=E3=83=AD=E3=82=B0=E3=82=A4?= =?UTF-8?q?=E3=83=B3=E3=83=9A=E3=83=BC=E3=82=B8=E3=82=92=E4=BD=9C=E6=88=90?= =?UTF-8?q?=E3=81=97=E3=80=81=E7=92=B0=E5=A2=83=E5=A4=89=E6=95=B0=E3=82=92?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile.production | 17 +++ docker-compose.override.yml | 12 +++ docker-compose.yml | 14 +-- public/favicon.ico | Bin 0 -> 182434 bytes src/app.ts | 108 ++++++++----------- src/config/env.ts | 37 ++++++- src/routes/admin.ts | 9 +- views/admin/channel-edit.ejs | 2 +- views/admin/channel-new.ejs | 2 +- views/admin/channel.ejs | 2 +- views/admin/index.ejs | 4 +- views/admin/login.ejs | 29 +++++ views/admin/schedule-edit.ejs | 2 +- views/admin/schedule.ejs | 2 +- views/partials/{hyAdmin => admin}/header.ejs | 2 +- views/partials/head.ejs | 2 +- views/partials/header.ejs | 3 +- 17 files changed, 166 insertions(+), 81 deletions(-) create mode 100644 Dockerfile.production create mode 100644 public/favicon.ico create mode 100644 views/admin/login.ejs rename views/partials/{hyAdmin => admin}/header.ejs (75%) diff --git a/Dockerfile.production b/Dockerfile.production new file mode 100644 index 0000000..08dacef --- /dev/null +++ b/Dockerfile.production @@ -0,0 +1,17 @@ +FROM node:22.12.0-alpine + +WORKDIR /app + +# パッケージファイルをコピーしてインストール +COPY package*.json ./ +RUN npm install --production + +# ソースコードをコピーしてビルド +COPY . . +RUN npm run build + +COPY wait-for-it.sh /wait-for-it.sh +RUN chmod +x /wait-for-it.sh + +# シェルスクリプトを使って、MySQL サーバーの起動を待機 +CMD ["/bin/sh", "/wait-for-it.sh", "db", "3306", "--", "npm", "run", "start"] diff --git a/docker-compose.override.yml b/docker-compose.override.yml index ae6d64c..4ad4b21 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -1,5 +1,17 @@ services: app: + build: + dockerfile: Dockerfile volumes: - ./public/css:/app/public/css - ./views:/app/views + ports: + - "3000:3000" + environment: + NODE_ENV: development + db: + volumes: + - db-store:/var/lib/mysql + +volumes: + db-store: \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 232bc1e..662f206 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,13 +2,13 @@ services: app: build: context: . - dockerfile: Dockerfile + dockerfile: Dockerfile.prodcution ports: - - "3000:3000" + - "80:3000" depends_on: - db environment: - NODE_ENV: development + NODE_ENV: production DB_NAME: ${DB_NAME} DB_USER: ${DB_USER} DB_PASS: ${DB_PASS} @@ -16,11 +16,12 @@ services: TZ: Asia/Tokyo volumes: - ./public/thumbnails:/app/public/thumbnails + - ./logs/app:/app/logs db: image: mysql:8.0 volumes: - - db-store:/var/lib/mysql - - ./logs:/var/log/mysql + - db-store-prodcution:/var/lib/mysql + - ./logs/db:/var/log/mysql - ./docker/mysql/my.cnf:/etc/mysql/conf.d/my.cnf environment: MYSQL_DATABASE: ${DB_NAME} @@ -32,5 +33,4 @@ services: - ${DB_PORT}:3306 volumes: - db-store: - + db-store-prodcution: diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..eee849b6d640f5ad97bf3030b9a0cf2a26f96e6e GIT binary patch literal 182434 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�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 TJ=nH37qYE`_rW*nZCn2j7#Mo7 literal 0 HcmV?d00001 diff --git a/src/app.ts b/src/app.ts index 364c936..7fc97b1 100644 --- a/src/app.ts +++ b/src/app.ts @@ -1,4 +1,4 @@ -import { WEB_PORT, BASIC_AUTH_USER, BASIC_AUTH_PASS, SESSION_SECRET } from "./config/env"; +import { WEB_PORT, BASIC_AUTH_ID, BASIC_AUTH_PASS, SESSION_SECRET, CRON_SCHEDULE, ADMIN_ID, ADMIN_PASS, SESSION_EXPIRATION } from "./config/env"; import cron from "node-cron"; import express from "express"; import session from "express-session"; @@ -9,9 +9,6 @@ import { runMigrations } from "./utils/migrate"; import methodOverride from "method-override"; import { updateAllLiveSchedules } from "./services/updateLiveSchedules"; -// セッションとベーシック認証の有効期限 -const SESSION_EXPIRATION = 60 * 1 * 1000; // テスト目的で1分に設定 - const app = express(); const startServer = async () => { @@ -19,66 +16,13 @@ const startServer = async () => { // マイグレーション実行 await runMigrations(); - // 開発中なので定期実行タスクをコメントアウト - // cron.schedule("0 * * * *", async () => { - // console.log("Updating live schedules..."); - // await updateAllLiveSchedules(); - // }); - - // セッション設定 - app.use( - session({ - secret: SESSION_SECRET, - resave: false, - saveUninitialized: false, - rolling: false, - cookie: { maxAge: SESSION_EXPIRATION, secure: false, httpOnly: true }, - }) - ); - - // キャッシュを抑止 - app.use((req, res, next) => { - res.setHeader("Cache-Control", "no-store, no-cache, must-revalidate, proxy-revalidate"); - res.setHeader("Pragma", "no-cache"); - res.setHeader("Expires", "0"); - next(); + // 定期実行タスクを設定 + cron.schedule(CRON_SCHEDULE, async () => { + console.log("Updating live schedules..."); + await updateAllLiveSchedules(); }); - /** - * 管理画面へのアクセス制限 - * 1. セッションが有効期限内かどうかチェック - * 2. 期限切れなら 401 を返す → ブラウザは再度Basic認証を要求 - * 3. 成功したらセッションを再生成する - */ - app.use("/hyAdmin", (req, res, next) => { - const sessionExpires = req.session.cookie.expires; - - // セッションが有効期限内の場合はそのまま進む - if (req.session.isAuthenticated && sessionExpires && sessionExpires > new Date()) { - return next(); - } - - // セッションが切れた(または存在しない)場合、 - // Basic認証を実行して認証に成功すればセッション再生成、失敗すれば401を返す - basicAuth({ - users: { [BASIC_AUTH_USER]: BASIC_AUTH_PASS }, - challenge: true, // 401時にWWW-Authenticateヘッダーを付加 - unauthorizedResponse: "Unauthorized", - })(req, res, (authError) => { - // authError があればそのままエラーに - if (authError) { - return next(authError); - } - - // 認証が通ったのでセッション再生成 - req.session.isAuthenticated = true; - req.session.cookie.expires = new Date(Date.now() + SESSION_EXPIRATION); - - return next(); - }); - }); - - // 管理画面ビューの設定 + // ビューの設定 app.set("view engine", "ejs"); app.set("views", "./views"); @@ -89,6 +33,45 @@ const startServer = async () => { app.use(express.json()); app.use(express.urlencoded({ extended: true })); + // セッション設定 + app.use( + session({ + secret: SESSION_SECRET, + resave: false, + saveUninitialized: false, + rolling: true, + cookie: { maxAge: SESSION_EXPIRATION, secure: false, httpOnly: true }, + }) + ); + + // 管理画面ベーシック認証 + app.use( + "/hyAdmin", + basicAuth({ + users: { [BASIC_AUTH_ID]: BASIC_AUTH_PASS }, + challenge: true, + }) + ); + + // 管理画面認証ミドルウェア + app.use("/hyAdmin", (req, res, next) => { + if (req.session.isAuthenticated) { + return next(); + } + + if (req.method === "POST" && req.url === "/login") { + const { username, password } = req.body; + if (username === ADMIN_ID && password === ADMIN_PASS) { + req.session.isAuthenticated = true; + req.session.cookie.expires = new Date(Date.now() + SESSION_EXPIRATION); + return res.redirect("/hyAdmin"); + } + return res.render("admin/login", { error: "Invalid credentials" }); + } + + res.render("admin/login"); + }); + // 管理画面ルート app.use("/hyAdmin", adminRoutes); @@ -99,6 +82,7 @@ const startServer = async () => { app.use("/thumbnails", express.static("public/thumbnails")); app.use("/css", express.static("public/css")); app.use("/js", express.static("public/js")); + app.use("/favicon.ico", express.static("public/favicon.ico")); // 404エラーハンドリング app.use((req, res, next) => { diff --git a/src/config/env.ts b/src/config/env.ts index 39897c1..2f5e8f1 100644 --- a/src/config/env.ts +++ b/src/config/env.ts @@ -8,11 +8,14 @@ const requiredEnvVars = [ "DB_USER", "DB_PASS", "DB_HOST", - "BASIC_AUTH_USER", + "BASIC_AUTH_ID", "BASIC_AUTH_PASS", "WEB_PORT", "YOUTUBE_API_KEY", "SESSION_SECRET", + "CRON_INTERVAL_MINUTES", + "ADMIN_ID", + "ADMIN_PASS", ]; requiredEnvVars.forEach((varName) => { @@ -21,12 +24,42 @@ requiredEnvVars.forEach((varName) => { } }); +export const SESSION_EXPIRATION = 60 * 1 * 1000; + export const DB_NAME = process.env.DB_NAME as string; export const DB_USER = process.env.DB_USER as string; export const DB_PASS = process.env.DB_PASS as string; export const DB_HOST = process.env.DB_HOST as string; -export const BASIC_AUTH_USER = process.env.BASIC_AUTH_USER as string; +export const BASIC_AUTH_ID = process.env.BASIC_AUTH_ID as string; export const BASIC_AUTH_PASS = process.env.BASIC_AUTH_PASS as string; export const WEB_PORT = parseInt(process.env.WEB_PORT as string, 10); export const YOUTUBE_API_KEY = process.env.YOUTUBE_API_KEY as string; export const SESSION_SECRET = process.env.SESSION_SECRET as string; +export const ADMIN_ID = process.env.ADMIN_ID as string; +export const ADMIN_PASS = process.env.ADMIN_PASS as string; + +// cron のスケジュールを計算 +const intervalMinutes = parseInt(process.env.CRON_INTERVAL_MINUTES || "60", 10); +if (isNaN(intervalMinutes) || intervalMinutes <= 0) { + throw new Error("Invalid CRON_INTERVAL_MINUTES value in .env file. Must be a positive number."); +} + +let cronSchedule = ""; +if (intervalMinutes <= 60) { + // 60分以下の場合、分単位で設定 + cronSchedule = `*/${intervalMinutes} * * * *`; +} else { + // 60分を超える場合、時間と分に分割 + const hours = Math.floor(intervalMinutes / 60); + const minutes = intervalMinutes % 60; + + if (minutes === 0) { + // 分が0の場合 + cronSchedule = `0 */${hours} * * *`; + } else { + // 分が0以外の場合 + cronSchedule = `${minutes} */${hours} * * *`; + } +} + +export const CRON_SCHEDULE = cronSchedule; diff --git a/src/routes/admin.ts b/src/routes/admin.ts index ceee321..61cf81c 100644 --- a/src/routes/admin.ts +++ b/src/routes/admin.ts @@ -7,6 +7,13 @@ import { updateLiveSchedulesForChannel } from "../services/liveScheduleService"; const router = Router(); +// ログアウト処理 +router.get("/logout", (req, res) => { + req.session.destroy(() => { + res.redirect("/hyAdmin"); + }); +}); + // 管理画面トップページ router.get("/", (req, res) => { res.render("admin/index"); @@ -214,7 +221,7 @@ router.put("/schedule/:id", async (req, res) => { if (!schedule) { return res.status(404).send("Schedule not found"); - } + } await schedule.update({ channel_id, diff --git a/views/admin/channel-edit.ejs b/views/admin/channel-edit.ejs index 0399622..6a9e086 100644 --- a/views/admin/channel-edit.ejs +++ b/views/admin/channel-edit.ejs @@ -7,7 +7,7 @@ <%- include("../partials/head") %> - <%- include("../partials/hyAdmin/header") %> + <%- include("../partials/admin/header") %>

チャンネルを編集

diff --git a/views/admin/channel-new.ejs b/views/admin/channel-new.ejs index bc6c05e..82bf7b1 100644 --- a/views/admin/channel-new.ejs +++ b/views/admin/channel-new.ejs @@ -7,7 +7,7 @@ <%- include("../partials/head") %> - <%- include("../partials/hyAdmin/header") %> + <%- include("../partials/admin/header") %>

新しいチャンネルを追加

diff --git a/views/admin/channel.ejs b/views/admin/channel.ejs index 7eb5b51..d7d2f18 100644 --- a/views/admin/channel.ejs +++ b/views/admin/channel.ejs @@ -7,7 +7,7 @@ <%- include("../partials/head") %> - <%- include("../partials/hyAdmin/header") %> + <%- include("../partials/admin/header") %>

チャンネル管理

diff --git a/views/admin/index.ejs b/views/admin/index.ejs index 598dc30..fbb9be1 100644 --- a/views/admin/index.ejs +++ b/views/admin/index.ejs @@ -6,13 +6,15 @@ <%- include("../partials/head") %> - <%- include("../partials/hyAdmin/header") %> + <%- include("../partials/admin/header") %>

管理画面

diff --git a/views/admin/login.ejs b/views/admin/login.ejs new file mode 100644 index 0000000..dfb1c8e --- /dev/null +++ b/views/admin/login.ejs @@ -0,0 +1,29 @@ + + + + + + + <%- include("../partials/head") %> + + <%- include("../partials/admin/header") %> +
+
+

管理画面ログイン

+ <% if (typeof error !== "undefined") { %> +

<%= error %>

+ <% } %> +
+
+ + +
+
+ + +
+ +
+
+ + diff --git a/views/admin/schedule-edit.ejs b/views/admin/schedule-edit.ejs index edf5426..dffead9 100644 --- a/views/admin/schedule-edit.ejs +++ b/views/admin/schedule-edit.ejs @@ -7,7 +7,7 @@ <%- include("../partials/head") %> - <%- include("../partials/hyAdmin/header") %> + <%- include("../partials/admin/header") %>

スケジュール編集

diff --git a/views/admin/schedule.ejs b/views/admin/schedule.ejs index 6ee68c7..d138e7f 100644 --- a/views/admin/schedule.ejs +++ b/views/admin/schedule.ejs @@ -7,7 +7,7 @@ <%- include("../partials/head") %> - <%- include("../partials/hyAdmin/header") %> + <%- include("../partials/admin/header") %>

配信スケジュール管理

diff --git a/views/partials/hyAdmin/header.ejs b/views/partials/admin/header.ejs similarity index 75% rename from views/partials/hyAdmin/header.ejs rename to views/partials/admin/header.ejs index 479a747..a830d80 100644 --- a/views/partials/hyAdmin/header.ejs +++ b/views/partials/admin/header.ejs @@ -3,7 +3,7 @@
一般ページへ diff --git a/views/partials/head.ejs b/views/partials/head.ejs index 61ef705..48448c7 100644 --- a/views/partials/head.ejs +++ b/views/partials/head.ejs @@ -3,7 +3,7 @@ - 神椿配信スケジュール + 神椿ライブスケジュール diff --git a/views/partials/header.ejs b/views/partials/header.ejs index d9f0e90..1362d51 100644 --- a/views/partials/header.ejs +++ b/views/partials/header.ejs @@ -1,8 +1,9 @@
- 神椿配信スケジュール + 神椿ライブスケジュール