Coder Social home page Coder Social logo

misskey-dev / dolphin Goto Github PK

View Code? Open in Web Editor NEW
270.0 20.0 32.0 2.82 MB

🐬 A Lightweight ActivityPub Server

License: GNU Affero General Public License v3.0

Dockerfile 0.05% TypeScript 69.98% JavaScript 0.27% Vue 28.78% CSS 0.45% HTML 0.47%
activitypub federation nodejs misskey

dolphin's Introduction

Dolphin

Dolphin

Dolphin is a lightweight ActivityPub server for personal (or team).

Become a Patron!

🍀 Why Dolphin

Dolphin is a fork of Misskey and a sister project of it. While inheriting attractive features such as reaction and high performance, it has been optimized for single-user use. As a result, it is easier to use and lighter.

Looking for a lightweight, high-performance ActivityPub server? Want to use Misskey, but is it heavy to use alone? Try Dolphin.

✨ Gallery

📊 Comparison

Misskey Dolphin Mastodon
Reactions ✔️ ✔️
LTL ✔️ ✔️
STL ✔️
GTL ✔️ ✔️
Messaging ✔️
Games ✔️
Pages ✔️
List ✔️ ✔️ ✔️
Group ✔️

Build time

X axis represents seconds. Lower is better.

📦 Install

Create Dolphin user

Running dolphin as root is not a good idea so we need to create another user for that

For example:

adduser --disabled-password --disabled-login dolphin

Install dependencies

Please install and setup these softwares:

Install Dolphin

  1. Connect to Dolphin user

    su - dolphin

  2. Clone the Dolphin repo

    git clone -b master git://github.com/syuilo/dolphin.git

  3. Navigate to Dolphin directory

    cd dolphin

  4. Install Dolphin dependencies.

    npm i

Configure Dolphin

  1. Copy the .config/example.yml and rename it to default.yml.

    cp .config/example.yml .config/default.yml

  2. Edit default.yml

    e.g. vim .config/default.yml

Build Dolphin

Build dolphin with the following:

NODE_ENV=production npm run build

If you're on Debian... You will need to install the `build-essential`, `python` package.
If you're still encountering errors about some modules... Use node-gyp:
  1. npx node-gyp configure
  2. npx node-gyp build
  3. NODE_ENV=production npm run build

Initialize database

npm run init

That is it.

Launch Dolphin

NODE_ENV=production npm start

Enjoy!

🆕 How to update your Dolphin

  1. git pull
  2. npm i
  3. NODE_ENV=production npm run build
  4. npm run migrate
  5. Restart your Dolphin process to apply changes

🛠️ Contribution

Localization

Visit https://crowdin.com/project/dolphin-ap

dolphin's People

Contributors

mei23 avatar okpierre avatar syuilo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dolphin's Issues

Poll with duplicate entries fails with no feedback

If you draft a poll with duplicate entries, the "create poll" button will click but no action will occur. Perhaps an error should be displayed, if this is not a supported action?

To replicate:

  • draft a poll
  • create mutliple duplicate options e.g. 1. DESU 2. DESU 3. DESU
  • select _postForm.post

通知欄に表示されるリアクションアイコンの表示について

LSDELLCapture500

dolphin.藍.moe に追加したsmiling_aiのようなリアクションをした場合に他のRenoteアクション等と同じようなサイズのせいか横長になってしまう。
対象の画像をCSSで object-fit:contain みたいにして修正すると比率が維持されるのでそんな感じにすると良いと思います。

Frontend locks if "Add to list" is chosen while there are no lists

The frontend locks (scrolling is still possible, but clicking has no action) if you attempt to add (from the profile) a user to a list before creating any lists.

To replicate:

  • have no lists
  • visit a user's profile page
  • select from the ellipse "..." the option addToList

脱parsimmon

なんか知らないけどスクリプトにBufferのポリフィルみたいなのをバンドルしてスクリプトサイズが増加する
一見Bufferと関係の無さそうなparsimmonがなぜBufferに依存しているのかは謎
image

特定ユーザーをフォローしようとするとエラーが出る

内容

