ArtiPub(Article Publisherの略、「記事発行者」を意味する)は、記事の作成者が自分の書いた記事をNuggets、SegmentFault、CSDN、Zhihu、Open Source China、その他のテクノロジーに自動的に公開して広めるのに役立つオープンソースのマルチ投稿プラットフォームです。高品質の知識と最大の露出を得る。ArtiPubはインストールが簡単で、さまざまなインストール方法を提供します。ワンクリックでインストールして使用できます。インストールには通常5分しかかかりません。
ArtiPubは現在、記事の編集、記事の公開、データ統計の機能をサポートしています。後で、在庫記事のインポートとデータ分析の機能を追加して、技術記事をより適切に管理および最適化できるようにします。さらに、より多くのメディアチャネルにアクセスして、記事をどこでも利用できるようにします。
サポートプラットフォーム
- ナゲッツ
- SegmentFault
- CSDN
- 簡単な本
- ほとんど知っている
- オープンソース中国
- 今日のヘッドライン
- ブログガーデン
- 微博
- Baidu Baijiahao
- 51CTO
- 開発者の見出し
- WeChatパブリックアカウント
gitclone代替アドレス
githubクローンネットワークが遅すぎる場合は、次の同期的に更新された国内ウェアハウスを使用できます。
スクリーンショットのプレビュー
プラットフォーム管理
記事管理
記事編集者
記事の公開
Chromeプラグイン
インストール要件
Dockerのインストール
- Docker:18.03
- Docker構成:1.24.1
NPMまたはソースのインストール
- MongoDB:3.6+
- NodeJS:10+
設置方法
ArtiPubには、次の3つのインストール方法があります。
- [Docker](#Docker経由でインストール)(約5分):Dockerに一定の基盤がある開発者に適しています
- [npm](#npmパッケージ経由でインストール)(約3分):Node.jsまたはnpmに精通している開発者に適しています
- [ソースコード](#ソースコード経由でインストール)(約5〜10分):カーネルの原理を理解したい開発者に適しています
Docker経由でインストール
Dockerを使用すると、最も推奨されるインストール方法であるMongoDBをインストールする手順を回避できます。Dockerを使用してArtiPubをインストールする前に、DockerとDockerComposeがインストールされていることを確認してください。Dockerを使用してArtiPubを実行する方法は2つあります。
- docker-compose.yamlから始めます
以前にmongodb
コンテナをローカルで実行したことがない場合に適用されます 。プロジェクトディレクトリにdocker-compose.yaml
ファイルを作成し 、次の内容を入力します。
version: "3.3"
services:
app:
image: "tanliyuan123/artipub:1.1.0"
environment:
MONGO_HOST: "mongo"
# MONGO_USERNAME: root
# MONGO_PASSWORD: example
ARTIPUB_API_ADDRESS: "http://localhost:3000" # 后端API地址,如果安装地址不在本机,请修改为协议+服务器IP地址+端口号(默认为3000)
ports:
- "8000:8000" # frontend
- "3000:3000" # backend
depends_on:
- mongo
mongo:
image: mongo:latest
restart: always
#volumes:
# - "E:\\mongodb:/data/db"
ports:
- "27017:27017"
次に、コマンドラインに次のコマンドを入力します。コンテナを再度起動する場合は、最後のコンテンツは破棄されませんvolumes
。2行のコメントを削除 して、独自のローカルパスに変更してください。
docker-compose up
次に、ブラウザに入力してhttp://localhost:8000
インターフェイスを 表示します。
注⚠️️、Dockerホストがローカルでない場合、たとえば、他のマシンでDocker MachineまたはDockerサービスを使用している場合は、環境変数ARTIPUB_API_ADDRESS
をホストIP +ポート番号(デフォルトは3000)に変更する必要があり ます。次に、ブラウザhttp://< 宿主机 IP>:8000
に入力し てインターフェイスを表示します。
- artipubミラーを個別に開始します
すでにmongodbコンテナーをローカルで開始している場合は、上記の方法を使用して別のコンテナーを開始することは望ましくありません。これ goofy_ganguly
はローカルで開始されたmongodbコンテナーの名前であり、ローカルのものに置き換えるだけです。
docker run --rm -it --link goofy_ganguly -p 3000:3000/tcp -p 8000:8000/tcp tanliyuan123/artipub:1.0
npmパッケージを介してインストール
npmに精通していて、すでにMongoDB環境を使用している場合は、これが最も簡単な方法です。
npmパッケージをインストールします
npm install -g artipub
npmパッケージをインストールするときに、ダウンロード速度を上げるために--registry
、ミラーソースを設定するためのパラメーターを追加でき ます(これは、後でソースコードをインストールするときにも実行できます)。
npm install -g artipub --registry=https://registry.npm.taobao.org
ArtiPubを実行する
artipub start
このコマンドはlocalhost:27017/artipub
、デフォルトでMongoDBデータベースリンクを使用します 。次のコマンドを入力して、構成データベースなどのその他の構成を表示します。
artipub -h
操作が成功したら、ブラウザに入力しhttp://localhost:8000
てインターフェイスを 確認します。
ソースコードからインストール
クローンGithubリポジトリ
git clone https://github.com/crawlab-team/artipub
npmパッケージをインストールします
cd artipub
npm install
フロントエンドを開始します
npm run start:frontend
バックエンドを開始する
npm run start:backend
構成データベース
データベースの構成は ./config.js
であり、状況に応じて構成できます。
バックエンドAPIアドレスを構成します
サービスがデプロイこのマシン上にない場合は、必要に ./src/config/config.ts
する apiEndpoint
には、対応するIPアドレス+ポートに変更します。
原理
クローラーテクノロジーを使用して、主要なプラットフォームに記事を公開します。ArtiPubのクローラーは、Googleが開発した自動テストツールであるPuppeteerを使用しています。このツールは、ajax動的コンテンツを必要とするデータを取得できるだけでなく、Seleniumと同様に、より強力なシミュレーション操作も実行できます。ログインする方法は?実際、ArtiPubはChromeプラグインを介してユーザーログイン情報(Cookie)を取得し、Puppeteerが操作するChromiumブラウザーにCookieを挿入すると、ブラウザーは通常どおりWebサイトにログインしてメッセージを投稿できます。Cookieは、ユーザーが作成したMongoDBデータベースに保存され、外部に公開されないため、非常に安全です。
次の図は、ArtiPubのアーキテクチャの概略図です。
アーキテクチャの原則の簡単な紹介は次のとおりです。
- バックエンドはアーキテクチャ全体のハブであり、データの交換、データベースの保存と読み取り、クローラーの制御、Cookieの収集などを担当します。
- Chrome拡張機能は、ウェブサイト(サイト)からCookieを取得することのみを担当します。
- スパイダーはバックエンドによって制御され、Webサイトでの記事の公開とデータのクロールを担当します。
- データベース(MongoDB)はデータの保存を担当します。
- フロントエンド(フロントエンド)は、Ant DesignProから変更されたReactアプリケーションです。
ArtiPubを作成する理由
プログラマーや技術者は、技術の共有、製品の共有、コンサルティングなどのために技術記事やブログを書くことがよくあります。テクニカルブロガーは通常、最も注目を集めるために、ナゲット、SegmentFault、CSDN、知乎、建州、WeChat公式アカウントなどの複数のメディアチャネルで記事を公開する必要があります。ただし、非常に多くのプラットフォームに記事を公開するには時間と労力がかかり、常にコピーと貼り付けが必要です。同時に、著者が読み取り数を確認したい場合は、統計を作成するためにさまざまなWebサイトを切り替える必要があります。これは非常に不便です。ArtiPubは主にこれらの問題を解決するためのものです。
OpenWriteなどのマルチポスティングプラットフォームがすでに市場に出回っていますが、なぜArtiPubを作成するのですか?おそらく他のワンテキストマルチポスティングプラットフォームも代替手段ですが、Cookieやアカウントパスワードなどの自分のアカウント情報を相手のサーバーにアップロードする必要があり、非常に安全ではありません。プラットフォームに問題が発生すると、アカウント情報が漏れます。一般的なプラットフォームはユーザーのアカウントを悪意を持って操作することはないと思いますが、操作を誤るとアカウントのプライバシーが漏洩し、プラットフォーム上の資産も破損する可能性があります。そのようなリスクを考慮する必要があります。 。ArtiPubでは、ユーザーがアカウント情報をアップロードする必要はありません。すべてのアカウント情報はユーザー自身のデータベースに保存されるため、このセキュリティリスクを回避できます。
さらに、ArtiPubはオープンソースであるため、JSソースコードは比較的理解しやすく拡張可能です。ユーザーが他のプラットフォームにアクセスできる場合は、プラットフォームの更新を待たずに、ソースコードを変更して自分のニーズを満たすことができます。開発チームは、ArtiPubをより実用的で使いやすいものにするために、引き続き開発を続けます。
コードを投稿する
優秀な開発者はArtiPubに貢献することを大歓迎です。プルリクエストについて言及する前に、まずソースコードを読んで、原理とアーキテクチャを理解してください。わからない場合は、ArtiPubを示すために作成者WeChattikazyq1を追加できます。