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

266
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)** title: APIドキュメントを内蔵する
**[Community](https://discordapp.com/invite/mNdGApnBFk)** labels: feature
---
uwuzuは、新しくて、楽しくて、そんなSNSです。
基礎的なマイクロブログSNSとしての機能を兼ね備えています
## Introduction ## 概要
どんなSNSなの 現在のuwuzuではdocs.uwuzu.comによる簡易的なAPIドキュメントが使用されています。
uwuzuは簡潔に言えばシンプルなマイクロブログSNSです。 しかしScalar+OpenAPIを使用することで分かりやすいドキュメントが作成できます。
基本的なSNSを楽しむための機能と**独自のお楽しみ機能**が備わっています!
もちろん画像や動画の添付も可能、カスタム絵文字機能などもあります...
### 見た目 ### 目的
![みため](https://docs.uwuzu.xyz/img/shot/top_on_pc.png) - 内蔵することで今後バージョンアップしてもサーバーのバージョンのドキュメントが見れる
- 論理に強い
### 機能比較 ### イメージ
見た目だけ見せられても困るそんなあなたに! 1. ユーザーがログイン状態で/api-docsにアクセスします
| 一般名? | uwuzu | Twitter | Misskey | Mastodon | 2. ロード画面が表示されます(Iconify+生CSS)
| ------------------ | ---------------------------- | -------------------- | ---------------------------------------- | ---------------------- | 3. ロードされた後ScalarによるAPIドキュメントが表示されます
| 投稿 | ユーズ | ツイート(ポスト) | ノート | トゥート |
| 拡散 | リユーズ | リツイート(リポスト) | リノート | ブースト |
| すき | いいね | いいね | リアクション | お気に入り |
| センシティブな投稿 | NSFW | センシティブな投稿 | NSFW | NSFW/CW |
| サービス | サーバー | Twitter(X) | サーバー・インスタンス | インスタンス |
| ブックマーク | ブックマーク | ブックマーク | お気に入り | ブックマーク |
| 文字数制限 | 管理者設定(最大16777216文字) | 280文字 | 3000文字 | 500文字 |
| タイムライン | おすすめ・ローカル・フォロー | おすすめ・フォロー中 | ホーム・ローカル・ソーシャル・グローバル | ホーム・ローカル・連合 |
## Get started ### 誰が実装する?
uwuzuを使いたいそんなあなたに - 私に任せてください。
簡単にuwuzuを始めるならこっち → [ServerList](https://uwuzu-serverlist.emptybox.win)
もしuwuzuサーバーを構築しようとしているのであれば...続けて読んでください...
### 技術スタック ### コードはどのように送る?(上記で「私に任せてください。」を選んだ方)
php - バックエンド全体を支えています。 このリポジトリ
MySQL - データの保存を主な仕事として取り扱っています。
jQuery - バックエンドとフロントエンドの架け橋です。
どうです?このシンプルさ✨
### 最低要件
Software
- Apache 2
- php 8
- MySQL 8.0 or MariaDB 10.4
Machine
- Memory 1GB
- Storage 500MB(ユーザーデータのある程度の保存含め)
### インストール ---
ここではMySQL, Apache2, php8.0が導入されている前提で進めます。 ```
#### ダウンロード ```
Githubの[リリース](https://github.com/Daichimarukana/uwuzu/releases)より最新リリースをダウンロードしてください。 ---
title: APIのHTTPステータスコードを200以外に対応させる
labels: feature
---
#### 展開 ## 概要
以下のような適当な場所(ApacheよりWebサーバーとして動作させる場所)に展開してください! /api以下では200以外のHTTPステータスコードも使用する。
`/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 - 初見でもHTTPステータスコードで直感的にエラー内容がわかる
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の設定ファイルを開きます。 1. /api/me/?token=nasiにアクセスします
``` 2. HTTP403が返ってきます
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
```
これらのコマンドを実行してください!
#### 最後の再起動 ### 誰が実装する?
すべての手順が完了したら、Apache2とMySQLを再起動します - 私に任せてください。
### コードはどのように送る?(上記で「私に任せてください。」を選んだ方)
このリポジトリ
---
``` ```
sudo systemctl restart apache2
sudo systemctl restart mysql
``` ```
#### 初期設定 ---
ブラウザを立ち上げ、[localhost/admin](http://localhost/admin)を開いて早速初期設定を開始しましょう! title: APIの認証方法をBearerにする
初期設定後、各種サーバー設定は左側メニューの"サーバー設定"より行えます。 labels: feature
---
もしインストールでつまづいたら... → [Discordコミュニティ](https://discordapp.com/invite/mNdGApnBFk)か[Document](https://docs.uwuzu.xyz)を確認してください!
## 概要
APIの認証方法をAuthorizationヘッダーのBearer Authに変更する
従来の方法も残す
### 目的
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の誤字を修正
```