misstodon

爱发电 GitHub go.mod Go version Build images License

Misskey Mastodon-compatible APIs, Getting my Misskey instance to work in Elk

Warning
This project is still in the early stage of development, and is not ready for production use.

Demo

Elk: https://elk.zone/misstodon.aika.dev/public
Elk: https://elk.zone/mt_misskey_moe.aika.dev/public
Phanpy: https://phanpy.social/#/mt_misskey_io.aika.dev/p

How to Use

Warning
aika.dev is a demonstration site and may not guarantee high availability. We recommend self-hosting for greater control.

The simplest usage method is to specify the instance address using a domain name prefix.

  1. Replace underscores (“_”) in the domain name with double underscores (“__”).
  2. Replace dots (“.”) in the domain name with underscores (“_”).
  3. Prepend “mt_” to the modified string.
  4. Append “.aika.dev” to the modified string.

When processing misskey.io according to the described steps, it will be transformed into the result: mt_misskey_io.aika.dev.

curl --request GET --url 'https://mt_misskey_io.aika.dev/nodeinfo/2.0' | jq .

Self-Hosting with Default Instance Configuration

Edit the ‘config.toml’ file, and within the “[proxy]” section, modify the “fallback_server” field. For example:

[proxy]
fallback_server = "misskey.io"

If you are deploying using Docker Compose, you can specify the default instance by modifying the ‘docker-compose.yml’ file. Look for the ‘MISSTODON_FALLBACK_SERVER’ field within the Docker Compose configuration and set it to the desired default instance.

Instance Specification via Query Parameter

curl --request GET --url 'https://misstodon.aika.dev/nodeinfo/2.0?server=misskey.io' | jq .

Instance Specification via Header

curl --request GET --url https://misstodon.aika.dev/nodeinfo/2.0 --header 'x-proxy-server: misskey.io' | jq .

Running your own instance

The simplest way is to use Docker Compose. Download the docker-compose.yml file to your local machine. Customize it to your needs, particularly by changing the “MISSTODON_FALLBACK_SERVER” in the “environment” to your preferred Misskey instance domain. Afterward, run the following command:

docker-compose up -d

Important
For security and privacy, we strongly discourage using HTTP directly. Instead, consider configuring a TLS certificate or utilizing Misstodon’s AutoTLS feature for enhanced security.

Roadmap

- [x] .well-known - [x] `GET` /.well-known/host-meta - [x] `GET` /.well-known/webfinger - [x] `GET` /.well-known/nodeinfo - [x] `GET` /.well-known/change-password - [x] Nodeinfo - [x] `GET` /nodeinfo/2.0 - [ ] Auth - [x] `GET` /oauth/authorize - [x] `POST` /oauth/token - [x] `POST` /api/v1/apps - [ ] `GET` /api/v1/apps/verify_credentials - [x] Instance - [x] `GET` /api/v1/instance - [x] `GET` /api/v1/custom_emojis - [ ] Accounts - [x] `GET` /api/v1/accounts/lookup - [x] `GET` /api/v1/accounts/:user_id - [x] `GET` /api/v1/accounts/verify_credentials - [ ] `PATCH` /api/v1/accounts/update_credentials - [x] `GET` /api/v1/accounts/relationships - [ ] `GET` /api/v1/accounts/:user_id/statuses - [x] `GET` /api/v1/accounts/:user_id/following - [x] `GET` /api/v1/accounts/:user_id/followers - [x] `POST` /api/v1/accounts/:user_id/follow - [x] `POST` /api/v1/accounts/:user_id/unfollow - [x] `GET` /api/v1/follow_requests - [x] `POST` /api/v1/accounts/:user_id/mute - [x] `POST` /api/v1/accounts/:user_id/unmute - [x] `GET` /api/v1/bookmarks - [x] `GET` /api/v1/favourites - [ ] `GET` /api/v1/preferences - [ ] Statuses - [x] `POST` /api/v1/statuses - [x] `GET` /api/v1/statuses/:status_id - [x] `DELETE` /api/v1/statuses/:status_id - [x] `GET` /api/v1/statuses/:status_id/context - [x] `POST` /api/v1/statuses/:status_id/reblog - [x] `POST` /api/v1/statuses/:status_id/favourite - [x] `POST` /api/v1/statuses/:status_id/unfavourite - [x] `POST` /api/v1/statuses/:status_id/bookmark - [x] `POST` /api/v1/statuses/:status_id/unbookmark - [ ] `GET` /api/v1/statuses/:status_id/favourited_by - [ ] `GET` /api/v1/statuses/:status_id/reblogged_by - [x] Timelines - [x] `GET` /api/v1/timelines/home - [x] `GET` /api/v1/timelines/public - [x] `GET` /api/v1/timelines/tag/:hashtag - [ ] `WS` /api/v1/streaming - [ ] Notifications - [x] `GET` /api/v1/notifications - [ ] `POST` /api/v1/push/subscription - [ ] `GET` /api/v1/push/subscription - [ ] `PUT` /api/v1/push/subscription - [ ] `DELETE` /api/v1/push/subscription - [ ] Search - [ ] `GET` /api/v2/search - [ ] Conversations - [ ] `GET` /api/v1/conversations - [ ] `DELETE` /api/v1/conversations/:id - [ ] `POST` /api/v1/conversations/:id/read - [x] Trends - [x] `GET` /api/v1/trends/statuses - [x] `GET` /api/v1/trends/tags - [x] Media - [x] `POST` /api/v1/media - [x] `POST` /api/v2/media

Information for Developers

Contributing Information about contributing to this project.

Sponsors

Sponsors

Contributors

Contributors