## 1. まずそもそもuwuzuとは何か
使っている方ならわかると思いますが普通のSNSです！
これと言った大きな特徴もなく、平凡で、なんとも言えないSNSです…
あっ！特徴かもしれないのが誰でもサーバーを建てられることです！！！
詳細は5. サーバーの立て方をご覧ください！
### 1.1 作られた理由は？
uwuzuは某X社のSNSを再構築しようと考えたdaichimarukanaにより作成されたSNSです()
uwuzuの読みはゆずです。

## 2. 誰でもサーバーを建てれるってことは、分散型？
残念っ！
uwuzuにはActivityPubやその他の連合用機能がないため基本的に導入されたサーバー中心の中央集権型SNSです！
いやでも中央集権型でも誰でもサーバーを立てれるから分散型...？
分散中央型SNSな気がしてきました！（？）
今後いつかはActivityPubも導入しようかと思っています...

## 3. 名前の由来って何？
おっ！いい着眼点ですねぇ～～～
uwuzu(ゆず)の名前の由来は、開発者のdaichimarukanaがサービス名を考えていたときに某X社のSNSに「TwitterみたいなSNS作ってるけどサービス名が全く思いつかねぇ()」と投稿したところ思ったより多くの名前の案が集まり、
その中に「With you」という名前の案があったところから来ています。
daichimarukana < 「うぃずゆー(With you)」「うぃじゅー(witzou)」「うずー(wuzu)」「ゆず(yuzu)」あれっ？なんか普通すぎ？そうだ！！！！これでいいやん！！！！
### 「ゆず(uwuzu)」

ちなみに、この案が来るまでは「Twilus」という名前にする予定だったんですよっ！

## 4. 開発言語は？
uwuzuはPHPとJS、HTML(プログラミング言語じゃないか)、CSSで作られています！
ライブラリはjQueryを導入しています！
使用している画像は友人またはGoogle Icons様より使わせて頂いております！

## 5. サーバーの建て方
まず、Apache2とPHP 8とmysql Ver 15が導入されているサーバーを準備します！
PHP 8では事前にGDを有効化しておいてください！(QRコードの生成に必要です。)
次にSQLを設定します。(InnoDB)
まず、お好きな名前でDBを作成し、その中に、account,emoji,notice,role,ueuse,notification,ads,reportとテーブルを作成します。
テーブルの中身は以下のとおりです。
照合順序は全て標準でutf8mb4_general_ciです。

【追記】v1.2.28からSSLが必須項目になりました。localhostでアクセスする分には大丈夫ですが、他の端末からのアクセス時にはSSLの設定をしてください。

## 簡単に構築できるようSQLの構造ファイルがリリースに添付されています！そちらをインポートしていただけますと大幅に簡単に導入できます！
(userロールとofficialロールとiceロールの設定は別途必要です。お手数ですがそこの設定だけよろしくお願いいたします。)

### account
- sysid(INT)(AUTO_INCREMENT	) アカウントが追加されるとカウントされるシステム用ID
- username(varchar(500)) ユーザーネーム保存用
- userid(varchar(500)) ユーザーID保存用
- password(varchar(1024)) パスワード保存用(ハッシュ化されます)
- loginid(varchar(256)) 自動ログイン時に本人アカウントか確認
- mailadds(varchar(500)) メールアドレス保存用
- profile(TEXT) プロフィールテキスト保存用
- iconname(varchar(256)) アイコン画像リンク保存用
- headname(varchar(256)) ヘッダー画像リンク保存用
- role(varchar(1024)) 「user」のようなロール保存用
- datetime(datetime) アカウント作成日時保存用
- follow(text) アカウントがフォローしている人保存用
- follower(text) アカウントがフォローされている人保存用
- blocklist(text) ブロックしている人保存用
- admin(varchar(25)) 管理者アカウントなら「yes」、それ以外なら「none」と入力。
- authcode(varchar(256)) 二段階認証用キー保存用
- backupcode(varchar(256)) 二段階認証のバックアップコード保存用
- sacinfo(varchar(256)) 特殊アカウント識別用

### emoji
- sysid(INT)(AUTO_INCREMENT) アカウントが追加されるとカウントされるシステム用ID
- emojifile(varchar(512)) 絵文字ファイルパス保存用
- emojiname(varchar(512)) 「:emoji:」のような絵文字名保存用
- emojiinfo(text) 絵文字についての説明保存用
- emojidate(datetime) 絵文字登録日時保存用

### notice
- sysid(INT)(AUTO_INCREMENT) うんえいからのおしらせが追加されるとカウントされるシステム用ID
- title(varchar(1024)) お知らせのタイトル保存用
- note(text) お知らせの内容保存用
- account(varchar(500)) 編集者ID保存用
- emojidate(datetime) お知らせ登録日時保存用

### role
- sysid(INT)(AUTO_INCREMENT) ロールが追加されるとカウントされるシステム用ID
- rolename(varchar(512)) ロール表示名保存用
- roleauth(varchar(256)) ロールの権限保存用
- rolecolor(varchar(25)) ロールの色保存用
- roleidname(varchar(512)) 「user」のようなロール指定用

### ueuse
- sysid(INT)(AUTO_INCREMENT) 投稿されるとカウントされるシステム用ID
- account(varchar(256)) 投稿者ID保存用
- uniqid(varchar(256)) 投稿ID保存用
- rpuniqid(varchar(256)) リプライ先ID保存用
- ueuse(text) 投稿内容保存用
- photo1(varchar(512)) 投稿に添付されたファイルの保存ディレクトリ保存用
- photo2(varchar(512)) 投稿に添付されたファイルの保存ディレクトリ保存用
- photo3(varchar(512)) 投稿に添付されたファイルの保存ディレクトリ保存用
- photo4(varchar(512)) 投稿に添付されたファイルの保存ディレクトリ保存用
- video1(varchar(512)) 投稿に添付されたファイルの保存ディレクトリ保存用
- datetime(datetime) 投稿日時保存用
- favorite(text) いいね保存用
- abi(text) 投稿者の追記保存用
- abidate(datetime) 追記日時保存用
- nsfw(varchar(25)) NSFW指定有無保存用

