今ココなう!互換のサーバを作るプロジェクト
- 今ココなうがOverQuota連発で息していないの!助けて!
- APIまわりを解析するとそんなに難しくなさそう
- 実をいうと2007年頃に今ココみたいなシステムを組もうとしていた(測地系変換クラスとか組んでた)
- だったらNode.jsとMongoDBの勉強も兼ねて実用的なものを作ってみようか←いまここ
- Node.js と MongoDBの動くマシン
- ストレージを積めるだけ
1ユーザが8,640Post/Day(10秒に一回で24時間)データを送信した場合に、約1.3MBのストレージが必要です。
###環境構築方法(Debianの場合・他は知らない)
- nvmとNode.jsをインストール
$ curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | sh
$ . ./.bashrc
$ nvm install 5.6.0
- MongoDBをインストール
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
$ echo "deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.2 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
$ sudo apt-get update
$ sudo apt-get install -y mongodb-org
- node-canvas用
apt-get install libcairo2-dev libjpeg8-dev libpango1.0-dev libgif-dev build-essential g++
こんな感じで動くようにする予定
$ git clone https://github.com/hamache9821/ImacocoServer.git
$ cd ImacocoServer
$ npm install
$ node app.js
(適当にサービスとして登録するためのスクリプトがあったほうがいいかもしれない)
基本的には今ココなう!(β):APIの仕様を踏襲していますので、
各クライアントツールとproxyの接続先サーバを自前のものに変えるだけで動きます。素敵!
※googleMap API Key等は各自で用意してください。
現時点で実装しているAPI
- home/
- view
- user
- user/update_userinfo
- user/getuserinfo
- api/post
- api/user_list
- api/latest
- api/getuserinfo
- api/logintest
APIの実装がまだなので、使いたい方はmongoのconsoleで適当に追加してください。
> use ImacocoDB
> db.users.insert({userid : "testuser", password : "hashed_password", email : "testuser@example.com", nickname : "testuser",
ust : "", jtv : "", nicolive : "", show : "1", web : "http://example.com", description : "", popup : "", speed : "0", twitter : ""});
こんなかんじ
※パスワードは適当にハッシュ化してね
MIT
なので、商用利用したいとか、こういう機能が欲しいとかは勝手にforkしてやればいいと思うよ。
###その他 Q.インストール方法教えて! A.お 前 の 目 は 節 穴 か
Q.なんかおかしいんだけど
A.エスパーじゃないので、何がおかしいか具体的に言ってもらわないとわかんないです。
というか、現段階ではソース読んで何が起きるのかわからない人にはお勧めできません。