特定ユーザー( https://stellaria.network/@Eai )をリモートフォローしようとすると以下のエラーが出てフォローができません。

{
	"message": "Internal error occurred. Please contact us if the error persists.",
	"code": "INTERNAL_ERROR",
	"id": "5d37dbcb-891e-41ca-a3d6-e690c97775ac",
	"kind": "server",
	"info": {
		"e": {
			"message": "invalid person: invalid name",
			"code": "Error",
			"stack": "Error: invalid person: invalid name\n at validatePerson (/home/dolphin/dolphin/built/remote/activitypub/models/person.js:52:20)\n at Object.createPerson (/home/dolphin/dolphin/built/remote/activitypub/models/person.js:102:17)\n at runMicrotasks ()\n at processTicksAndRejections (internal/process/task_queues.js:93:5)\n at async fetchAny (/home/dolphin/dolphin/built/server/api/endpoints/ap/show.js:126:22)\n at async /home/dolphin/dolphin/built/server/api/endpoints/ap/show.js:37:20\n at async Object.exports.default (/home/dolphin/dolphin/built/server/api/call.js:36:12)"
		}
	}
}

環境

Dolphin v1.2.1

OS: Ubuntu 18.04
node.js v12.13.0
postgresql v11.5
redis v4.0.9

TODO

  • ピン留め投稿の表示
  • お気に入り投稿の表示
  • 壁紙設定(インスタンス)
  • 壁紙設定(ユーザー)
  • ダークモード(テーマ機能は無し)
  • Ctrl+Enterで投稿
  • 引用Renote
  • リスト
  • スマホでないときは通知を画面右上などにスタックして表示する
  • ユーザー一覧のページネーション
  • 鍵アカウント
  • 投稿の公開範囲アイコン
  • 読み込みプログレスバー
  • ページタイトルを設定
  • 画像ペーストでアップロード
  • データベース自動作成
  • フォローなどのインポート/エクスポート
  • ファイルのURLを投稿フォームにペーストした時にファイルとして添付できるようにする
  • ユーザーページ遷移時にバグるのを修正する
  • アカウント切り替え
  • フォロー/フォロワー表示
  • カスタム絵文字
  • ログアウト
  • 各種チャートの表示
  • メンション、URL、ハッシュタグなどを色分け
  • Bot設定
  • アンケート
  • リモートファイルのキャッシュの設定など
  • ハッシュタグ検索
  • リアクションカスタマイズ
  • リアクション者一覧ツールチップ
  • 添付動画再生
  • プロキシアカウント設定
  • モバイルのpopupのtransfotm origin
  • renoteダイアログの崩れ
  • モバイルでのリアクションピッカーのサイズ調整
  • アンケートの表示修正
  • ユーザーメニューの各種動作実装
  • 投稿メニューを直す
  • ILIKE検索
  • 返信通知
  • タイトルで新規投稿を知らせるのはやめてtag付きNotificationにする
  • リモートフォローページ
  • デスクトップ表示の最適化
  • リモートユーザーをリモートサーバーで表示できるようにする
  • インスタンスブロック
  • リモートファイルを一斉に削除
  • ジョブクリア
  • botからのフォローのみ承認制にする
  • ワードミュート
  • ミュート/ブロック一覧の確認
  • インスタンス検索
  • インスタンスのフォロー/フォロワーをポップアップ表示
  • リンク構文
  • パスワード変更
  • ストリーミング切断時にページ再度読み込みできるようにする

Thumbnails do not downsize

I uploaded a 35MB gif as my profile picture.
It does not appear to have been downsized (tested with wget).

The name is thumbnail-f6fcdd21-ca8b-41ad-a9bc-64b2616355a4 but the gif is still 35MB.

Don't hardcode config path

I'm packaging Dolphin with Nix and packages installed with Nix are installed read-only. I believe I'll be able to work around everything else, but short of patching Dolphin (which I will do for the short-term) it would make my package very user unfriendly if the config path can't be passed as an argument or environmental variable.

I imagine there are many other situations that this would be a useful feature as well.

トーク機能

Misskeyではトークが連合するようになったのでDolphinにもトークがあってもよさそう。

Instance proxy account

What is this used for?

A proxy account acts as a remote follower for users on other instances. Example: When a remote user is added to a list, their posts would not be delivered to the instance if nobody follows them. The proxy account would follow them so the posts are delivered.

How do we activate? Can we use existing instance account or do we need to create a new account?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.