Implement instance info page

This commit is contained in:
syuilo 2019-01-12 11:27:23 +09:00
parent c135d02895
commit 7ad9560f53
No known key found for this signature in database
GPG key ID: BDC4C49D06AB9D69
3 changed files with 137 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

View file

@ -2,6 +2,7 @@
* Web Client Server * Web Client Server
*/ */
import * as os from 'os';
import ms = require('ms'); import ms = require('ms');
import * as Koa from 'koa'; import * as Koa from 'koa';
import * as Router from 'koa-router'; import * as Router from 'koa-router';
@ -18,6 +19,8 @@ import config from '../../config';
import Note, { pack as packNote } from '../../models/note'; import Note, { pack as packNote } from '../../models/note';
import getNoteSummary from '../../misc/get-note-summary'; import getNoteSummary from '../../misc/get-note-summary';
import fetchMeta from '../../misc/fetch-meta'; import fetchMeta from '../../misc/fetch-meta';
import Emoji from '../../models/emoji';
const pkg = require('../../../package.json');
const client = `${__dirname}/../../client/`; const client = `${__dirname}/../../client/`;
@ -195,6 +198,27 @@ router.get('/notes/:note', async ctx => {
}); });
//#endregion //#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 // Render base html for all requests
router.get('*', async ctx => { router.get('*', async ctx => {
const meta = await fetchMeta(); const meta = await fetchMeta();

View file

@ -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}:
= ' '