mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-30 22:22:25 -05:00 
			
		
		
		
	readme updating (#92)
This commit is contained in:
		
					parent
					
						
							
								2cebac592f
							
						
					
				
			
			
				commit
				
					
						1dac7eb9e0
					
				
			
		
					 2 changed files with 102 additions and 43 deletions
				
			
		
							
								
								
									
										33
									
								
								PROGRESS.md
									
										
									
									
									
								
							
							
						
						
									
										33
									
								
								PROGRESS.md
									
										
									
									
									
								
							|  | @ -1,5 +1,38 @@ | ||||||
| # Progress | # Progress | ||||||
| 
 | 
 | ||||||
|  | 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. | ||||||
|  | 
 | ||||||
|  | ## To-do list | ||||||
|  | 
 | ||||||
| * [ ] Client-To-Server (Client REST API) | * [ ] Client-To-Server (Client REST API) | ||||||
|   * [ ] Token and sign-in |   * [ ] Token and sign-in | ||||||
|     * [x] /api/v1/apps POST                                 (Create an application) |     * [x] /api/v1/apps POST                                 (Create an application) | ||||||
|  |  | ||||||
							
								
								
									
										112
									
								
								README.md
									
										
									
									
									
								
							
							
						
						
									
										112
									
								
								README.md
									
										
									
									
									
								
							|  | @ -6,72 +6,94 @@ Federated social media software. | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
| 
 | 
 | ||||||
| GoToSocial is a Fediverse server project, written in Golang. It provides an alternative to existing projects such as [Mastodon](https://joinmastodon.org/), [Pleroma](https://pleroma.social/), [Friendica](https://friendica.net), [PixelFed](https://pixelfed.org/) etc. | GoToSocial is a Fediverse server project, written in Golang. It provides a lightweight, customizable, and safety-focused alternative to existing projects such as [Mastodon](https://joinmastodon.org/), [Pleroma](https://pleroma.social/), [Friendica](https://friendica.net), [PixelFed](https://pixelfed.org/) 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](https://github.com/matrix-org/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. | 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](https://github.com/matrix-org/synapse) project, it provides only a server implementation, some static pages, and a well-documented API. On top of 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. | 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 | ## Features | ||||||
| 
 | 
 | ||||||
| A grab-bag of things that are already included or will be included in the project if time allows: | A grab-bag of things that are already included or will be included in the first release(s) of the project: | ||||||
| 
 | 
 | ||||||
| * Various federation modes, including reputation-based 'slow' federation, 'normal' federation, allowlist-only federation, and zero federation. | * Mastodon API compatible, which means full support for apps you already know and love like [Tusky](https://tusky.app/) and [Pinafore](https://pinafore.social/). | ||||||
| * Local-only posting, and granular post settings including 'rebloggable/boostable', 'likeable', 'replyable'. | * Various federation modes: | ||||||
| * Character limit for posts that's easy for admins to configure (no messing around in the source code). |   * 'Normal' federation | ||||||
| * Groups and group posting! |   * Allowlist-only federation | ||||||
|  |   * Zero federation. | ||||||
|  | * Granular post settings: | ||||||
|  |   * Local-only posts. | ||||||
|  |   * Rebloggable/boostable toggle. | ||||||
|  |   * 'Likeable' toggle. | ||||||
|  |   * 'Replyable' toggle. | ||||||
|  | * Easy customizability for admins, without messing around in the source code: | ||||||
|  |   * Adjustable post length. | ||||||
|  |   * Media upload size settings. | ||||||
| * Built-in, automatic LetsEncrypt support (no messing around with Nginx or Certbot). | * 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). | * Good performance on lower-powered machines like Raspberry Pi, old laptops and tiny VPSes (the test VPS has 1gb of ram and 1 cpu core). | ||||||
| * Subscribeable and shareable allowlists/denylists for federation. | * Subscribeable and shareable allow/denylists for federation. | ||||||
|  | * Strict privacy enforcement for posts and strict blocking logic. | ||||||
|  | * HTTP signature authentication by default (equivalent to Mastodon's [Secure Mode](https://docs.joinmastodon.org/spec/security/#http) being always-on). | ||||||
|  | * No external dependencies apart from a database. Binary + static assets only. | ||||||
| 
 | 
 | ||||||
| ## Implementation Status | ### Wishlist | ||||||
| 
 | 
 | ||||||
| Things are moving on the project! As of July 2021 you can now: | These cool things will be implemented if time allows (because we really want them): | ||||||
| 
 | 
 | ||||||
| ### Admin | * Groups and group posting! | ||||||
|  | * Reputation-based 'slow' federation. | ||||||
|  | * User-selectable custom templates for rendering public posts: | ||||||
|  |   * Twitter-style | ||||||
|  |   * Blogpost | ||||||
|  |   * Gallery | ||||||
|  |   * Etc. | ||||||
| 
 | 
 | ||||||
| * Build and deploy GoToSocial as a binary, with automatic LetsEncrypt certificate support built-in. | ## Status | ||||||
| * Create, confirm, and promote users using self-documented CLI tool. |  | ||||||
| 
 | 
 | ||||||
| ### User | Work began on the project around February 2021, and the project is still in prerelease. | ||||||
| 
 | 
 | ||||||
| * Connect to the running instance via Tusky or Pinafore, using email address and password (stored encrypted). | At this point, GoToSocial is already deployable and very useable, and it federates cleanly with other Fediverse servers. | ||||||
| * 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 | For a detailed view on what's implemented and what's not, and progress made towards a first v0.1.0 (beta) release, see [here](./PROGRESS.md). | ||||||
| 
 |  | ||||||
| * 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](./PROGRESS.md). |  | ||||||
| 
 | 
 | ||||||
| ## Getting Started | ## Getting Started | ||||||
| 
 | 
 | ||||||
| Proper documentation for running and maintaining GoToSocial will be forthcoming in the first prerelease. | Proper documentation for running and maintaining GoToSocial will be forthcoming in the first release. | ||||||
| 
 | 
 | ||||||
| For now (if you want to run it pre-alpha, like a beast), check out the [quick and dirty getting started guide](./GETTINGSTARTED.md). | For now (if you want to run it pre-alpha, like a beast), check out the [quick and dirty getting started guide](./GETTINGSTARTED.md). | ||||||
| 
 | 
 | ||||||
| ## Contact | ## Contact | ||||||
| 
 | 
 | ||||||
| For questions and comments, you can reach out to tobi on the Fediverse [here](https://ondergrond.org/@dumpsterqueer) or mail admin@gotosocial.org. | For questions and comments, you can reach out to tobi on the Fediverse [here](https://ondergrond.org/@dumpsterqueer), mail [admin@gotosocial.org](mailto:admin@gotosocial.org), or [join our Matrix channel](https://matrix.to/#/!gotosocial:ondergrond.org). | ||||||
| 
 | 
 | ||||||
| ## Sponsorship | For bugs and feature requests, please check to see if there's [already an issue](https://github.com/superseriousbusiness/gotosocial/issues), and if not, open one or use one of the above channels to make a request (if you don't have a Github account). | ||||||
|  | 
 | ||||||
|  | ## Credits | ||||||
|  | 
 | ||||||
|  | The following libraries and frameworks are used by GoToSocial, with gratitude 💕 | ||||||
|  | 
 | ||||||
|  | * [buckket/go-blurhash](https://github.com/buckket/go-blurhash); used for generating image blurhashes. | ||||||
|  | * [gin-gonic/gin](https://github.com/gin-gonic/gin); speedy router engine. | ||||||
|  |   * [gin-contrib/cors](https://github.com/gin-contrib/cors); Gin CORS middleware. | ||||||
|  |   * [gin-contrib/sessions](https://github.com/gin-contrib/sessions); Gin sessions middleware. | ||||||
|  |   * [gin-contrib/static](https://github.com/gin-contrib/static); Gin static page middleware. | ||||||
|  | * [go-fed/activity](https://github.com/go-fed/activity); Golang ActivityPub/ActivityStreams library. | ||||||
|  | * [go-fed/httpsig](https://github.com/go-fed/httpsig); secure HTTP signature library. | ||||||
|  | * [go-pg/pg](https://github.com/go-pg/pg); Postgres ORM library. | ||||||
|  | * [google/uuid](https://github.com/google/uuid); UUID generation. | ||||||
|  | * [gorilla/websocket](https://github.com/gorilla/websocket); Websocket connectivity. | ||||||
|  | * [h2non/filetype](https://github.com/h2non/filetype); filetype checking. | ||||||
|  | * [oklog/ulid](https://github.com/oklog/ulid); sequential, database-friendly ID generation. | ||||||
|  | * [sirupsen/logrus](https://github.com/sirupsen/logrus); logging. | ||||||
|  | * [stretchr/testify](https://github.com/stretchr/testify); test framework. | ||||||
|  | * [superseriousbusiness/exifremove](https://github.com/superseriousbusiness/exifremove) forked from [scottleedavis/go-exif-remove](https://github.com/scottleedavis/go-exif-remove); EXIF data removal. | ||||||
|  | * [superseriousbusiness/oauth2](https://github.com/superseriousbusiness/oauth2) forked from [go-oauth2/oauth2](https://github.com/go-oauth2/oauth2); oauth server framework and token handling. | ||||||
|  | * [urfave/cli](https://github.com/urfave/cli); command-line interface framework. | ||||||
|  | * [wagslane/go-password-validator](https://github.com/wagslane/go-password-validator); password strength validation. | ||||||
|  | 
 | ||||||
|  | ## Sponsorship + Funding | ||||||
| 
 | 
 | ||||||
| Currently, this project is funded using Liberapay, to put bread on the table while work continues on it. | Currently, this project is funded using Liberapay, to put bread on the table while work continues on it. | ||||||
| 
 | 
 | ||||||
|  | @ -80,3 +102,7 @@ If you want to sponsor this project, you can do so [here](https://liberapay.com/ | ||||||
| ### Image Attribution | ### Image Attribution | ||||||
| 
 | 
 | ||||||
| Logo made by [Freepik](https://www.freepik.com) from [www.flaticon.com](https://www.flaticon.com/). | Logo made by [Freepik](https://www.freepik.com) from [www.flaticon.com](https://www.flaticon.com/). | ||||||
|  | 
 | ||||||
|  | ### License | ||||||
|  | 
 | ||||||
|  | GoToSocial is licensed under the [GNU AGPL v3](LICENSE). | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue