takahe/README.md

3.1 KiB

takahē

A very experimental Fediverse server for microblogging/"toots". Not fully functional yet - I'm still working on making all the basic bits work! For more background and information, see my blog posts about it.

Indended features:

  • Can run on serverless hosting (no need for worker daemons)
  • Multiple account domains possible per server
  • Async evented core for fan-out/delivery
  • Mastodon client API compatible (eventually)

Deployment

Requirements:

  • Python 3.11
  • PostgreSQL 14+
  • Lots of patience This is very experimental

Setup

More deployment docs will come soon! Just know that you need to run the Takahē Django app, and then either hit /.stator/runner/ or run ./manage.py runstator at least every 30 seconds.

Roadmap

Takahē is still under very active development towards something I'm willing to call a beta. I've grouped features here into milestones, along with if they're done yet or not. None of this is final, and the further into the future it is, the less sure I am about it.

Alpha

  • Create posts
  • Set post visibility
  • Receive posts
  • Handle received post visibility (unlisted vs public only)
  • Receive post deletions
  • Receive post edits
  • Set content warnings on posts
  • Show content warnings on posts
  • Receive images on posts
  • Receive reply info
  • Create boosts
  • Receive boosts
  • Create likes
  • Receive likes
  • Create follows
  • Undo follows
  • Receive and accept follows
  • Receive follow undos
  • Do outgoing mentions properly
  • Home timeline (posts and boosts from follows)
  • Notifications page (followed, boosted, liked)
  • Local timeline
  • Federated timeline
  • Profile pages
  • Settable icon and background image for profiles
  • User search
  • Following page
  • Followers page
  • Multiple domain support
  • Multiple identity support
  • Serverless-friendly worker subsystem
  • Settings subsystem
  • Server management page
  • Domain management page
  • Email subsystem
  • Signup flow
  • Password reset flow

Beta

  • Attach images to posts
  • Edit posts
  • Delete posts
  • Password change flow
  • Fetch remote post images locally and thumbnail
  • Show follow pending states
  • Manual approval of followers
  • Reply threading on post creation
  • Display posts with reply threads
  • Create polls on posts
  • Receive polls on posts
  • Emoji fetching and display
  • Emoji creation
  • Image descriptions
  • Hashtag search
  • Flag for moderation
  • Moderation queue
  • User management page
  • Server defederation
  • Filters for posts/boosts
  • OAuth subsystem

1.0

  • IP banning
  • Trends subsystem and moderation
  • Server announcements
  • Automated post deletion
  • Post popularity system (for long gaps between timeline views)
  • Mastodon client API

Future

  • Relays?
  • Mastodon backup import? (would need url mapping for actors)

Contributing

If you'd like to contribute, please read CONTRIBUTING.md.