This commit is contained in:
Last2014 2025-09-16 02:45:41 +09:00
parent 4f514763a3
commit ce58006849
1 changed files with 123 additions and 143 deletions

256
README.md
View File

@ -1,157 +1,137 @@
このリポジトリは[uwuzu](https://github.com/Daichimarukana/uwuzu)を改変したものです。
以下の変更点が含まれます。
実機テストをしていないため全て実質エアプです()
バグなどがありましたら1.6.5と見合わせて実装お願いします
# [<img src="/img/uwuzucolorlogo.svg" width=140px>](https://docs.uwuzu.xyz)
**[ServerList](https://uwuzu-serverlist.emptybox.win)**
**[Document](https://docs.uwuzu.xyz)**
**[Community](https://discordapp.com/invite/mNdGApnBFk)**
```
---
title: APIドキュメントを内蔵する
labels: feature
---
## 概要
現在のuwuzuではdocs.uwuzu.comによる簡易的なAPIドキュメントが使用されています。
しかしScalar+OpenAPIを使用することで分かりやすいドキュメントが作成できます。
uwuzuは、新しくて、楽しくて、そんなSNSです。
基礎的なマイクロブログSNSとしての機能を兼ね備えています
### 目的
- 内蔵することで今後バージョンアップしてもサーバーのバージョンのドキュメントが見れる
- 論理に強い
## Introduction
どんなSNSなの
uwuzuは簡潔に言えばシンプルなマイクロブログSNSです。
基本的なSNSを楽しむための機能と**独自のお楽しみ機能**が備わっています!
もちろん画像や動画の添付も可能、カスタム絵文字機能などもあります...
### イメージ
1. ユーザーがログイン状態で/api-docsにアクセスします
2. ロード画面が表示されます(Iconify+生CSS)
3. ロードされた後ScalarによるAPIドキュメントが表示されます
### 見た目
![みため](https://docs.uwuzu.xyz/img/shot/top_on_pc.png)
### 誰が実装する?
- 私に任せてください。
### 機能比較
見た目だけ見せられても困るそんなあなたに!
| 一般名? | uwuzu | Twitter | Misskey | Mastodon |
| ------------------ | ---------------------------- | -------------------- | ---------------------------------------- | ---------------------- |
| 投稿 | ユーズ | ツイート(ポスト) | ノート | トゥート |
| 拡散 | リユーズ | リツイート(リポスト) | リノート | ブースト |
| すき | いいね | いいね | リアクション | お気に入り |
| センシティブな投稿 | NSFW | センシティブな投稿 | NSFW | NSFW/CW |
| サービス | サーバー | Twitter(X) | サーバー・インスタンス | インスタンス |
| ブックマーク | ブックマーク | ブックマーク | お気に入り | ブックマーク |
| 文字数制限 | 管理者設定(最大16777216文字) | 280文字 | 3000文字 | 500文字 |
| タイムライン | おすすめ・ローカル・フォロー | おすすめ・フォロー中 | ホーム・ローカル・ソーシャル・グローバル | ホーム・ローカル・連合 |
### コードはどのように送る?(上記で「私に任せてください。」を選んだ方)
このリポジトリ
## Get started
uwuzuを使いたいそんなあなたに
簡単にuwuzuを始めるならこっち → [ServerList](https://uwuzu-serverlist.emptybox.win)
もしuwuzuサーバーを構築しようとしているのであれば...続けて読んでください...
---
```
### 技術スタック
php - バックエンド全体を支えています。
MySQL - データの保存を主な仕事として取り扱っています。
jQuery - バックエンドとフロントエンドの架け橋です。
どうです?このシンプルさ✨
```
---
title: APIのHTTPステータスコードを200以外に対応させる
labels: feature
---
### 最低要件
Software
- Apache 2
- php 8
- MySQL 8.0 or MariaDB 10.4
## 概要
/api以下では200以外のHTTPステータスコードも使用する。
Machine
- Memory 1GB
- Storage 500MB(ユーザーデータのある程度の保存含め)
### 目的
- 初見でもHTTPステータスコードで直感的にエラー内容がわかる
### インストール
ここではMySQL, Apache2, php8.0が導入されている前提で進めます。
### イメージ
1. /api/me/?token=nasiにアクセスします
2. HTTP403が返ってきます
#### ダウンロード
Githubの[リリース](https://github.com/Daichimarukana/uwuzu/releases)より最新リリースをダウンロードしてください。
### 誰が実装する?
- 私に任せてください。
#### 展開
以下のような適当な場所(ApacheよりWebサーバーとして動作させる場所)に展開してください!
`/user/home/web/`
#### 権限設定
以下のようにコマンドラインを開き、uwuzuを展開したフォルダ内のすべてのファイルに権限を与えてください
```
sudo chmod -R 755 /user/home/web/.
```
#### phpの設定
以下のコマンドでphpの設定(php.ini)を開き、開いたら「↓」キーでひたすら下に移動して`;extension=なんとかかんとか`が何十行かあるところまで移動して、そしたらその中から以下のものの`;`を消してください。
要するにプラグインの有効化です!
```
sudo nano /etc/php/{phpバージョン}/cli/php.ini
### コードはどのように送る?(上記で「私に任せてください。」を選んだ方)
このリポジトリ
extension=fileinfo
extension=gd
extension=pdo_mysql
extension=mysqli
extension=mbstring
extension=zip
---
```
変更か書き込めたら保存して閉じてください。
#### MySQLの設定
まず、MySQLにログインします。
```
sudo mysql -u root
```
このタイミングでrootアカウントにもパスワードを設定できると望ましいです
それでは次にuwuzuを操作するアカウントを作成します。
`id`と`password`はuwuzuからMySQLを操作するアカウントに必要なので、これも覚えられるものを設定してください
```
create user 'id'@'localhost' identified by 'password';
```
アカウントが作れたら、権限を与えてください!
```
grant all on *.* to 'id'@'localhost';
flush privileges;
```
終わったら次にデータベースを作成します!
データベース名は覚えられるものであれば何でも大丈夫です!
```
CREATE DATABASE uwuzu_db;
```
これらの設定が完了したら
```
exit
```
でMySQLを閉じてください。
続いては、MySQLの設定ファイルより、モードの設定を行います。
```
sudo nano /etc/mysql/my.cnf
```
このコマンドを実行し、SQLモードから"STRICT_TRANS_TABLES"を削除してください
```
[mysqld]
sql_mode = NO_ENGINE_SUBSTITUTION
```
変更できたら保存して閉じてください。
#### Apache2の設定
まず、Apache2の設定ファイルを開きます。
```
sudo nano /etc/apache2/apache2.conf
```
開けたら、以下のような項目があるので、uwuzuを展開したフォルダにパスを変更してください。
```
<Directory "/user/home/web/">
Options Indexes FollowSymLinks
AllowOverride ALL
Require all granted
</Directory>
```
一度保存して閉じ、もう一つパスを設定しているファイルを開いて、以下の設定を書き換えてください!
```
sudo nano /etc/apache2/sites-available/000-default.conf
```
```
ServerAdmin webmaster@localhost
DocumentRoot /user/home/web/
```
最後に.htaccessを機能させるための設定です
```
sudo a2enmod rewrite
sudo a2enmod headers
```
これらのコマンドを実行してください!
---
title: APIの認証方法をBearerにする
labels: feature
---
#### 最後の再起動
すべての手順が完了したら、Apache2とMySQLを再起動します
```
sudo systemctl restart apache2
sudo systemctl restart mysql
```
#### 初期設定
ブラウザを立ち上げ、[localhost/admin](http://localhost/admin)を開いて早速初期設定を開始しましょう!
初期設定後、各種サーバー設定は左側メニューの"サーバー設定"より行えます。
## 概要
APIの認証方法をAuthorizationヘッダーのBearer Authに変更する
従来の方法も残す
もしインストールでつまづいたら... → [Discordコミュニティ](https://discordapp.com/invite/mNdGApnBFk)か[Document](https://docs.uwuzu.xyz)を確認してください!
### 目的
OpenAPIに対応させるため
### イメージ
1. Authorizationヘッダー、tokenクエリパラメータ、token(body)全てで認証できるようにする
### 誰が実装する?
- 私に任せてください。
### コードはどのように送る?(上記で「私に任せてください。」を選んだ方)
このリポジトリ
---
```
```
---
title: APIで404や503をJSONで返す
labels: feature
---
## 概要
APIでは404や503などがHTMLで返りJSONを想定したコードではエラーが発生します。
専用のJSONで返すことで対策ができます。
### 目的
- JSONに統一させるため
### イメージ
1. /api/noneにアクセスします
2. /errorpage/notfound.jsonが表示されます
### 誰が実装する?
- 私に任せてください。
### コードはどのように送る?(上記で「私に任せてください。」を選んだ方)
このリポジトリ
---
```
```
---
title: /api/token/inquiryを作成する
labels: feature
---
## 概要
/api/token/inquiryでAPIトークンから権限やユーザーIDを照会できます。
### 目的
パラメータから権限を変更しユーザー認可を承認する悪質な方法が取られる可能性を下げるため
### イメージ
1. /api/token/inquiry?token=TESTTOKENにアクセスします
2. 権限を配列で確認できます
### 誰が実装する?
- 私に任せてください。
### コードはどのように送る?(上記で「私に任せてください。」を選んだ方)
このリポジトリ
---
```
```
authcode/license.txtの誤字を修正
```