diff --git a/src/client/assets/misskey-php-like-logo.png b/src/client/assets/misskey-php-like-logo.png new file mode 100644 index 000000000..7777e52b1 Binary files /dev/null and b/src/client/assets/misskey-php-like-logo.png differ diff --git a/src/server/web/index.ts b/src/server/web/index.ts index 59b8390ab..7fd9e76cf 100644 --- a/src/server/web/index.ts +++ b/src/server/web/index.ts @@ -2,6 +2,7 @@ * Web Client Server */ +import * as os from 'os'; import ms = require('ms'); import * as Koa from 'koa'; import * as Router from 'koa-router'; @@ -18,6 +19,8 @@ import config from '../../config'; import Note, { pack as packNote } from '../../models/note'; import getNoteSummary from '../../misc/get-note-summary'; import fetchMeta from '../../misc/fetch-meta'; +import Emoji from '../../models/emoji'; +const pkg = require('../../../package.json'); const client = `${__dirname}/../../client/`; @@ -195,6 +198,27 @@ router.get('/notes/:note', async ctx => { }); //#endregion +router.get('/info', async ctx => { + const meta = await fetchMeta(); + const emojis = await Emoji.find({ host: null }, { + fields: { + _id: false + } + }); + await ctx.render('info', { + version: pkg.version, + machine: os.hostname(), + os: os.platform(), + node: process.version, + cpu: { + model: os.cpus()[0].model, + cores: os.cpus().length + }, + emojis: emojis, + meta: meta + }); +}); + // Render base html for all requests router.get('*', async ctx => { const meta = await fetchMeta(); diff --git a/src/server/web/views/info.pug b/src/server/web/views/info.pug new file mode 100644 index 000000000..3e72d8641 --- /dev/null +++ b/src/server/web/views/info.pug @@ -0,0 +1,113 @@ +doctype html + +html + + head + meta(charset='utf-8') + meta(name='application-name' content='Misskey') + title Misskey + style. + html { + font-family: sans-serif; + } + + main { + max-width: 934px; + margin: 0 auto; + } + + header { + padding: 5px; + background: rgb(153, 153, 204); + border: 1px solid #000; + } + header:after { + content: ''; + display: block; + clear: both; + } + + header > h1 { + float: left; + font-size: 2em; + } + + header > img { + float: right; + width: 220px; + } + + table { + margin: 1em 0; + width: 100%; + border-collapse: collapse; + } + table tr th { + background-color: #ccf; + border: 1px solid #000; + width: 300px; + font-weight: bold; + padding: 4px 5px; + text-align: left; + } + table tr td { + background-color: #ddd; + border: 1px solid #000; + padding: 4px 5px; + } + + body + main + header + h1 Misskey Version #{version} + img(src='/assets/misskey-php-like-logo.png' alt='') + table + tr + th Instance + td= meta.name + tr + th Maintainer + td + = meta.maintainer.name + | <#{meta.maintainer.email}> + tr + th System + td= os + tr + th Node version + td= node + tr + th Machine + td= machine + tr + th CPU + td= cpu.model + tr + th Registration + td= !meta.disableRegistration ? 'yes' : 'no' + tr + th reCAPTCHA enabled + td= meta.enableRecaptcha ? 'yes' : 'no' + tr + th Cache remote files + td= meta.cacheRemoteFiles ? 'yes' : 'no' + tr + th Drive capacity per local user + td + = meta.localDriveCapacityMb + | MB + tr + th Drive capacity per remote user + td + = meta.remoteDriveCapacityMb + | MB + tr + th Max text length + td= meta.maxNoteTextLength + tr + th Emojis + td + each emoji in emojis + | :#{emoji.name}: + = ' ' +