diff --git a/src/config/load.ts b/src/config/load.ts
index 3a82d45b41..7a4323817f 100644
--- a/src/config/load.ts
+++ b/src/config/load.ts
@@ -32,16 +32,12 @@ export default function load() {
 	mixin.host = url.host;
 	mixin.hostname = url.hostname;
 	mixin.scheme = url.protocol.replace(/:$/, '');
-	mixin.ws_scheme = mixin.scheme.replace('http', 'ws');
-	mixin.ws_url = `${mixin.ws_scheme}://${mixin.host}`;
-	mixin.api_url = `${mixin.scheme}://${mixin.host}/api`;
-	mixin.auth_url = `${mixin.scheme}://${mixin.host}/auth`;
-	mixin.dev_url = `${mixin.scheme}://${mixin.host}/dev`;
-	mixin.docs_url = `${mixin.scheme}://${mixin.host}/docs`;
-	mixin.stats_url = `${mixin.scheme}://${mixin.host}/stats`;
-	mixin.status_url = `${mixin.scheme}://${mixin.host}/status`;
-	mixin.drive_url = `${mixin.scheme}://${mixin.host}/files`;
-	mixin.user_agent = `Misskey/${pkg.version} (${config.url})`;
+	mixin.wsScheme = mixin.scheme.replace('http', 'ws');
+	mixin.wsUrl = `${mixin.wsScheme}://${mixin.host}`;
+	mixin.apiUrl = `${mixin.scheme}://${mixin.host}/api`;
+	mixin.authUrl = `${mixin.scheme}://${mixin.host}/auth`;
+	mixin.driveUrl = `${mixin.scheme}://${mixin.host}/files`;
+	mixin.userAgent = `Misskey/${pkg.version} (${config.url})`;
 
 	if (config.autoAdmin == null) config.autoAdmin = false;
 
diff --git a/src/config/types.ts b/src/config/types.ts
index 2ce9c0c80d..51b76262a9 100644
--- a/src/config/types.ts
+++ b/src/config/types.ts
@@ -49,16 +49,12 @@ export type Mixin = {
 	host: string;
 	hostname: string;
 	scheme: string;
-	ws_scheme: string;
-	api_url: string;
-	ws_url: string;
-	auth_url: string;
-	docs_url: string;
-	stats_url: string;
-	status_url: string;
-	dev_url: string;
-	drive_url: string;
-	user_agent: string;
+	wsScheme: string;
+	apiUrl: string;
+	wsUrl: string;
+	authUrl: string;
+	driveUrl: string;
+	userAgent: string;
 };
 
 export type Config = Source & Mixin;
diff --git a/src/misc/get-drive-file-url.ts b/src/misc/get-drive-file-url.ts
index c526595220..067db8a5d0 100644
--- a/src/misc/get-drive-file-url.ts
+++ b/src/misc/get-drive-file-url.ts
@@ -14,9 +14,9 @@ export default function(file: IDriveFile, thumbnail = false): string {
 		}
 	} else {
 		if (thumbnail) {
-			return `${config.drive_url}/${file._id}?thumbnail`;
+			return `${config.driveUrl}/${file._id}?thumbnail`;
 		} else {
-			return `${config.drive_url}/${file._id}?web`;
+			return `${config.driveUrl}/${file._id}?web`;
 		}
 	}
 }
@@ -27,5 +27,5 @@ export function getOriginalUrl(file: IDriveFile) {
 	}
 
 	const accessKey = file.metadata ? file.metadata.accessKey : null;
-	return `${config.drive_url}/${file._id}${accessKey ? '?original=' + accessKey : ''}`;
+	return `${config.driveUrl}/${file._id}${accessKey ? '?original=' + accessKey : ''}`;
 }
diff --git a/src/models/app.ts b/src/models/app.ts
index 14642e7314..5c8d2cbd56 100644
--- a/src/models/app.ts
+++ b/src/models/app.ts
@@ -76,8 +76,8 @@ export const pack = (
 	}
 
 	_app.iconUrl = _app.icon != null