### notification
- sysid(INT)(AUTO_INCREMENT) 通知されるとカウントされるシステム用ID
- touserid(varchar(512)) 通知先ID保存用
- title(varchar(1024)) 通知のタイトル
- msg(text) 通知の内容
- datetime(datetime) 通知日時
- userchk(varchar(25)) 通知の既読確認

### invitation
- sysid(INT)(AUTO_INCREMENT) 追加されるとカウントされるシステム用ID
- code(varchar(512)) 招待コード
- used(varchar(25)) 使用済みかそうでないか
- datetime(datetime) 招待コード仕様日時更新用

### report
- sysid(INT)(AUTO_INCREMENT) 追加されるとカウントされるシステム用ID
- uniqid(varchar(256)) 通報ID保存用
- userid(varchar(500)) 通報先ユーザーID保存用
- report_userid(varchar(500)) 通報元ユーザーID保存用
- msg(text) サービス管理者宛メッセージ保存用
- datetime(datetime) 通報日時保存用
- admin_chk(varchar(25)) 解決済みかどうか確認用

### ads
- sysid(INT)(AUTO_INCREMENT) 追加されるとカウントされるシステム用ID
- uniqid(varchar(512)) 広告ID保存用
- url(varchar(512)) 広告のクリック先URL保存用
- image_url(varchar(512)) 広告に表示する画像URL保存用
- memo(text) 広告にマウスオーバーしたときに表示されるメッセージ保存用
- start_date(datetime) 広告配信開始日時保存用
- limit_date(datetime) 広告配信終了日時保存用
- datetime(datetime) 広告追加日時保存用

すべて作成完了したらGithubよりuwuzuのファイルをDLし、解凍し、それをサーバーの動作ディレクトリに置き、Apacheのhttpd.confからその動作ディレクトリを指定し、動作ディレクトリ内のdb.phpにDBのログイン情報を書き込んであとはApacheとphpとMy SQLを起動するだけ！
起動したらまずDBのroleにphpmyadminから「user」ロールと「official」ロールと「ice」ロールを追加、権限は「user」と「official」と「ice」でOK。ロール名はとりあえず「一般ユーザー」とか適当でOK、ロールの色はHEXコード(#を除く)で000000のように指定。(この3つのロールがないとエラーが発生します。)
そしたら普通にuwuzuにアクセスして自分のアカウントを登録。
## 管理者アカウント登録機能が追加されました。【[domain]/admin/】より設定できるのでそちらをご利用ください。
なお、管理者アカウントを導入後に登録した場合サーバーを止めてuwuzu動作ディレクトリ内のserverフォルダ内のファイルを設定する必要はございません。

それが終わったら一度サーバーを止め、uwuzuの動作ディレクトリ内のserverフォルダ内のファイルを各自設定
ファイルの機能は以下の通り！

## 管理者アカウント作成後にログインし、サーバー設定より以下の項目が簡単に設定できます。

- 404imagepath.txt : 404ページに表示する画像パス保存用
- 503imagepath.txt : 503ページに表示する画像パス保存用
- banurldomain.txt : 投稿禁止URLドメイン
- banuserid.txt : 登録禁止ユーザーid
- info.txt : サーバー登録時に表示されるメッセージ(好きな内容)
- privacypolicy.txt : プライバシーポリシー(サーバーのプライバシーポリシーを記載)
- serverstop.txt : サーバー停止ページで表示するメッセージ
- terms.txt : 利用規約(サーバーの利用規約を記載)
- textsize.txt : 最大文字数
- serversettings.ini : サーバー情報保存ファイル
- uwuzuabout.txt : このファイル(uwuzuを改造した場合は書き換え)
- uwuzuinfo.txt : uwuzuのバージョン等記載(uwuzuを改造した場合は書き換え)
- uwuzurelease.txt : uwuzuのバージョン等記載(uwuzuを改造した場合は書き換え)
- onlyuser.txt : 招待コード機能をオンにするかどうか、「true」でオン、「false」でオフ。招待コードはDBに直接追加。

### これでサーバーは完成！！！
もう一度サーバーを起動してみんなに公開しよう！！！(まだ脆弱性は残っていると思われます。公開する際は気をつけてください。私だいちまる及びPutonfpsは一切責任を負いません。)

## 6. Android、iOS、その他OS向けのアプリについて
残念ですが今現在は公式アプリ等はなく、Webブラウザからお楽しみいただけます。
誰かが作ってくれたらありがたいな～()

## 7. 開発したいです！！！
uwuzuを自分の思うように改造して使いたい場合はAGPLライセンスのもと改造後ソースコードを公開するということで改造してください！
場合によってはdaichimarukanaの作る本家(?)uwuzuにも改造で追加された機能が実装されるかも...()
daichimarukanaと一緒に開発したいよ～って人は私のHPからメールとか某Xとかから連絡してくださいな～

## 8. ロゴは誰が作ったのですか？
ロゴはまだない。
ロゴは下記のリンクよりuwuzuに関連しているコンテンツのみDLしてご利用いただけます。(uwuzuへ飛ぶリンクボタンなどはOK)

### 色付き
#img ../img/uwuzucolorlogo.svg
### まっしろ
#img ../img/uwuzulogo.svg


編集者 : daichimarukana
最終更新日 : 2023/12/20 22:10