Fast, fun, ActivityPub server, powered by Go.
Go to file
Tobi Smethurst 5460271bb5
Auth flow fixes (#82)
* preliminary fixes to broken auth flow

* fix some auth/cookie weirdness

* fmt
2021-07-08 11:32:31 +02:00
.github fix lint errors 2021-03-20 19:44:18 +01:00
cmd/gotosocial put version in binary properly (#73) 2021-06-28 12:17:20 +02:00
docs try some doc changes 2021-03-01 11:52:49 +01:00
example Api/v1/accounts (#8) 2021-04-01 20:46:45 +02:00
internal Auth flow fixes (#82) 2021-07-08 11:32:31 +02:00
scripts Api/v1/statuses (#11) 2021-04-19 19:42:19 +02:00
testrig clean up some weirdness in the router (#80) 2021-07-07 15:46:42 +02:00
web Fix 404 contact (#74) 2021-06-28 13:52:03 +02:00
.gitignore new styling for frontpage, update login and authorize templates (#46) 2021-06-21 19:46:10 +02:00
build.sh put version in binary properly (#73) 2021-06-28 12:17:20 +02:00
CONTRIBUTING.md put version in binary properly (#73) 2021-06-28 12:17:20 +02:00
Dockerfile put version in binary properly (#73) 2021-06-28 12:17:20 +02:00
GETTINGSTARTED.md put version in binary properly (#73) 2021-06-28 12:17:20 +02:00
go.mod add web handler to testrig 2021-06-21 20:40:56 +02:00
go.sum new styling for frontpage, update login and authorize templates (#46) 2021-06-21 19:46:10 +02:00
LICENSE
PROGRESS.md Blocklist import (#77) 2021-07-06 13:29:11 +02:00
README.md Blocklist import (#77) 2021-07-06 13:29:11 +02:00
version put version in binary properly (#73) 2021-06-28 12:17:20 +02:00

GoToSocial

patrons receives

Federated social media software.

Sloth logo made by Freepik from www.flaticon.com

GoToSocial is a Fediverse server project, written in Golang. It provides an alternative to existing projects such as Mastodon, Pleroma, Friendica, PixelFed etc.

One of the key differences between GoToSocial and those other projects is that GoToSocial doesn't include an integrated client front-end (ie., a webapp). Instead, like the Matrix.org's Synapse project, it provides only a server implementation, some static web pages for profiles and posts, and a well-documented API. On this API, developers are free to build any front-end implementation or mobile application that they wish.

Because the server implementation is as generic and flexible/configurable as possible, GoToSocial provides the basis for many different types of social media experience, whether Tumblr-like, Facebook-like, or Twitter-like.

Features Wishlist

A grab-bag of things that are already included or will be included in the project if time allows:

  • Various federation modes, including reputation-based 'slow' federation, 'normal' federation, allowlist-only federation, and zero federation.
  • Local-only posting, and granular post settings including 'rebloggable/boostable', 'likeable', 'replyable'.
  • Character limit for posts that's easy for admins to configure (no messing around in the source code).
  • Groups and group posting!
  • Built-in, automatic LetsEncrypt support (no messing around with Nginx or Certbot).
  • Good performance on lower-powered machines like Raspberry Pi, old laptops, tiny VPSes (the test VPS has 1gb of ram and 1 cpu core).
  • Subscribeable and shareable allowlists/denylists for federation.

Implementation Status

Things are moving on the project! As of July 2021 you can now:

Admin

  • Build and deploy GoToSocial as a binary, with automatic LetsEncrypt certificate support built-in.
  • Create, confirm, and promote users using self-documented CLI tool.

User

  • Connect to the running instance via Tusky or Pinafore, using email address and password (stored encrypted).
  • Post/delete posts.
  • Reply/delete replies.
  • Fave/unfave posts.
  • Post images and gifs.
  • Boost stuff/unboost stuff.
  • Set your profile info (including header and avatar).
  • Follow people/unfollow people.
  • Accept follow requests from people.
  • Post followers only/direct/public/unlocked.
  • Customize posts with further flags: federated (y/n), replyable (y/n), likeable (y/n), boostable (y/n) -- not supported through Pinafore/Tusky yet.
  • Get notifications for mentions/replies/likes/boosts.
  • View local timeline.
  • View and scroll home timeline (with ~10ms latency hell yeah).
  • Stream new posts, notifications and deletes through a websockets connection via Pinafore.

Federation

  • Federation support and interoperability with Mastodon and others.
  • Domain blocking: create, update, delete, and export domain blocks.
  • Domain blocking: import lists of domain blocks -- no more blocking domains one-by-one.

In other words, a deployed GoToSocial instance is already pretty useable!

For a detailed view on progress made towards a v0.1.0 (beta) release, see here.

Getting Started

Proper documentation for running and maintaining GoToSocial will be forthcoming in the first prerelease.

For now (if you want to run it pre-alpha, like a beast), check out the quick and dirty getting started guide.

Contact

For questions and comments, you can reach out to tobi on the Fediverse here or mail admin@gotosocial.org.

Sponsorship

Currently, this project is funded using Liberapay, to put bread on the table while work continues on it.

If you want to sponsor this project, you can do so here! <3

Image Attribution

Logo made by Freepik from www.flaticon.com.