-		? `${config.drive_url}/${_app.icon}`
-		: `${config.drive_url}/app-default.jpg`;
+		? `${config.driveUrl}/${_app.icon}`
+		: `${config.driveUrl}/app-default.jpg`;
 
 	if (me) {
 		// 既に連携しているか
diff --git a/src/models/user.ts b/src/models/user.ts
index c8ec7e5112..97c7037938 100644
--- a/src/models/user.ts
+++ b/src/models/user.ts
@@ -350,7 +350,7 @@ export const pack = (
 	}
 
 	if (_user.avatarUrl == null) {
-		_user.avatarUrl = `${config.drive_url}/default-avatar.jpg`;
+		_user.avatarUrl = `${config.driveUrl}/default-avatar.jpg`;
 	}
 
 	if (!meId || !meId.equals(_user.id) || !opts.detail) {
diff --git a/src/remote/activitypub/request.ts b/src/remote/activitypub/request.ts
index df8eced13d..a921972398 100644
--- a/src/remote/activitypub/request.ts
+++ b/src/remote/activitypub/request.ts
@@ -45,7 +45,7 @@ export default (user: ILocalUser, url: string, object: any) => new Promise(async
 		timeout,
 		headers: {
 			'Host': host,
-			'User-Agent': config.user_agent,
+			'User-Agent': config.userAgent,
 			'Content-Type': 'application/activity+json',
 			'Digest': `SHA-256=${hash}`
 		}
diff --git a/src/remote/activitypub/resolver.ts b/src/remote/activitypub/resolver.ts
index 049e645e47..113b2c4e4f 100644
--- a/src/remote/activitypub/resolver.ts
+++ b/src/remote/activitypub/resolver.ts
@@ -60,7 +60,7 @@ export default class Resolver {
 			proxy: config.proxy,
 			timeout: this.timeout,
 			headers: {
-				'User-Agent': config.user_agent,
+				'User-Agent': config.userAgent,
 				Accept: 'application/activity+json, application/ld+json'
 			},
 			json: true
diff --git a/src/server/api/endpoints/auth/session/generate.ts b/src/server/api/endpoints/auth/session/generate.ts
index 9473aa943a..ddbd7209c9 100644
--- a/src/server/api/endpoints/auth/session/generate.ts
+++ b/src/server/api/endpoints/auth/session/generate.ts
@@ -52,6 +52,6 @@ export default define(meta, async (ps) => {
 
 	return {
 		token: doc.token,
-		url: `${config.auth_url}/${doc.token}`
+		url: `${config.authUrl}/${doc.token}`
 	};
 });
diff --git a/src/server/api/endpoints/drive/files/show.ts b/src/server/api/endpoints/drive/files/show.ts
index c2442c65c4..6d63a8605c 100644
--- a/src/server/api/endpoints/drive/files/show.ts
+++ b/src/server/api/endpoints/drive/files/show.ts
@@ -73,12 +73,12 @@ export default define(meta, async (ps, user) => {
 			'metadata.deletedAt': { $exists: false }
 		});
 	} else if (ps.url) {
-		const isInternalStorageUrl = ps.url.startsWith(config.drive_url);
+		const isInternalStorageUrl = ps.url.startsWith(config.driveUrl);
 		if (isInternalStorageUrl) {
 			// Extract file ID from url
 			// e.g.
 			// http://misskey.local/files/foo?original=bar --> foo
-			const fileId = new mongo.ObjectID(ps.url.replace(config.drive_url, '').replace(/\?(.*)$/, '').replace(/\//g, ''));
+			const fileId = new mongo.ObjectID(ps.url.replace(config.driveUrl, '').replace(/\?(.*)$/, '').replace(/\//g, ''));
 			file = await DriveFile.findOne({
 				_id: fileId,
 				'metadata.deletedAt': { $exists: false }
diff --git a/src/server/api/openapi/description.ts b/src/server/api/openapi/description.ts
index 83250c3419..cc5f233c53 100644
--- a/src/server/api/openapi/description.ts
+++ b/src/server/api/openapi/description.ts
@@ -25,7 +25,7 @@ export const description = `
 #### 2.ユーザーに認証させる
 アプリを使ってもらうには、ユーザーにアカウントへのアクセスの許可をもらう必要があります。
 
-認証セッションを開始するには、[${config.api_url}/auth/session/generate](#operation/auth/session/generate) へパラメータに appSecret としてシークレットキーを含めたリクエストを送信します。
+認証セッションを開始するには、[${config.apiUrl}/auth/session/generate](#operation/auth/session/generate) へパラメータに appSecret としてシークレットキーを含めたリクエストを送信します。
 リクエスト形式はJSONで、メソッドはPOSTです。
 レスポンスとして認証セッションのトークンや認証フォームのURLが取得できるので、認証フォームのURLをブラウザで表示し、ユーザーにフォームを提示してください。
 
@@ -35,7 +35,7 @@ export const description = `
 あなたのアプリがコールバックURLを設定していない場合、ユーザーがあなたのアプリの連携を許可したことを(何らかの方法で(たとえばボタンを押させるなど))確認出来るようにしてください。
 
 #### 3.ユーザートークンを取得する
-ユーザーが連携を許可したら、[${config.api_url}/auth/session/userkey](#operation/auth/session/userkey) へリクエストを送信します。
+ユーザーが連携を許可したら、[${config.apiUrl}/auth/session/userkey](#operation/auth/session/userkey) へリクエストを送信します。
 
 上手くいけば、認証したユーザーのユーザートークンがレスポンスとして取得できます。おめでとうございます!
 
diff --git a/src/server/api/openapi/gen-spec.ts b/src/server/api/openapi/gen-spec.ts
index 7487918231..fd69569e6e 100644
--- a/src/server/api/openapi/gen-spec.ts
+++ b/src/server/api/openapi/gen-spec.ts
@@ -23,7 +23,7 @@ export function genOpenapiSpec(lang = 'ja-JP') {
 		},
 
 		servers: [{
-			url: config.api_url
+			url: config.apiUrl
 		}],
 
 		paths: {} as any,
diff --git a/src/server/api/service/discord.ts b/src/server/api/service/discord.ts
index af0c43b48b..92f5bbf72d 100644
--- a/src/server/api/service/discord.ts
+++ b/src/server/api/service/discord.ts
@@ -179,7 +179,7 @@ router.get('/dc/cb', async ctx => {
 				url: 'https://discordapp.com/api/users/@me',
 				headers: {
 					'Authorization': `Bearer ${accessToken}`,
-					'User-Agent': config.user_agent
+					'User-Agent': config.userAgent
 				}
 			}, (err, response, body) => {
 				if (err)
@@ -263,7 +263,7 @@ router.get('/dc/cb', async ctx => {
 				url: 'https://discordapp.com/api/users/@me',
 				headers: {
 					'Authorization': `Bearer ${accessToken}`,
-					'User-Agent': config.user_agent
+					'User-Agent': config.userAgent
 				}
 			}, (err, response, body) => {
 				if (err)
diff --git a/src/server/api/service/github.ts b/src/server/api/service/github.ts
index d6d5d1eccb..cf3589a4b7 100644
--- a/src/server/api/service/github.ts
+++ b/src/server/api/service/github.ts
@@ -171,7 +171,7 @@ router.get('/gh/cb', async ctx => {
 				headers: {
 					'Accept': 'application/vnd.github.v3+json',
 					'Authorization': `bearer ${accessToken}`,
-					'User-Agent': config.user_agent
+					'User-Agent': config.userAgent
 				}
 			}, (err, response, body) => {
 				if (err)
@@ -234,7 +234,7 @@ router.get('/gh/cb', async ctx => {
 				headers: {
 					'Accept': 'application/vnd.github.v3+json',
 					'Authorization': `bearer ${accessToken}`,
-					'User-Agent': config.user_agent
+					'User-Agent': config.userAgent
 				}
 			}, (err, response, body) => {
 				if (err)
diff --git a/src/server/proxy/proxy-media.ts b/src/server/proxy/proxy-media.ts
index 3f234a727d..c679086d3a 100644
--- a/src/server/proxy/proxy-media.ts
+++ b/src/server/proxy/proxy-media.ts
@@ -72,7 +72,7 @@ async function fetch(url: string, path: string) {
 			proxy: config.proxy,
 			timeout: 10 * 1000,
 			headers: {
-				'User-Agent': config.user_agent
+				'User-Agent': config.userAgent
 			}
 		});
 
diff --git a/src/server/web/docs.ts b/src/server/web/docs.ts
index 414aac02c3..d9ba14a8ed 100644
--- a/src/server/web/docs.ts
+++ b/src/server/web/docs.ts
@@ -79,13 +79,13 @@ router.get('/*/*', async ctx => {
 	showdown.extension('wsUrlExtension', () => ({
 		type: 'output',
 		regex: /%WS_URL%/g,
-		replace: config.ws_url
+		replace: config.wsUrl
 	}));
 
 	showdown.extension('apiUrlExtension', () => ({
 		type: 'output',
 		regex: /%API_URL%/g,
-		replace: config.api_url
+		replace: config.apiUrl
 	}));
 
 	const conv = new showdown.Converter({
diff --git a/src/services/drive/upload-from-url.ts b/src/services/drive/upload-from-url.ts
index 8daecbadbc..1651afa271 100644
--- a/src/services/drive/upload-from-url.ts
+++ b/src/services/drive/upload-from-url.ts
@@ -58,7 +58,7 @@ export default async (
 			proxy: config.proxy,
 			timeout: 10 * 1000,
 			headers: {
-				'User-Agent': config.user_agent
+				'User-Agent': config.userAgent
 			}
 		});