Powerful, configurable and modular federated server using the Versia Protocol
Find a file
2023-09-30 16:35:37 -10:00
database Fix bugs introduced by last commit 2023-09-30 16:35:37 -10:00
pages Rename project to Lysand 2023-09-14 19:08:59 -10:00
server/api Fix bugs introduced by last commit 2023-09-30 16:35:37 -10:00
tests Add new Instance methods, add tests for it as well 2023-09-28 13:58:05 -10:00
types Implement WebFinger, rework TS 2023-09-12 10:48:10 -10:00
utils Small refactors 2023-09-26 12:33:43 -10:00
.eslintrc.cjs guh 2023-09-26 12:19:10 -10:00
.gitignore Add logging options 2023-09-14 17:21:38 -10:00
.prettierrc Add stricter ESLint rules 2023-09-12 14:29:13 -10:00
bun.lockb guh 2023-09-14 15:22:27 -10:00
index.ts Add new API endpoint (accounts/verify_credentials) 2023-09-21 16:15:12 -10:00
LICENSE Add better README 2023-09-14 15:42:56 -10:00
package.json Rename project to Lysand 2023-09-14 19:08:59 -10:00
README.md Add new API endpoints 2023-09-27 08:45:07 -10:00
tsconfig.json Implement WebFinger, rework TS 2023-09-12 10:48:10 -10:00
uno.config.ts guh 2023-09-14 15:22:27 -10:00

Lysand

What is this?

This is a project to create a federated social network based on the ActivityPub standard. It is currently in early alpha phase, with very basic federation and API support.

This project aims to be a fully featured social network, with a focus on privacy and security. It will implement the Mastodon API for support with clients that already support Mastodon or Pleroma.

Note: This project is not affiliated with Mastodon or Pleroma, and is not a fork of either project. It is a new project built from the ground up.

How do I run it?

Requirements

  • The Bun Runtime, version 0.8 or later (use of the latest version is recommended)
  • A PostgreSQL database
  • (Optional but recommended) A Linux-based operating system

Note

: We will not be offerring support to Windows or MacOS users. If you are using one of these operating systems, please use a virtual machine or container to run Lysand.

Installation

  1. Clone this repository
git clone https://github.com/CPlusPatch/lysand.git
  1. Install the dependencies
bun install
  1. Set up a PostgreSQL database

  2. Copy the config.toml.example file to config.toml and fill in the values (you can leave most things to the default, but you will need to configure things such as the database connection)

Running

To run the server, simply run the following command:

bun start

Contributing

Contributions are welcome! Please see the CONTRIBUTING.md file for more information.

Federation

Warning

: Federation has not been tested outside of automated tests. It is not recommended to use this software in production.

Lysand is currently able to federate basic Note objects with Create, Update and Delete activities supported. (as well as Accept and Reject, but with no tests)

Planned federation features are:

  • Activities: Follow, Block, Undo, Announce, Like, Dislike, Flag, Ignore and more
  • Objects: Emoji and more

API

Lysand implements the Mastodon API, with some extensions. The API is currently in early alpha, and is not recommended for use in production.

Working endpoints are:

  • /api/v1/accounts/:id
  • /api/v1/accounts/:id/statuses
  • /api/v1/accounts/:id/follow
  • /api/v1/accounts/:id/unfollow
  • /api/v1/accounts/:id/block
  • /api/v1/accounts/:id/unblock
  • /api/v1/accounts/:id/mute
  • /api/v1/accounts/:id/unmute
  • /api/v1/accounts/:id/pin
  • /api/v1/accounts/:id/unpin
  • /api/v1/accounts/:id/note
  • /api/v1/accounts/relationships
  • /api/v1/accounts/update_credentials
  • /api/v1/accounts/verify_credentials
  • /api/v1/accounts/familiar_followers
  • /api/v1/statuses/:id (GET, DELETE)
  • /api/v1/statuses
  • /api/v1/apps
  • /api/v1/apps/verify_credentials
  • /oauth/authorize
  • /oauth/token

License

This project is licensed under the AGPL-3.0.