Golang fediverse server.

Overview

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 front-end (ie., a webapp). Instead, like the Matrix.org's Synapse project, it provides only a server implementation 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.

Goals

The first goal of the project is to implement a feature set comparable to Mastodon: server logic, federation logic, and a client API that's a superset of the Mastodon API described here.

Once the client API is implemented, it should allow existing Mastodon apps like Tusky and Whalebird to work with GoToSocial.

After that, custom features will be added that will necessitate expanding the API.

Wishlist

Among other things:

  • Reputation-based 'slow' federation.
  • Granular post settings.
  • Local-only posting.
  • Easily-configurable character limit.
  • Groups and group posting.

Implementation Status

For an up-to-date view on progress made towards a v1.0.0 release, see here.

Contact

For questions and comments, you can reach out to Tobi on the Fediverse here or mail [email protected].

Sponsorship

Currently, this project is funded using Liberapay, to put bread on the table while Tobi works on it. If you want to sponsor this project and get your name on this repo, you can do so here! <3

Sponsors

None yet! Go For It

Image Attribution

Logo made by Freepik from www.flaticon.com.

Issues
  • [bug] can't follow mastodon accounts: Unauthorized

    [bug] can't follow mastodon accounts: Unauthorized

    trying to follow @[email protected] from @[email protected]:

    Apr 14 20:02:20 social gotosocial[28943]: time=2022-04-14T20:02:20Z level=info msg=authentication not passed for public key owner https://glitch.social/actor; signature value was 'keyId="https://glitch.social/actor#main-key",algorithm="rsa-sha256",headers="(request-target) host date accept",signature="I3v2a1AuO0hVB3fib83VZARhUL3BO9HXbdvtHaq8L2vqu5gYWUy1z64Y7JNJ2CX1WQauZ+J+49fx3eK5BnU3O+bEJo1B6r4VDW7mLVzRemzHvQOLMgySLXtncn16P2PriimqQ1Ejn/q1B8O//POcs0n7Ot7z2pc4Uu3BMTY9eek7u6zv1hfXEoMavROwdyvJ2vBTxc6+1If185OVIJeVkOMivtufYRNkl1w29EaQVVsB0aRvL+oHm16+a5cCHV7MHnuEtyvOk0Ognt1n4/LtRPfp/VKpDKznzqmrGRA45UdzQncB8DpbB6OEQtl+Cd+kigbIQ6Ja+9NzAZyFR86Abw=="' func=AuthenticateFederatedRequest
    Apr 14 20:02:20 social gotosocial[28943]: time=2022-04-14T20:02:20Z level=info msg=not authorized func=UsersGETHandler url=/users/me
    Apr 14 20:02:20 social gotosocial[28943]: time=2022-04-14T20:02:20Z level=info msg=[8.08787ms] Unauthorized: wrote 54 bytes clientIP=192.168.17.10 latency=8.08787ms method=GET path=/users/me statusCode=401 userAgent=http.rb/4.4.1 (Mastodon/3.4.6; +https://glitch.social/)
    Apr 14 20:02:20 websrv2-hel1 /usr/local/bin/gotosocial[28944]: time=2022-04-14T20:02:20Z level=error msg=batch deliver had at least one failure: POST request to https://glitch.social/users/meena/inbox failed (401): 401 Unauthorized 
    Apr 14 20:02:20 social gotosocial[28943]: time=2022-04-14T20:02:20Z level=error msg=batch deliver had at least one failure: POST request to https://glitch.social/users/meena/inbox failed (401): 401 Unauthorized
    

    similar failures occur when i try to follow an account on a newer codebase, with the federation fixes:

    Apr 14 21:09:58 social gotosocial[28943]: time=2022-04-14T21:09:58Z level=debug msg=entering NewID func=NewID newID={"@context":"https://www.w3.org/ns/activitystreams","actor":"https://soc.eena.me/users/me","id":"https://soc.eena.me/users/me/follow/012X9043BMGPWHXEY6W3QZ6VWR","object":"https://cathode.church/users/meena","to":"https://cathode.church/users/meena","type":"Follow"}
    Apr 14 21:09:58 social gotosocial[28943]: time=2022-04-14T21:09:58Z level=debug msg=entering Create create={"@context":"https://www.w3.org/ns/activitystreams","actor":"https://soc.eena.me/users/me","id":"https://soc.eena.me/users/me/follow/012X9043BMGPWHXEY6W3QZ6VWR","object":"https://cathode.church/users/meena","to":"https://cathode.church/users/meena","type":"Follow"} func=Create
    Apr 14 21:09:58 social gotosocial[28943]: time=2022-04-14T21:09:58Z level=debug msg=entering Get func=Get id=https://soc.eena.me/users/me
    Apr 14 21:09:58 social gotosocial[28943]: time=2022-04-14T21:09:58Z level=info msg=[22.09331ms] OK: wrote 176 bytes clientIP=192.168.17.10 latency=22.09331ms method=POST path=/api/v1/accounts/01FXX82TB2C3H026FKG18T9ZBY/follow statusCode=200 userAgent=Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:100.0) Gecko/20100101 Firefox/100.0
    Apr 14 21:09:59 social gotosocial[28943]: time=2022-04-14T21:09:59Z level=info msg=[2.991909ms] OK: wrote 554 bytes clientIP=192.168.17.10 latency=2.991909ms method=GET path=/users/me/main-key statusCode=200 userAgent=http.rb/5.0.4 (Mastodon/3.5.1+glitch+cathode; +https://cathode.church/)
    Apr 14 21:10:00 social gotosocial[28943]: time=2022-04-14T21:10:00Z level=debug msg=performing GET to https://cathode.church/actor#main-key func=Dereference
    Apr 14 21:10:00 social gotosocial[28943]: time=2022-04-14T21:10:00Z level=info msg=authentication not passed for public key owner https://cathode.church/actor; signature value was 'keyId="https://cathode.church/actor#main-key",algorithm="rsa-sha256",headers="(request-target) host date accept",signature="TnNY5jJVteujED5P5Zy7oNvJUeiKqahpM5+B+3rnLSWQEzSwR+zh5asanc3oSWqtYcHMfUa38PVeYS4LnEKpEXvarYYOyFMQ2sEaJfMevODyCOv8+Z0py2e2USdu3gf+lT808mAESaE2OLIK5lG/EH19Cp4wJVWK60/P+p2TzCgYmCBW4hd78PXCNIvyg1LDAiCqpH90YQSFVM7nbzdwI8w2T62ckLX9jCk5zgvcFikD5F3OPl3ELo2e9fZCkOHZ580NJXy2d4G9J2cDNWBnu9AQFFWBI5UAUBqWVkSfG/YyZs0qN9vyANmlFpqMcUDnvR+XsZ1Ir4oLhdjBm2a/mg=="' func=AuthenticateFederatedRequest
    Apr 14 21:10:00 social gotosocial[28943]: time=2022-04-14T21:10:00Z level=info msg=not authorized func=UsersGETHandler url=/users/me
    Apr 14 21:10:00 social gotosocial[28943]: time=2022-04-14T21:10:00Z level=info msg=[287.51058ms] Unauthorized: wrote 54 bytes clientIP=192.168.17.10 latency=287.51058ms method=GET path=/users/me statusCode=401 userAgent=http.rb/5.0.4 (Mastodon/3.5.1+glitch+cathode; +https://cathode.church/)
    Apr 14 21:10:01 websrv2-hel1 /usr/local/bin/gotosocial[28944]: time=2022-04-14T21:10:01Z level=error msg=batch deliver had at least one failure: POST request to https://cathode.church/users/meena/inbox failed (401): 401 Unauthorized 
    Apr 14 21:10:01 social gotosocial[28943]: time=2022-04-14T21:10:01Z level=error msg=batch deliver had at least one failure: POST request to https://cathode.church/users/meena/inbox failed (401): 401 Unauthorized
    
    here's my httpd.conf
    MDomain soc.eena.me auto
    
    <VirtualHost *:80>
      ServerName soc.eena.me
      DocumentRoot "/var/empty"
    </VirtualHost>
    
    <VirtualHost *:443>
      SSLEngine On
      ServerName soc.eena.me
      RewriteEngine on
      RewriteCond %{HTTP:Connection} Upgrade [NC]
      RewriteCond %{HTTP:Upgrade} websocket [NC]
      RewriteRule / wss://social:8000//$1 [P,L]
      ProxyPassReverse / wss://social:8000/
      ProxyPass / http://social:8080/
      ProxyPassReverse / http://social:8080/
      RequestHeader set "X-Forwarded-Proto" expr=https
    
    </VirtualHost>
    
    and my gotosocial config
    log-level: "debug"
    application-name: "Meena's Social"
    host: "soc.eena.me"
    account-domain: "soc.eena.me"
    protocol: "https"
    bind-address: "[::]"
    port: 8080
    trusted-proxies:
      - "192.162.17.1/24"
    db-type: "sqlite"
    db-address: "/var/db/gotosocial/db/sqlite.db"
    web-template-base-dir: "/usr/local/www/gotosocial/template/"
    web-asset-base-dir: "/usr/local/www/gotosocial/assets/"
    accounts-registration-open: false
    accounts-approval-required: true
    accounts-reason-required: true
    media-image-max-size: 2097152
    media-video-max-size: 10485760
    media-description-min-chars: 0
    media-description-max-chars: 500
    storage-backend: "local"
    storage-local-base-path: "/var/db/gotosocial/storage"
    statuses-max-chars: 5000
    statuses-cw-max-chars: 100
    statuses-poll-max-options: 6
    statuses-poll-option-max-chars: 50
    statuses-media-max-files: 6
    letsencrypt-enabled: false
    oidc-enabled: false
    smtp-host: ""
    syslog-enabled: true
    syslog-protocol: ""
    syslog-address: ""
    

    my gotosocial version is: gotosocial version 0.2.3 d350087 2022-04-13T20:40:15Z [go1.18] (in fact it's https://github.com/superseriousbusiness/gotosocial/pull/449) running in 13.0-RELEASE-p11 on amd64

    bug 
    opened by igalic 14
  • SQLite usage

    SQLite usage

    For small (and single-user) instances, it would alleviate the maintenance burden to allow running an instance using SQLite as RDBMS.

    Would you consider it something possible for this project?

    enhancement 
    opened by Arteneko 13
  • SSL_ERROR_RX_RECORD_TOO_LONG

    SSL_ERROR_RX_RECORD_TOO_LONG

    First off, I don't usually submit issues, so apologies in advances for any breaches in etiquette.

    My knowledge of Go is very limited, however, there seems to be some problem with the autocert part of the SSL initialization. I tried to get the certs myself and adjust the code accordingly, but there is something that I'm missing in the install/setup.

    So is there a good way to troubleshoot the process that autocert goes through? Or any recommendations for inserting the certs manually?

    opened by evandibona 12
  • build broke on FreeBSD 13.0-RELEASE amd64 + go 1.17

    build broke on FreeBSD 13.0-RELEASE amd64 + go 1.17

    drive-by bug report on @igalic behalf from mastodon.

    env:

    • FreeBSD 13.0-RELEASE amd64
    • go 1.17
    • commit #7d193de fails to build
    $ ./build.sh
    package github.com/superseriousbusiness/gotosocial/cmd/gotosocial
    	imports github.com/superseriousbusiness/gotosocial/internal/cliactions/admin/account
    	imports github.com/superseriousbusiness/gotosocial/internal/db/bundb
    	imports modernc.org/sqlite
    	imports modernc.org/libc
    	imports modernc.org/libc/errno: build constraints exclude all Go files in /repos/gotosocial/vendor/modernc.org/libc/errno
    package github.com/superseriousbusiness/gotosocial/cmd/gotosocial
    	imports github.com/superseriousbusiness/gotosocial/internal/cliactions/admin/account
    	imports github.com/superseriousbusiness/gotosocial/internal/db/bundb
    	imports modernc.org/sqlite
    	imports modernc.org/libc
    	imports modernc.org/libc/signal: build constraints exclude all Go files in /repos/gotosocial/vendor/modernc.org/libc/signal
    package github.com/superseriousbusiness/gotosocial/cmd/gotosocial
    	imports github.com/superseriousbusiness/gotosocial/internal/cliactions/admin/account
    	imports github.com/superseriousbusiness/gotosocial/internal/db/bundb
    	imports modernc.org/sqlite
    	imports modernc.org/libc/sys/types: build constraints exclude all Go files in /repos/gotosocial/vendor/modernc.org/libc/sys/types
    package github.com/superseriousbusiness/gotosocial/cmd/gotosocial
    	imports github.com/superseriousbusiness/gotosocial/internal/cliactions/admin/account
    	imports github.com/superseriousbusiness/gotosocial/internal/db/bundb
    	imports modernc.org/sqlite
    	imports modernc.org/libc
    	imports modernc.org/libc/time: build constraints exclude all Go files in /repos/gotosocial/vendor/modernc.org/libc/time
    package github.com/superseriousbusiness/gotosocial/cmd/gotosocial
    	imports github.com/superseriousbusiness/gotosocial/internal/cliactions/admin/account
    	imports github.com/superseriousbusiness/gotosocial/internal/db/bundb
    	imports modernc.org/sqlite
    	imports modernc.org/libc
    	imports modernc.org/libc/unistd: build constraints exclude all Go files in /repos/gotosocial/vendor/modernc.org/libc/unistd
    

    :disappointed: :crying_cat_face: :sob:

    #87328b6 just worked, with ./build.sh prior to the vendoring update and modernc stuff.

    Hope that's enough for somebody to identify a fix?

    bug packaging 
    opened by dch 11
  • add ability to daemonize

    add ability to daemonize

    currently, gotosocial remains in the foreground

    some inits don't handle that well, and assume that software hasn't finished starting.

    it would be useful to have a --daemonize or similar flag, for such purposes.

    note that this can probably be emulated for now:

    gotosocial >/dev/null 2>&1 &
    disown
    

    note that it's important to give up stdout and stderr; we can either pipe them to a file, or /dev/null or we can add #268

    enhancement config deployment 
    opened by igalic 9
  • GtS <> Pixelfed incompatibility

    GtS <> Pixelfed incompatibility

    Hi,

    as already pointed out at the matrix channel, there seems to be a bug/incompatibility between gts & pixelfed.

    here are some logs from both sides:

    follow request gotosocial > pixelfed

    pixelfed:

    app_1     | 172.29.0.3 - - [08/Aug/2021:18:59:29 +0000] "GET /users/egon0 HTTP/1.1" 200 2771 "-" "gotosocial social.netzspielplatz.de (go-fed/activity v1.0.0)"
    app_1     | 172.29.0.3 - - [08/Aug/2021:18:59:29 +0000] "POST /users/egon0/inbox HTTP/1.1" 200 207 "-" "gotosocial social.netzspielplatz.de (go-fed/activity v1.0.0)"
    app_1     | 172.29.0.3 - - [08/Aug/2021:18:59:29 +0000] "GET /i/actor HTTP/1.1" 200 1212 "-" "gotosocial social.netzspielplatz.de (go-fed/activity v1.0.0)"
    worker_1  | [2021-08-08 18:59:29][80d666e0-fc2e-4463-8c38-858cc08f9ec4] Processing: App\Jobs\InboxPipeline\InboxValidator
    worker_1  | [2021-08-08 18:59:29][80d666e0-fc2e-4463-8c38-858cc08f9ec4] Processed:  App\Jobs\InboxPipeline\InboxValidator
    

    gotosocial:

    app_1    | [GIN] 2021/08/08 - 18:59:28 | 204 |      23.397µs |      172.29.0.3 | OPTIONS  "/api/v1/accounts/019J5XHB1WYP8Y9M42HB34XVQJ/follow"
    app_1    | time="2021-08-08T18:59:29Z" level=debug msg="received NEWID request for asType {\"@context\":\"https://www.w3.org/ns/activitystreams\",\"actor\":\"https://social.netzspielplatz.de/users/egon0\",\"id\":\"https://social.netzspielplatz.de/users/egon0/follow/016WGEGGVVHKV78XJ926Y3KDX8\",\"object\":\"https://pixel.netzspielplatz.de/users/egon0\",\"to\":\"https://pixel.netzspielplatz.de/users/egon0\",\"type\":\"Follow\"}" asType=Follow func=NewID
    app_1    | time="2021-08-08T18:59:29Z" level=debug msg="received CREATE asType {\"@context\":\"https://www.w3.org/ns/activitystreams\",\"actor\":\"https://social.netzspielplatz.de/users/egon0\",\"id\":\"https://social.netzspielplatz.de/users/egon0/follow/016WGEGGVVHKV78XJ926Y3KDX8\",\"object\":\"https://pixel.netzspielplatz.de/users/egon0\",\"to\":\"https://pixel.netzspielplatz.de/users/egon0\",\"type\":\"Follow\"}" asType=Follow func=Create
    app_1    | time="2021-08-08T18:59:29Z" level=debug msg="entering GETOUTBOX function" func=GetOutbox
    app_1    | time="2021-08-08T18:59:29Z" level=debug msg="entering SETOUTBOX function" func=SetOutbox
    app_1    | time="2021-08-08T18:59:29Z" level=debug msg="performing GET to https://pixel.netzspielplatz.de/users/egon0" func=Dereference
    app_1    | [GIN] 2021/08/08 - 18:59:29 | 200 |  473.550687ms |      172.29.0.3 | POST     "/api/v1/accounts/019J5XHB1WYP8Y9M42HB34XVQJ/follow"
    app_1    | time="2021-08-08T18:59:29Z" level=debug msg="entering ACTORFOROUTBOX function with outboxIRI https://social.netzspielplatz.de/users/egon0/outbox" func=ActorForOutbox inboxIRI="https://social.netzspielplatz.de/users/egon0/outbox"
    app_1    | time="2021-08-08T18:59:29Z" level=debug msg="entering GET function" func=Get id="https://social.netzspielplatz.de/users/egon0"
    app_1    | time="2021-08-08T18:59:29Z" level=debug msg="is user path! returning account" func=Get id="https://social.netzspielplatz.de/users/egon0"
    app_1    | time="2021-08-08T18:59:29Z" level=debug msg="performing GET to https://pixel.netzspielplatz.de/i/actor#main-key" func=Dereference
    app_1    | time="2021-08-08T18:59:29Z" level=info msg="not authorized" func=UsersGETHandler url=/users/egon0
    app_1    | [GIN] 2021/08/08 - 18:59:29 | 401 |   84.709351ms |      172.29.0.3 | GET      "/users/egon0"
    

    search on pixelfed for a gotosocial user:

    gotosocial:

    app_1    | time="2021-08-08T19:01:47Z" level=debug msg="aborting request because resource query [email protected] could not be split by 'acct:'" func=WebfingerGETRequest user-agent="GuzzleHttp/6.5.5 curl/7.64.0 PHP/7.4.22"
    app_1    | [GIN] 2021/08/08 - 19:01:47 | 400 |      88.051µs |      172.29.0.3 | GET      "/.well-known/webfinger?resource=egon0%40social.netzspielplatz.de"
    

    pixelfed:

    app_1     | 172.29.0.3 - - [08/Aug/2021:19:03:36 +0000] "GET /api/search?q=%40egon0%40social.netzspielplatz.de&src=metro&v=2&scope=webfinger HTTP/1.1" 200 1146 "https://pixel.netzspielplatz.de/i/results?q=%40egon0%40social.netzspielplatz.de" "Mozilla/5.0 (X11; Linux x86_64; rv:90.0) Gecko/20100101 Firefox/90.0"
    app_1     | 172.29.0.3 - - [08/Aug/2021:19:03:36 +0000] "GET /api/pixelfed/v1/accounts/verify_credentials HTTP/1.1" 200 1653 "https://pixel.netzspielplatz.de/i/results?q=%40egon0%40social.netzspielplatz.de" "Mozilla/5.0 (X11; Linux x86_64; rv:90.0) Gecko/20100101 Firefox/90.0"
    app_1     | 172.29.0.3 - - [08/Aug/2021:19:03:37 +0000] "GET /storage/avatars/008/792/922/758/381/977/6/2nkbJNnkLA3vL4R1t5rO_avatar.jpeg?v=2 HTTP/1.1" 304 126 "https://pixel.netzspielplatz.de/i/results?q=%40egon0%40social.netzspielplatz.de" "Mozilla/5.0 (X11; Linux x86_64; rv:90.0) Gecko/20100101 Firefox/90.0"
    
    bug federation 
    opened by egon0 9
  • [bug] Misskey federation is flaky

    [bug] Misskey federation is flaky

    Currently it's possible to see posts from Misskey when they're boosted by someone else, but it's not possible to follow or be followed by a misskey instance. We should investigate why. Most likely: something to do with http signatures.

    bug federation investigation 
    opened by tsmethurst 8
  • anticipating / warning of / preventing cryptic sqlite errors

    anticipating / warning of / preventing cryptic sqlite errors

    I manually tested 4 cases on linux:

    1. parent folder does not exist
    2. folder not owned by UID / GID of process
    3. folder not readable+writable by user/group/everyone
    4. and of course the happy path where everything works
    opened by ForestJohnson 8
  • [feature] `/api/v1/instance/peers` with filter parameters

    [feature] `/api/v1/instance/peers` with filter parameters

    Mastodon exposes an endpoint at /api/v1/instance/peers which returns a json array of domains that an instance federates with (see eg https://mastodon.social/api/v1/instance/peers):

    [
      "instance1.com",
      "instance2.com"
    ]
    

    However, Mastodon does not show any json for instances that have been suspended/silenced, etc. In order to implement https://github.com/superseriousbusiness/gotosocial/issues/378, we should consider implementing this 'peers' endpoint but also allowing callers to submit query parameters to also show instances that have been suspended/silenced.

    From the gotosocial-code Matrix chat:


    GET /api/v1/instance/peers that also takes a query param filter

    Possible values for filter are friends,silenced,suspended and you can provide any combination of these to filter the list of instances. When the value is empty, whether through no query or through filter= (empty), a default filter of friends is assumed.

    Usage examples:

    GET /api/v1/instance/peers
    - no filter value, default of `filter=friends` is assumed, returns only federated instances
    
    GET /api/v1/instance/peers?filter=
    - no filter value, default of `filter=friends` is assumed, returns only federated instances
    
    GET /api/v1/instance/peers?filter=friends
    - returns only federated instances
    
    GET /api/v1/instance/peers?filter=suspended
    - only returns suspended instances
    
    GET /api/v1/instance/peers?filter=silenced
    - only returns silenced instancces
    
    GET /api/v1/instance/peers?filter=silenced,suspended,friends
    - returns all known instances
    

    We should also allow admins to limit permissions on this endpoint to authorized users only if they so desire; not everyone wants to share their blocklist/peer list since it has obvious safety implications.

    When we implement https://github.com/superseriousbusiness/gotosocial/issues/3, we can consider allowing admins to also supply another instance's /api/v1/instance/peers?filter=suspended endpoint as a blocklist to subscribe to. This is convenient in cases where a known instance has a great block list, and a new instance wants to use the same block list without manually having to import the entries.

    enhancement security 
    opened by tsmethurst 7
  • [bug] Mastodon (official app / iOS) does not connect

    [bug] Mastodon (official app / iOS) does not connect

    I can't connect to my GoToSocial installation (Docker v0.3.3) with the official Mastodon iOS app.

    • "My" GoToSocial will be found in the login window
    • Login/Password --> Allow --> Return to login window

    It works great with the Android Mastodon app (official).

    Here are some Portainer logs (maybe these is helpful):

    time=2022-05-13T07:07:27Z level=info msg=[5.086661ms] OK: wrote 767 bytes clientIP=172.20.0.1 latency=5.086661ms method=GET path=/oauth/authorize statusCode=200 userAgent=Mozilla/5.0 (iPhone; CPU iPhone OS 15_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Mobile/15E148 Safari/604.1 time=2022-05-13T07:07:33Z level=info msg=[10.378251ms] Found: wrote 23 bytes clientIP=172.20.0.1 latency=10.378251ms method=POST path=/oauth/authorize statusCode=302 userAgent=Mozilla/5.0 (iPhone; CPU iPhone OS 15_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Mobile/15E148 Safari/604.1 time=2022-05-13T07:07:33Z level=info msg=[18.590368ms] OK: wrote 152 bytes clientIP=172.20.0.1 latency=18.590368ms method=POST path=/oauth/token statusCode=200 userAgent=Mastodon/121 CFNetwork/1331.0.7 Darwin/21.4.0 time=2022-05-13T07:07:27Z level=info msg=[90.117113ms] Found: wrote 23 bytes clientIP=172.20.0.1 latency=90.117113ms method=POST path=/auth/sign_in statusCode=302 userAgent=Mozilla/5.0 (iPhone; CPU iPhone OS 15_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Mobile/15E148 Safari/604.1 time=2022-05-13T07:07:11Z level=info msg=[1.39466ms] OK: wrote 708 bytes clientIP=172.20.0.1 latency=1.39466ms method=GET path=/auth/sign_in statusCode=200 userAgent=Mozilla/5.0 (iPhone; CPU iPhone OS 15_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Mobile/15E148 Safari/604.1

    bug 
    opened by boerge30 7
  • [bug] Link account handle inside bio doesn't always work

    [bug] Link account handle inside bio doesn't always work

    When I'm trying to put the handle of an account into the bio of a GoToSocial account other people will not be able to click on it. In contrast mastodon seems to make a clickable link out of it. Would be cool if GoToSocial could also do this.

    bug 
    opened by jugendhacker 7
  • [feature] Cleanup unattached local media

    [feature] Cleanup unattached local media

    This PR closes #666 by adding some logic for cleaning up local media that was uploaded but never used, or media that was attached to a status which was subsequently deleted.

    The time limit to keep unattached media around is currently hardcoded at 3 days. This was chosen because it seems very unlikely that someone would upload media, leave it unattached, and then after 3 days return to it and attach it to a status. Most of the time users upload something and then simply never use it, or they delete and redraft so that the media only stays unused for a few minutes at most.

    The cleanup is triggered on instance startup, and every night @ midnight along with the other cleaning jobs. It's also triggerable by an admin calling the /api/v1/admin/media_cleanup endpoint

    opened by tsmethurst 0
  • [bug] Code spans aren't HTML escaped in markdown posts

    [bug] Code spans aren't HTML escaped in markdown posts

    Describe the bug with a clear and concise description of what the bug is.

    When using the markdown format, code spans (like this) containing HTML aren't HTML-escaped during processing.

    What's your GoToSocial Version?

    v0.3.6

    GoToSocial Arch

    armv7 Binary

    What happened?

    making a post with the markdown format with the following contents

    `Nobody tells you about the </code><del>SECRET CODE</del><code>, do they?`
    

    results in a post with this content:

    <p><code>Nobody tells you about the </code><del>SECRET CODE</del><code>, do they?</code></p>
    

    which is rendered as this:

    Nobody tells you about the SECRET CODE, do they?

    What you expected to happen?

    should result in the following HTML (or similar):

    <p><code>Nobody tells you about the &lt;/code&gt;&lt;del&gt;SECRET CODE&lt;/del&gt;&lt;code&gt;, do they?</code></p>
    

    which is rendered as this:

    Nobody tells you about the </code><del>SECRET CODE</del><code>, do they?

    How to reproduce it?

    Get an oauth token, send a request to make a new post in markdown format with the content above.

    Anything else we need to know?

    No response

    bug 
    opened by autumnull 1
  • [bug] Cannot change default post privacy in Tusky

    [bug] Cannot change default post privacy in Tusky

    Describe the bug with a clear and concise description of what the bug is.

    When change the Default post privacy in Tusky , it fails.

    What's your GoToSocial Version?

    0.3.7

    GoToSocial Arch

    x86 Docker

    What happened?

    When change the Default post privacy setting in Tusky (such as changing it from Public to Unlisted), it will pop up an error message saying "Failed to sync settings", and the change failed.

    What you expected to happen?

    There should be no pop-up error message.

    How to reproduce it?

    After loging into Tusky, go into Account Preferences, and click Default post privacy, choose any option form the list.

    Anything else we need to know?

    Tusky version is 18.0. Thanks.

    bug 
    opened by xfrose 1
  • [feature] Ask for the support of the common `password grant flow`

    [feature] Ask for the support of the common `password grant flow`

    Is your feature request related to a problem ?

    I am developing a frontend application using gotosocial as the backend server. However, it is not very satisfying that gotosocial only supports authorization code flow and client credentials flow.

    Describe the solution you'd like.

    It seems not that convenient to rely on the authorization code flow in some cases, is it possible to support the common password grant flow as well?

    Describe alternatives you've considered.

    no alternatives.

    Additional context.

    No response

    enhancement 
    opened by jianguda 2
  • [Admin panel] Make Description boxes multi-line

    [Admin panel] Make Description boxes multi-line

    Is your feature request related to a problem ?

    Descriptions are usually multi-line, but the GoToSocial admin panel (as of version 0.3.6) does not allow more than 1 line in the instance Description and Short description.

    Describe the solution you'd like.

    Making the Description and Short description use textareas instead of inputs

    Describe alternatives you've considered.

    Using the API is an alternative, but is not the admin panel and (depending on the person and their technical knowledge) may be annoying at times.

    Additional context.

    The one-line inputs in the Admin panel (for looking more Pro Fessional™)

    input type=text where textarea should be

    enhancement 
    opened by foreverxml 0
  • [feature] S3 support

    [feature] S3 support

    Resolves #308

    This adds S3 support by abstracting the storage driver in a new package internal/storage. When accessing an asset via S3, a signed resource URL is generated and returned as an HTTP Redirect. This helps to prevent hotlinking while still reducing load on the server.

    I've tested it against MinIO and will continue tests on other providers tomorrow (Backblaze and Scaleway as they offer free tiers).

    I also might want to refactor the Content type into an interface to have more type safety but wanted to create this PR to get early feedback if this approach is usable

    opened by theSuess 2
Releases(v0.3.6)
  • v0.3.6(Jun 20, 2022)

    This is a minor bugfix release of GoToSocial.

    The main reason for doing this release was an issue where accounts could sometimes end up webfingering themselves, which would cause all sorts of annoying problems. There's also a few other small fixes in this one :)

    No migration notes this time, should just be a standard upgrade!

    :heart: :sloth:

    Detailed Changelog

    Bug fixes

    • 8c7945fb [bugfix] Account self finger fix (#658)
    • c48266c4 [bugfix] for the second accounts.note_raw migration (#653)
    • 0e12ee0a postgres locale: fix accounts.note_raw migration (#651)

    Packaging

    • f42d5d80 [packaging] Packaging updates (#655)

    Frontend

    • ec81d28a [frontend] add Accept header to oauthed api requests (#657)

    Chores

    • 610395d5 [chore] make tests more cacheable by avoiding time.Now() (#656)
    Source code(tar.gz)
    Source code(zip)
    checksums.txt(101 bytes)
    gotosocial_0.3.6_freebsd_amd64.tar.gz(14.85 MB)
    gotosocial_0.3.6_linux_386.tar.gz(14.04 MB)
    gotosocial_0.3.6_linux_amd64.tar.gz(14.85 MB)
    gotosocial_0.3.6_linux_arm64.tar.gz(13.63 MB)
    gotosocial_0.3.6_linux_armv6.tar.gz(14.27 MB)
    gotosocial_0.3.6_linux_armv7.tar.gz(14.25 MB)
    gotosocial_0.3.6_web-assets.tar.gz(975.22 KB)
  • v0.3.5(Jun 15, 2022)

    Hullo sloth enthusiasts! This here is the eleventh ALPHA release of GoToSocial, release codename Speedy Sloth :sunglasses:

    This update includes a migration which may take a while to run, please see the migration notes below!

    Highlights

    • In this release, we've updated the way we package our frontend stuff. A nice bonus of this is that the admin panel is now bundled in with all the static frontend changes. If you didn't have the admin panel installed yet on your instance, you will now after updating. Just go to /admin at your instance URL to use it!
    • We now webfinger accounts properly at a set duration to display account domains properly. So if you have your GoToSocial host set to gts.example.org but your account domain set to (and properly forwarded from) example.org, now other GtS users will see @[email protected] instead of @[email protected]. You'll see other accounts at their proper domains as well.
    • Better compatibility with Tusky: you can now page nicely through your notifications, and through an account's posts.
    • Lots of bug fixes, see below.

    Migration Notes

    This release contains a migration which cleans up duplicated media caused by a previous bug (https://github.com/superseriousbusiness/gotosocial/issues/587). This will save some disk space by cleaning up obsolete images that are still hanging around in your storage. However, it may take a while to run when you first migrate to 0.3.5, which will cause some downtime for your instance.

    We estimate that the migration will take anywhere between 0 and 30 minutes depending on the specs of your server, and the age of your instance and how active it's been. You can follow the progress of the migration in the logs, please don't interrupt it!

    Detailed Changelog

    Features

    • 694a4905 [feature] Add created_at and error_description to /oauth/token endpoint (#645)
    • 1ede54dd [feature] More consistent API error handling (#637)
    • 4e6625ee [feature] add vscode workspace config for linting + debugging (#588)
    • 6f6e89e2 [feature] Add paging via Link header for notifications and account statuses (#629)
    • 327d3f00 [feature] Start adding advanced configuration options, starting with samesite (#628)

    Frontend

    • b43f9cec [frontend] Restructure Frontend Sources (#634)
    • 99fab9c6 [frontend] linkify header mascot+title (#633)
    • 323dbca4 [frontend] Reduce width of profile img with screen width (#615)
    • 8de9b7a3 [frontend] Add padding to the bottom of main (#616)

    Bugfixes

    • 2385b51d [bugfix] Make accounts media_only query also work with pg (#643)
    • 5864954e [bugfix] Fix domain blocks get regression (#642)
    • 91c0ed86 [bugfix] #621: add weak type handing to mapstructure decode (#625)
    • f3b44426 [bugfix] Update time marshalling format to provide 3 digits of ms (#630)
    • 2b11d4b7 [bugfix] Add accept: application/activity+json to dereferencer (#611)

    Chores

    • 13e4bbdb [chore] Duplicated media cleanup (#649)
    • da2386ba [chore] Fix testrig emoji bug (#646)
    • 7f9925af [chore] Refactor thread dereference a bit for clarity (#647)
    • cf5c6d72 [chore] Validate/set account domain (#619)
    • dfdc473c [chore] Webfinger rework (#627)
    • f30a5812 [chore] gitignore shell.nix (#639)
    • 265b6800 [chore] Adds Issue templates to Github (#626)
    • 43ac0cdb [chore] Global server configuration overhaul (#575)
    • ae5402ad [chore] Mastodon api fixups (#617)
    • 73d57665 [chore] Debug failed account get (#612)
    • dc8cc7e3 [chore] Add test for dereferencing Owncast service account (#613)
    Source code(tar.gz)
    Source code(zip)
    checksums.txt(702 bytes)
    gotosocial-0.3.5.tar.gz(46.55 MB)
    gotosocial_0.3.5_freebsd_amd64.tar.gz(14.85 MB)
    gotosocial_0.3.5_linux_386.tar.gz(14.04 MB)
    gotosocial_0.3.5_linux_amd64.tar.gz(14.85 MB)
    gotosocial_0.3.5_linux_arm64.tar.gz(13.63 MB)
    gotosocial_0.3.5_linux_armv6.tar.gz(14.27 MB)
    gotosocial_0.3.5_linux_armv7.tar.gz(14.25 MB)
  • v0.3.4(May 26, 2022)

    Hello earthlings!

    Here's the v0.3.4 Salacious Sloth release of GoToSocial that all the cool kids have been talking about!

    This is the tenth ALPHA release of GoToSocial :fireworks:

    Highlights

    • Unused avatars and headers are cleaned up now, in addition to old media attachments. This will lead to some disk space savings :)
    • We did a lot of performance improvements in this release! Things will feel nippier in general thanks to improved database indexes.
    • We tightened up some of the block checking logic, so you should see fewer posts mentioning or replying to domains or accounts that you have blocked.
    • We have a new endpoint for manually triggering media cleanup, check the swagger docs :)
    • Custom emojis endpoint is now implemented. We don't yet federate custom emojis, but this brings us a step closer to that functionality.

    Migration notes

    This release adds a couple of indexes to the database during a migration step. You don't need to do anything special for this, just let it run (it will likely take less than a minute), and don't interrupt it.

    Detailed Changelog

    Features

    • caa0cde0 [feature] implement custom_emojis endpoint (#563)
    • b915a418 [feature] Basic config validation (#562)
    • b1438779 [feature] Unused avatar and header cleanup (#574)
    • 6e947ff2 [feature] Media cleanup endpoint (#560)

    Performance

    • 1cdc1632 [performance] Don't retry/backoff invalid http requests that will never succeed (#609)
    • 0f01f72d [performance] Bump default workers to CPUs * 2 (#608)
    • f4b0d76c [performance] Add further indexes to mitigate laggy queries (#586)

    Bug fixes

    • 5668ce1e [bugfix] Fix HTML escaping in instance title (#607)
    • 196d542e [bugfix] Don't serialize instance account if not set (#603)
    • 2d748a68 [bugfix] Only search remote if protocol is http(s) (#601)
    • 21557c92 [bugfix] Set refetch to true in iterateDescendants (#600)
    • f0c9f416 [bugfix] Fix multiple dereferences of boosted status causing media duplication (#589)
    • f5a4f432 [bugfix] Fix error extracting status content: no content found (#598)
    • a09e1019 [bugfix] If status URL is empty, use URI instead and don't log unnecessary error (#597)
    • 62d4d756 [bugfix] Stop some statuses from being home timelined when they shouldn't be (#585)
    • b2810fed [bugfix] Clean up boosts of status when the status itself is deleted (#579)

    Security

    • f848aaa8 [security] Set SameSite to strict instead of browser default (#606)
    • 469da936 [security] Check all involved IRIs during block checking (#593)
    • 223025fc [security] transport.Controller{} and transport.Transport{} security and performance improvements (#564)

    Chores

    • a54efa09 [chore] Serialize times as UTC ISO8601 instead of RFC3339 (#602)
    • 5ef41ba3 [chore] Timeline test updates (#578)
    • 27a3c1dc testrig: override bind address from environment variable (#577)
    • 4ac508f0 [chore] Update LE server to use copy of main http.Server{} to maintain server timeouts etc (#571)
    • 9f2a2abe [bugfix] update syslog tests to listen/connect specifically to ipv4 loopback (#561)

    Documentation

    • 1461adfd [docs] document a checklist for how to go about a release (#592)
    • d6abe105 [docs] Add Caddy instructions to the documentation (#594)
    • 6838b322 [docs] Mention AmbientCapabilities=CAP_NET_BIND_SERVICE in example systemd service (#576)
    • 545b16ad [documentation] Nlnet application (#572)

    Accessibility

    • 80853100 [accessibility] Add description for the pinafore logo (#568)
    Source code(tar.gz)
    Source code(zip)
    checksums.txt(702 bytes)
    gotosocial-0.3.4.tar.gz(46.28 MB)
    gotosocial_0.3.4_freebsd_amd64.tar.gz(16.22 MB)
    gotosocial_0.3.4_linux_386.tar.gz(15.41 MB)
    gotosocial_0.3.4_linux_amd64.tar.gz(16.21 MB)
    gotosocial_0.3.4_linux_arm64.tar.gz(15.01 MB)
    gotosocial_0.3.4_linux_armv6.tar.gz(15.65 MB)
    gotosocial_0.3.4_linux_armv7.tar.gz(15.63 MB)
  • v0.3.3(May 12, 2022)

    Bad news everyone, version 0.3.2 was cursed. The good news is, this version is definitely not cursed (see the title).

    Changes between 0.3.2 and 0.3.3:

    • 898d2565 [bugfix] Fix server trying to listen twice on same address when l.e. enabled (#557)

    The change notes from 0.3.2 are reproduced below for posterity. But beware, they are haunted.

    Hubris

    You there, boy, what day is it?

    Why, it's May 11 sir!

    May 11, then it's not too late! To release v0.3.2 Suspicious Sloth!

    Highlights

    This release brings some serious database performance improvements thanks to some new indexes and other optimizations we made to queries. If your GtS instance was feeling sluggish this will likely make it feel new and fresh again.

    We've also introduced worker pools and queuing to media processing, which should ensure that your instance doesn't get overwhelmed when doing lots of remote dereferencing.

    Another neat thing: you can properly edit your profile now without getting spammed with html, phew.

    We've also added a project roadmap, so you can get an idea of which features will arrive when. This can be read right here.

    Oh yes, and self-boosting!

    Migration

    After updating to this version, the first time you go to edit your profile, the text will appear to be blank. This is normal. Make sure you copy your existing bio/profile text (just ctrl-c it) before editing, and paste it back in to the now-empty field. This is only needed for the first time you edit your profile after upgrading. After that, it will work as normal.

    This release also includes a database migration to add the new indexes and fields to the database. You don't need to do anything in particular for this, just update and let it run.

    Acknowledgements

    Thanks to all contributors, donators, and people who've been using the software and raising issues/requests! <3

    Detailed Changelog

    Features

    • b24b71c0 [feature] Include password strength in error message when password strength is too low (#550)
    • a561ef35 [feature] Update media manager to use internal/worker package (#543)
    • e09958e7 [feature] Run initial cache cleanup on gotosocial start in case max-age changed (#533)
    • f9b35143 [feature] allow absolute path to templates (#507)
    • 420e2fb2 replace async client API / federator msg processing with worker pools (#497)
    • 69011d49 Add support for running profiling when debug build-tags provided (#491)
    • faae2505 Add logging to the new generic worker package (#516)

    Bugfixes

    • 5004e0a9 [bugfix] Fix remote media pruning failing if media already gone (#548)
    • 26b74aef [bugfix] Fix existing bio text showing as HTML (#531)
    • 3112949b [bugfix] Fix panic when relative tmpl path given to router (#528)
    • 9265a09a [bugfix] Allow self-boosting for any visibility but direct (#510)
    • cc5f2e98 [bugfix] Fix possible race condition in federatingdb (#490)
    • 8e80f983 [bugfix] use Exec to rename media_attachments (#498)

    Documentation

    • 00111666 [documentation] Admin Panel installation + usage (#552)
    • 8124dcf0 [Documentation] tidy docker-compose docs, add note about uid/gid (#551)
    • 807a8e1c [Documentation] Update glossary, expand entry for dereferencing (#542)
    • d2b7c89d [documentation] Add known issues + project links in readme and docs (#541)
    • f040ad89 [documentation] put single-quotes around passwords in install docs (#534)
    • 141107bd [documentation] Corrects the Helm-Chart URL by 0hlov3 (#530)
    • c3b6dddd [documentation] Adds a Kubernetes Helm Chart to README.md (#496)
    • f5e00689 [documentation] Add project roadmap (#514)
    • 4851ffe1 [documentation] Recommend users take latest stable release in installation guides (#512)
    • c36fbab8 [documentaton] Fix port number in Reverse proxy section (#506)

    Performance

    • 08eb271a [performance] improved logrus output switching performance (#544)
    • a5852fd7 [performance] Speed up some of the slower db queries (#523)
    • e06bf9cc add extra indexes as a migration (#527)

    Other / chores

    • d7b46a4b [chore] Move initial MediaRemotePrune to cmd.server function (#536)
    • b28fd743 [chore] Fix inbox iris test to use 'contains' instead of index (#529)
    • b56dae81 [chore] Update all but bun libraries (#526)
    • d93e8ddf [chore] Add Federatingactor.Send() tests and log call (#509)
    • 63f84da3 [chore] Inboxes for iri test (#508)
    Source code(tar.gz)
    Source code(zip)
    checksums.txt(702 bytes)
    gotosocial-0.3.3.tar.gz(43.94 MB)
    gotosocial_0.3.3_freebsd_amd64.tar.gz(16.19 MB)
    gotosocial_0.3.3_linux_386.tar.gz(15.39 MB)
    gotosocial_0.3.3_linux_amd64.tar.gz(16.19 MB)
    gotosocial_0.3.3_linux_arm64.tar.gz(14.99 MB)
    gotosocial_0.3.3_linux_armv6.tar.gz(15.62 MB)
    gotosocial_0.3.3_linux_armv7.tar.gz(15.60 MB)
  • v0.3.1(Apr 26, 2022)

    Another day another alpha release of GoToSocial! This is alpha release number eight.

    Highlights: many bugfixes, some performance improvements, documentation refinement, and some big speed improvements for outgoing messages (from ~30 seconds to federate to ~1 second).

    All in all, this is a better and more stable release than v0.3.0 was!

    Migration

    If you're migrating from 0.3.0 to this release you don't need to do anything special.

    If you're migrating from 0.2.x, see the migration notes for 0.3.0.

    Detailed Changelog

    Features

    • 9813a044 [feature] Implement media v2 endpoint to accommodate Tusky 17 (#480)
    • 094f032f [feature] Add log-db-queries config option (#465)

    Bugfixes

    • 728c4a5e [bugfix] Trim log entries to 1700 chars before they enter syslog (#493)
    • 22598381 [bugfix] Fix CWs not showing sometimes (#488)
    • eeb78bd1 [bugfix] Allow processing of .png files where checksum is not correct (#487)
    • 0d05bf47 [bugfix] Fix status API / status web API being case sensitive (#481)
    • 1e3b3857 [bugfix] Fix infinite domain block database loop (#467)
    • c365863e [bugfix] Use our own (Batch)Deliver implementation for federated messages (#466)

    Documentation

    • 0e2f31f4 [Documentation] Simplify docker-compose documentation + example (#468)
    • 4bace80f [documentation] NGINX docs updates (#471)
    • 03bcd8a7 [documentation] Update index.md (#475)
    • 61e60133 [documentation] Add WebSocket protocol documentation (#470)
    • 721061b0 [docs] unify nginx explainers and add apache httpd (#455)

    Chores

    • 9cf66bf2 [chore] Return more useful errors from auth failure (#494)
    • d5fe729c [chore] Add two new test images for media processing (#424)
    • 88979b35 [chore] Update bun and sqlite dependencies (#478)
    Source code(tar.gz)
    Source code(zip)
    checksums.txt(702 bytes)
    gotosocial-0.3.1.tar.gz(41.57 MB)
    gotosocial_0.3.1_freebsd_amd64.tar.gz(16.18 MB)
    gotosocial_0.3.1_linux_386.tar.gz(15.38 MB)
    gotosocial_0.3.1_linux_amd64.tar.gz(16.17 MB)
    gotosocial_0.3.1_linux_arm64.tar.gz(14.98 MB)
    gotosocial_0.3.1_linux_armv6.tar.gz(15.61 MB)
    gotosocial_0.3.1_linux_armv7.tar.gz(15.59 MB)
  • v0.3.0(Apr 16, 2022)

    This is the seventh alpha release of GoToSocial!

    Highlights

    This release finally brings public profile pages to GoToSocial! :fireworks: Your public profile page will be available at https://example.org/@your_username. Currently, it shows your header and avatar, your bio, some stats about your account, and a list of your most recent 10 completely public posts.

    Migration Notes

    If you're running with Docker, just upgrade as normal.

    If you're using a binary release, you'll need to make sure you untar the whole release again instead of just replacing the binary, since the release includes new templates and changes to the css files that you'll need to include to have the profile pages render correctly.

    Known Issues

    We're aware of a couple issues with profile pages initially loading slightly zoomed in on mobile. We'll patch this up in another release :)

    Detailed Changelog

    • e74ec70d [documentation] add screenshots to docs (#459)
    • 7883dd54 [bugfix] Convert IDNs to punycode before using as session name (#458)
    • af97d6bb [bugfix] Use background ctx for domain block side effects (#457)
    • 26683b3d [feature] Web profile pages for accounts (#449)
    Source code(tar.gz)
    Source code(zip)
    checksums.txt(702 bytes)
    gotosocial-0.3.0.tar.gz(39.41 MB)
    gotosocial_0.3.0_freebsd_amd64.tar.gz(16.13 MB)
    gotosocial_0.3.0_linux_386.tar.gz(15.32 MB)
    gotosocial_0.3.0_linux_amd64.tar.gz(16.12 MB)
    gotosocial_0.3.0_linux_arm64.tar.gz(14.92 MB)
    gotosocial_0.3.0_linux_armv6.tar.gz(15.55 MB)
    gotosocial_0.3.0_linux_armv7.tar.gz(15.54 MB)
  • v0.2.3(Apr 10, 2022)

    This is the sixth alpha release of GoToSocial.

    Highlights

    • We've switched to Go version 1.18 for building the GoToSocial binary. This should bring some speed improvements on ARM64 architectures. Apart from that, you probably won't notice a big difference. See here for the Go 1.18 release notes if you're into that kind of thing.
    • Federation of outgoing messages is HUGELY faster thanks to some changes in the GoToSocial fork of the go-fed activity library (which we've PRed upstream). Previously, federating to all one's followers could take up to 30 seconds or so. Now it takes about a second or less!

    Acknowledgements

    Thanks everyone! Thanks for trying the software and for all your feedback weeee

    Detailed Changelog

    • a7e9dee3 [bugfix] Fix broken only_media and only_public flags on /api/v1/accounts/:id/statuses (#448)
    • 707de094 [dependency] Update superseriousbusiness/activity dependency (#446)
    • 03d7c75e [chore] Update Go version to 1.18 (#444)
    • 906981a7 [documentation] Add third-party packaging to documentation (#443)
    Source code(tar.gz)
    Source code(zip)
    checksums.txt(702 bytes)
    gotosocial-0.2.3.tar.gz(38.68 MB)
    gotosocial_0.2.3_freebsd_amd64.tar.gz(16.10 MB)
    gotosocial_0.2.3_linux_386.tar.gz(15.30 MB)
    gotosocial_0.2.3_linux_amd64.tar.gz(16.10 MB)
    gotosocial_0.2.3_linux_arm64.tar.gz(14.91 MB)
    gotosocial_0.2.3_linux_armv6.tar.gz(15.53 MB)
    gotosocial_0.2.3_linux_armv7.tar.gz(15.52 MB)
  • v0.2.2(Mar 29, 2022)

    This is the fifth alpha release of GoToSocial.

    Highlights

    • A lot of fixes have been done in the media processing logic to ensure it's more reliable and less prone to locking up, which resolved a couple of show-stopping bugs.
    • We added an admin endpoint at /api/v1/admin/accounts/{account_id}/action that allows admins to delete/suspend single accounts.
    • When a local account is deleted, it's now federated out to the wider fediverse, so you can properly delete unused/unwanted accounts.

    Acknowledgements

    As usual, thank you to all bug reporters, contributors, donators, and people using the software already! <3 <3

    Detailed Changelog

    • 37d310f9 [feature] Dereference remote mentions when the account is not already known (#442)
    • 983e696b [feature/security] Add systemd sandboxing options to harden security (#440)
    • 8cc70a14 [bugfix] Fix media uploads blocking after a failed upload #438
    • 25cab0e1 [bugfix] Fix images not being processed correctly sometimes (#437)
    • 36b2f2b4 don't error if content property is nil (#436)
    • 73e9cca7 [bugfix] Close ReadClosers properly in the media package (#434)
    • 55ad6dee [feature] Admin account actions (#432)
    • 532c4cc6 [feature] Federate local account deletion (#431)
    • e63b6531 [performance] Add dereference shortcuts to avoid making http calls to self (#430)
    • 4b4c935e [bugfix] Fix bug where admin panel could not be accessed at /admin (#427)
    • e3062331 [bugfix] Fix html-escaped characters in content warnings (#426)
    • b8879ac6 [dependencies] update go-store, go-mutexes (#422)
    Source code(tar.gz)
    Source code(zip)
    checksums.txt(702 bytes)
    gotosocial-0.2.2.tar.gz(38.68 MB)
    gotosocial_0.2.2_freebsd_amd64.tar.gz(15.77 MB)
    gotosocial_0.2.2_linux_386.tar.gz(14.65 MB)
    gotosocial_0.2.2_linux_amd64.tar.gz(15.61 MB)
    gotosocial_0.2.2_linux_arm64.tar.gz(14.50 MB)
    gotosocial_0.2.2_linux_armv6.tar.gz(14.92 MB)
    gotosocial_0.2.2_linux_armv7.tar.gz(14.90 MB)
  • v0.2.1(Mar 7, 2022)

    This is the fourth alpha release of GoToSocial.

    Highlights

    • Remote media is now uncached after 30 days (by default). It will be recached again when a user requests it. This will save a significant amount of disk space! The cleanup job is run every night at 12am instance time. See the example config for more details and options.
    • Database queries have been seriously optimized, which fixes an issue where requests became painfully slow after a while (especially loading notifications and the federated timeline). It should now be speedy and smooth.
    • We have multi-architecture Docker builds now! Just pull superseriousbusiness/gotosocial:0.2.1 and the appropriate image for your architecture will be selected. We have containers for armv6, armv7, arm64, and of course amd64. Big thanks to @0hlov3.

    Migrations

    A database migration will be run on startup to bring in the new changes. Do not interrupt this migration! It will take somewhere between a few seconds or a minute depending on your system specs and the size of your database. Patience!

    Acknowledgements

    Thank you to all contributors, testers, bug reporters, and well-wishers! We're getting there step by step :)

    Detailed Changelog

    • 8de928b5 [performance] Database optimizations (#419)
    • 07727753 [feature] Clean up/uncache remote media (#407)
    • 100f1280 [documentation] Creates Docker documentation and docker-compose.yaml (#416)
    • 1d5e763f [packaging] bump to builder 0.0.3 (#418)
    • 3bc87f2e bump versions (#417)
    • 6b634de6 [packaging] Use buildx for multi-arch Docker builds (#413)
    • 64d9a34c Updates Docker Images (#415)
    • 69d70aa6 [feature] Add Docker multi architecture Build and make goreleaser push the images and manifests (#410)
    • 55b83bea [feature] Add postDataCallbackFunc to allow cleanup (#408)
    • 15d1e6b3 [bugfix] Fix thumbnail image type (#406)
    • a089a98e [feature] Gin enable gzip encoding (#405)
    • 23034ec1 [feature] Stream files via reader (#404)
    • e55382ac Use type=email for email input (#400)
    • 09d6478d [bugfix] Only mark cookies as Secure on https (#398)
    • dc242175 [chore] fix mirror + clean up (#396)
    Source code(tar.gz)
    Source code(zip)
    checksums.txt(702 bytes)
    gotosocial-0.2.1.tar.gz(38.59 MB)
    gotosocial_0.2.1_freebsd_amd64.tar.gz(15.76 MB)
    gotosocial_0.2.1_linux_386.tar.gz(14.64 MB)
    gotosocial_0.2.1_linux_amd64.tar.gz(15.60 MB)
    gotosocial_0.2.1_linux_arm64.tar.gz(14.49 MB)
    gotosocial_0.2.1_linux_armv6.tar.gz(14.90 MB)
    gotosocial_0.2.1_linux_armv7.tar.gz(14.89 MB)
  • v0.2.0(Feb 12, 2022)

    This is the THIRD ALPHA RELEASE of GoToSocial.

    Documentation for this release can be found right here.

    Highlights:

    • We use Viper and Cobra now for CLI tooling. This means an easier-to-use command line interface, and simplified configuration.
    • The media processing functionality has been completely refactored with an eye towards performance. This should make GtS much more viable on very small devices like Raspberry Pi Zero.
    • Syslog logging is now supported.

    Thank you to all contributors and testers! <3 <3 <3

    Migration

    The format of configuration files has changed a lot, along with some of the names of command-line flags. Many redundant settings have been removed, and naming conventions have changed for the sake of clarity and structure. The new config example is here: https://github.com/superseriousbusiness/gotosocial/blob/v0.2.0/example/config.yaml.

    This means if you were using a configuration file from v0.1.1 or earlier, you will need to update or replace your config file to reflect the new changes.

    The recommended approach to this is to rename your config.yaml file to something else (config.yaml.old or similar), drop the new config file in its place, and translate values as appropriate from the old config to the new config. This is likely to be less error prone than going through your existing config.yaml and changing key names by hand.

    Known Issues

    A bug was introduced in Mastodon verion 3.4.6 that affects federation. It has since been fixed, but is not yet in a release version: https://github.com/mastodon/mastodon/pull/17457. Since GoToSocial enforces Secure Mode, this bug will break federation between new GoToSocial instances, and Mastodon version 3.4.6 instances.

    Changelog

    Features

    • 0884f89 Implement Cobra CLI tooling, Viper config tooling (#336)
    • 31935ee Refactor media processor for speedier media processing.
    • e2daf0f Add Accept header negotiation to relevant API endpoints (#337)
    • c111b23 Add optional syslog logrus hook (#343)
    • 6ed368c [feature] add authorization to the already-existing authentication (#365)
    • e137181 [feature] Make Let's Encrypt integration an opt-in feature (#368)
    • 1b36e85 [feature] Rework timeline code to make it useful for more than just statuses (#373)
    • c6912f5 add example systemd service (#341)
    • 909f801 add systemd service example to packaging (#342)

    Bugfixes

    • ce22e03 Require confirmed email when checking oauth token (#332)
    • 5c9d20c don't bother negotiating Accept for webfinger (#381)
    • 85b4f96 if accountDomain isn't set, use Host value instead (#380)
    • 18e7537 [bug] Fix OIDC users requiring second approval (#371)
    • 5be8a7a [bug] Send plaintext emails to fix "message refused: Message is not RFC 2822 compliant" (#366)
    • 959e38a [bug] Fix sqlite empty address issue (#370)
    • 66175c8 [bug] Fix minimum description length check (#369)
    • ed9158f [fix] Make postgres connections magically work in common setups (#352)
    • 2582515 return first offer when no accept header set (#351)
    • aa34ff1 Fix start command invocation (#372)

    Other

    • 80ec714 document post settings (#346)
    • ec43574 [documentation] add ipv6 config for nginx (#367)
    • 14c472c [documentation] Add section for systemd service and nginx to installation guide (#353)
    • a01b178 [documentation] update database docs (#355)
    • 98341a1 [docs] Fix documentation to show --config-path in the right position. (#375)
    • 037e8ef [chore] Add nightly mirror to Codeberg.org (#392)
    • 40be88e [chore] Drone config update (#383)
    • 664927e Bump nanoid from 3.1.25 to 3.2.0 in /web/gotosocial-styling (#364)
    • ef5a925 Extend license notices to 2022 (#354)
    • cb8688f Remove unnecessary storage config variables (#344)
    • 635ad2a Update codeberg.org/gruf libraries and fix go-store issue (#347)
    • 86e8e7f Log when listening (#350)
    • 67ac8db Upstep Go dependencies (#340)
    • 5506a5e upstep dependencies (#339)
    • 182b4ee Update dependencies (#333)
    • 5ed0348 run sqlite tests in parallel (#331)

    Docker images

    • docker pull superseriousbusiness/gotosocial:0.2.0
    Source code(tar.gz)
    Source code(zip)
    checksums.txt(600 bytes)
    gotosocial-0.2.0.tar.gz(35.13 MB)
    gotosocial_0.2.0_freebsd_amd64.tar.gz(15.68 MB)
    gotosocial_0.2.0_linux_386.tar.gz(14.57 MB)
    gotosocial_0.2.0_linux_amd64.tar.gz(15.53 MB)
    gotosocial_0.2.0_linux_arm64.tar.gz(14.42 MB)
    gotosocial_0.2.0_linux_armv6.tar.gz(14.84 MB)
  • v0.1.1(Nov 24, 2021)

    ALPHA BUGFIX RELEASE 0.1.1

    Fixed

    ab316d2 Fix broken defaults and broken flags (#314) 3caae37 Fix streamed messages ending up in wrong timeline(s) (#325) 79ccd8f Fix mentioned accounts visibility bug (#323) b46e5fb Fix incorrect target being used in CC prop for mentioning statuses (#322) 24f9e11 Fix image description unnecessarily html-escaping innocent characters (#321) 6c0550e properly initialize user client module (#319) 38d73f0 tidy up database creation logic a bit (#317) f3e36de fix broken GetInstanceAccount selector (#311) ff7c96c Fix instance account not being created (#310)

    Added

    1ded58b add bindAddress configuration option (#320)

    Docs

    d81a123 Update docs with better config + installation instructions (#300) a7882fa Use IPv6 doc prefix for docs (#324)

    Other

    f863034 Enable stricter linting with golangci-lint (#316)

    Docker images

    • docker pull superseriousbusiness/gotosocial:0.1.1
    Source code(tar.gz)
    Source code(zip)
    checksums.txt(600 bytes)
    gotosocial_0.1.1_freebsd_amd64.tar.gz(14.87 MB)
    gotosocial_0.1.1_linux_386.tar.gz(13.80 MB)
    gotosocial_0.1.1_linux_amd64.tar.gz(14.72 MB)
    gotosocial_0.1.1_linux_arm64.tar.gz(13.67 MB)
    gotosocial_0.1.1_linux_armv6.tar.gz(14.08 MB)
  • v0.1.0(Nov 13, 2021)

    This is the very first alpha release of GoToSocial. Much of the feature set is already there, much is missing.

    For documentation, see https://docs.gotosocial.org. If you're just getting started, the quick-and-dirty install guide will be particularly valuable: https://docs.gotosocial.org/en/latest/installation_guide/quick_and_dirty/

    There will be bugs and issues! Please use the issue tracker on the github repository (and make sure you're not reporting a duplicate issue).

    For help, check out the Matrix channel mentioned in README.md :)

    Docker image is available at superseriousbusiness/gotosocial:0.1.0 and it works great, but installation for Docker is not documented yet (that's on the way).

    Changelog

    38e100a update drone file (#299) aee1932 First db migration (#297) 09ef9e6 move to ssb gofed fork (#298) 829a934 update dependencies (#296) 2aaec82 smtp + email confirmation (#285) de1f90e regenerate swagger docs (#293) 8b7c350 upstep bun to v1.0.14 (#291) 84a8a07 docs typo fix (#290) 4b1d9d3 Serve outbox for Actor (#289) 26a95ad pregenerate RSA keys for testrig accounts. If a user is added without a key, the testrig will panic and provide a key to paste in (#287) 7e4c3fa fix mention extracting when no domain exists (usually intra-instance mentions) (#272) 15621f5 Follow request improvements (#282) 107685e User password change (#280) a07e62e go fmt (#278) 27605f7 add new logo + credits (#277) 083099a reference global logrus (#274) 367bdca Handle forwarded messages (#273) 3dc7644 Derive visibility fixes (#271) ff77bf1 fix logs not working properly (#264) e04b187 Refactor/tidy (#261) 9ce4234 Follow request auto approval (#259) 365c3bf rework mention replacement func (#258) 28b6ce5 don't catch mentions within links (#257) 0cd2bd2 allow dereferencing of groups (#256) 231075f Golint (#255) 36a09dd handle remote account deletion more systematically (#254) 9a53b1a upstep bun to v1.0.9 (#252) 08cb8a3 skip account on error instead of returning error (#251) b5a7e1b Account update issue (#250) b3fd9c3 Weird notif issue (#248) c7cfbe2 Unblock fix (#247) d515c9f Goreleaser (#241) 142f37f upstep bun version (#243) ddfd83d update media processing (#244) 7e6350b remove hardcoded friendica user agent block (#239) ffc55e9 tweak db settings slightly (#238) c7c9fff use timestamptz instead of timestamp (#237) b315eee Update webfingering a little, add tests (#236) 92186c8 federated authentication better logging + tidying (#232) 2e5dcc2 Fix mentions not notifying (#230) e0f3627 add ap logo to readme (#228) 491da2c Merge pull request #227 from f0x52/meta-vp-fix af884de fix viewport scaling for mobile 69bb563 set default privacy for new accounts (#225) 8ab9108 include Fork-Awesome files in-repo (#222) 026674b Thread views on the web (#207) 635281f update my personal library versions (#220) f6492d1 Merge pull request #214 from NyaaaWhatsUpDoc/improvement/update-storage-library 8a18017 Merge pull request #213 from superseriousbusiness/alpine+node_upstep 6db57d1 fix keys used to access storage items 7f36688 rename KVStore uses as storage to differentiate between upcoming store package e43a46e add git.iim.gay/grufwub/go-store for storage backend, replacing blob.Storage 87e9f06 disable cgo for tests ab32ce6 documentation updates (#211) 5b69792 update container versions 793f9af only store statuses in the AS cache, not accounts (#210) bac4ee9 update bun library to latest commit (#206) fc03586 fix broken build (#209) 9dc2255 kim is a reply guy (#208) 64bd689 Test both dbs (#205) f2e5bed migrate go version to 1.17 (#203) e681aac fixes + db changes (#204) 446dbb7 remove boosted statuses from public (federated timeline) (#201) 4c4a622 Prune unnecessary nullzeros, fixup db tags (#200) 41ace19 fix up status inreplyto visibility, + small format improvements (#199) 555ea8e Import export (#194) a027da0 Merge pull request #198 from NyaaaWhatsUpDoc/update/sqlite-library f44cc51 Merge pull request #196 from NyaaaWhatsUpDoc/update/oauth-library 6a2d0d9 Merge remote-tracking branch 'upstream/main' into update/sqlite-library 71a4f86 update sqlite library -> v1.13.0 151069c Merge remote-tracking branch 'upstream/main' into update/oauth-library 0ea131f update oauth library --> v4.3.2-SSB d2a85f2 handle oauth token scope, fix user.SigninCount + token.UserID 299801f Merge pull request #195 from NyaaaWhatsUpDoc/update/bun-library fce3ba6 update oauth library -> v4.3.1-SSB bdcc090 update bun library -> v1.0.4 2b14b20 rework media processing a little bit (#191) ff05046 tests + announce notification fix (#193) 25edd57 Merge pull request #186 from superseriousbusiness/struct_validation 32fe228 review changes a116676 Review changes dfb9d63 readme typo 5d53276 lint cc7a35e token tests 42892f9 client_test 6f7da0e account + application tests ac7c5e8 session name fix (#185) 4696e1a moving stuff around 684bd56 move oauth models into gtsmodel 464e3d1 Merge branch 'struct_validation' of github.com:superseriousbusiness/gotosocial into struct_validation 55a9b85 lil move 7b01304 more updates 2786b5f change muchos things fffff93 go fmt 356d28f more work on struct validation dc2e1bf more work on struct validation 8ba816c statusmute annotations d2276fc start working on struct validation for gtsmodel 7d193de Improve GetRemoteStatus and db.GetStatus() logic (#174) 3d8aa7a more updates b95c80d change muchos things a530a33 go fmt bceb15d more work on struct validation 6adec1a more work on struct validation 22b3bfe Merge branch 'struct_validation' of github.com:superseriousbusiness/gotosocial into struct_validation 8d767c6 statusmute annotations 7c45403 start working on struct validation for gtsmodel 8aa72f9 start working on struct validation for gtsmodel ed46224 Add SQLite support, fix un-thread-safe DB caches, small performance f… (#172) 53507ac Mention fixup (#167) 79afcdb Replace federating DB locks map, add a cleanup goroutine (#166) add6eb6 Gin logging (#165) 87328b6 fix new tx within tx (#163) 30f688d some more little fixes for all to enjoy (#161) 2162f21 fix broken db queries in auth (#160) 1582cf8 fix null returned session (#159) 2eefaa0 oops (#157) 14ebc94 fix error with instance not created on startup (#156) d39d93e update drone yml (#153) 0347931 Improved build script (#152) ddc120d fix public timeline bug (#150) 2dc9fc1 Pg to bun (#148) 071eca2 Manually approves followers (#146) 4920229 Database updates (#144) ce190d8 Text/status parsing fixes (#141) ff406be Timeline loop fix (#140) a4a33b9 Don't run tests+lint on merge to main (#139) 98263a7 Grand test fixup (#138) 329a5e8 Text duplication fix (#137) 8330263 ahhh 2df77e4 add drone.yml 6acd410 Bugfixerino (#133) 93792d3 roll back to sha256 for signatures 0f2de63 Dereference remote replies (#132) 0386a28 Frodo swaggins (#126) cb85f65 fix breaky linky 6bd26ff more swagger docs + other changes (#125) 65bf285 requirements.txt for RtD 58dddd8 Swagger (#124) eb13faf Password change (#123) a940a52 Link hashtag bug (#121) ea8ad8b Link parsing (#120) fddacdd build and bundle admin console + web assets (#119) 2c2dbe3 federating db updates (#118) a04888e doc updates (#117) ad0e26d Markdown Statuses (#116) e2757ae add trusted proxy for parsing client IPs (#115) 651f12c Merge branch 'main' of github.com:superseriousbusiness/gotosocial into main 5bf4fb4 Tiny fix (#114) 87d9a06 Merge branch 'main' of github.com:superseriousbusiness/gotosocial into main bc1d8a9 allow custom ports for webserver and le (#111) 318e377 allow custom ports for webserver and le 05e9af0 Oidc (#109) 113186c lil webfingy fix (#106) 29bdc41 Config bugfix (#104) b1a4f38 allow different host + accountDomain (#103) 677490b Db tls (#102) bbc2494 Static fileserver improvements, optional admin panel route (#100) eef88ae frontpage template tweaks (#99) f05b255 Noescape (#88) bdba3ff sanitize html for statuses + instance (#97) 846057f Block/unblock (#96) c7da649 favourites GET implementation (#95) c5180b3 Docs (#94) 606ee5c Css button tweak (#93) 1dac7eb readme updating (#92) 2cebac5 Css input/select styling tweak (#91) 05e6247 undo template no escape (#87) c106ce4 fix up some of the instance patching stuff (#86) fe269cd fix up some of the instance patching stuff (#85) fd0714c disable html escaping for short description (#84) 5460271 Auth flow fixes (#82) c71e55e clean up some weirdness in the router (#80) 3568579 Blocklist import (#77) d389e7b Domain block (#76) cf19aaf Fix 404 contact (#74) 4f3b3f5 put version in binary properly (#73) 87cf621 Remote instance dereferencing (#70) 869a6c1 Go fmt 3e6aef0 fix the annoying infinite handshake bug (tested) (#69) b71bbc8 remove regex hostname parsing (#67) b6c6230 separate public key handler (#64) 82d2544 qad getting started guide (#63) c1e1072 nodeinfo compliance (#61) 16e486a Timeline bugfix (#60) 8c9a853 Instance settings updates (#59) fd57cca Opengraph meta tags (#55) 5a2f3b3 add 404 handler (#57) eaeceb1 add favicon (#54) 0733aea Merge branch 'main' of github.com:superseriousbusiness/gotosocial into main de0b7d2 add web handler to testrig (#56) 38912f5 add web handler to testrig f9bc305 new styling for frontpage, update login and authorize templates (#46) a5fd6f4 Deletes+unboosts (#52) efbd839 Testrig fixes (#50) aa8a0d0 Streaming (#49) ad2e982 update CONTRIBUTING with css bundling instructions, and go fmt (#48) 82d9f88 Timeline improvements (#41) b4288f3 Timeline manager (#40) 6ac6f8d Tidy + timeline embetterment (#38) 3d77f81 Move a lot of stuff + tidy stuff (#37) c4d791b fix some lil bugs in search 5facbed Merge branch 'main' of github.com:superseriousbusiness/gotosocial into main 1fe5e36 Search (#36) 0fe853b first implementation of search feature cb54324 federate account updates 87177d8 Announce/boost (#35) 40add68 Notifications (#34) e670c32 Faves (#31) 2dbd132 first draft of Dockerfile ee65d19 status deletes, profile updates (#30) aeb665d small fiddling to allow whalebird to work (a bit) 43c3a47 Admin cli (#29) 0df2e18 Home timeline (#28) d839f27 Follows and relationships (#27) dc06e71 update progress 6cd0334 Refine statuses (#26) 30718d7 update progress fd45d0e draft CoC 0fb6a5e add matrix link 22f91ce contributing.md cc48294 Inbox post (#22) 742f985 Mediahandler (#21) dc338dc Webfinger + Small fixes (#20) 41915ab Fix token sweep (#19) 3363e0e add api/v1/instance info handler + instance model (#18) 0cbab62 Letsencrypt (#17) 3c539cd status boosts (#16) 6f5c045 Ap (#14) ac9adb1 Revert "make boosts work woo (#12)" (#15) 9616f46 make boosts work woo (#12) dafc3b5 linting + organizing 32c5fd9 Api/v1/statuses (#11) 71a49e2 Api/v1/accounts (#8) aa9ce27 Oauth/token (#7) 4194f8d fix lint errors 3ddbd6f add golangci job 84177a6 Create codeql-analysis.yml d3076f3 replace sloth with cuter sloth 995e61b Merge pull request #6 from gotosocial/fun_with_oauth2 3388c87 Go mod tidy 044c0df go fmt d0e6625 tidying up 2b7b562 add apps handler b3d1362 add fields 8176096 formatting,comments 0abe01e add progress list b915f42 allow showing just code fd02a7d update 95faebe extend application for use in oauth 1b11884 auth flow working for code dbad219 Create FUNDING.yml b6087cc almost there 6eab00e getting there....... 9d5fb07 fiddling eb2ff2a Some more messing around with oauth2 a4b7026 add liberapay widgets 186b31a move image attribution to the bottom cf86f7a fix link c12ecfc note about sponsorship 39cf909 use markdown for logo 43af091 center logo a85576a add cute logo 4e281f3 whole buncha stuff b48072f go mod tidy cca676d tests 1eecc26 bit of experimenting and tidying 7590eb9 move mastotypes 772f6e5 start working on oauth2 implementation 77f2a27 more work on types 1165d24 more mastotypes bc7302a more mastotypes 90d59d5 add link back to profile 66f8ac7 tweak 1ed791c added some stuff to readme 687eb02 add more mastotypes c558681 start adding mastodon api types a7b01a4 building out media req/resp model 9a79d17 moving stuff around, stubbing interfaces 338af00 add note struct cd39566 tiny experiments ac9c6b6 tiny bit of moving around 5996309 create db schemas for accounts 052783d tidying up here and there baa2cbc Merge branch 'main' of github.com:gotosocial/server into main 645ea31 Move some consts around 18d0685 further fun 54c4b8d further yak shaving b8e0f33 start the service using a cli be1b631 More messing around d8e8d44 start implementing db interface c879e1b Messing around a bit 9ffbb35 bits n bobs bffbdeb try some doc changes 294d6d1 Doc updates 7867fde add theme to conda env 73cb9a1 Update docs 5a6d09e Merge branch 'main' of github.com:gotosocial/server into main fab5f8d remove newline 3ec8e12 Merge pull request #1 from gotosocial/dev e68b72d add docs and a bunch of other stuff fbf52fe messing around a bit 503b77b first commit

    Docker images

    • docker pull superseriousbusiness/gotosocial:0.1.0
    Source code(tar.gz)
    Source code(zip)
    checksums.txt(600 bytes)
    gotosocial_0.1.0_freebsd_amd64.tar.gz(14.86 MB)
    gotosocial_0.1.0_linux_386.tar.gz(13.79 MB)
    gotosocial_0.1.0_linux_amd64.tar.gz(14.72 MB)
    gotosocial_0.1.0_linux_arm64.tar.gz(13.67 MB)
    gotosocial_0.1.0_linux_armv6.tar.gz(14.07 MB)
Owner
Super Serious Business
Building Fediverse software since 2021.
Super Serious Business
Pape-server - A small server written in golang to serve a random wallpaper.

pape-server I like to inject custom CSS themes into a lot of websites and electron apps, however browsers don't let websites access local disk through

null 0 Dec 31, 2021
A Language Server Protocol (LSP) server for Jsonnet

Jsonnet Language Server Warning: This project is in active development and is likely very buggy. A Language Server Protocol (LSP) server for Jsonnet.

Jack Baldry 17 Apr 29, 2022
The server-pubsub is the main backend of DATAVOC project that manages all the other web-server modules of the same project such as the processor

server-pubsub The server-pubsub is the main backend of DATAVOC project that manages all the other web-server modules of the same project such as the p

null 0 Dec 3, 2021
Server and client implementation of the grpc go libraries to perform unary, client streaming, server streaming and full duplex RPCs from gRPC go introduction

Description This is an implementation of a gRPC client and server that provides route guidance from gRPC Basics: Go tutorial. It demonstrates how to u

Joram Wambugu 0 Nov 24, 2021
Cert bound sts server - Certificate Bound Tokens using Security Token Exchange Server (STS)

Certificate Bound Tokens using Security Token Exchange Server (STS) Sample demonstration of Certificate Bound Tokens acquired from a Security Token Ex

null 0 Jan 2, 2022
Echo-server - An HTTP echo server designed for testing applications and proxies

echo-server An HTTP echo server designed for testing applications and proxies. R

Erik Cavalcanti 4 Jan 5, 2022
Broadcast-server - A simple Go server that broadcasts any data/stream

broadcast A simple Go server that broadcasts any data/stream usage data You can

Zack 49 May 11, 2022
Videos2gether-server - Server for the Realtime video streaming app Videos2Gether

Videos Together server Server source code for the https://videos2gether.com Arch

Tiago Taquelim 0 Jan 9, 2022
JPRQ Customizer is a customizer that helps to use the JPRQ server code and make it compatible with your own server with custom subdomain and domain

JPRQ Customizer is a customizer that helps to use the JPRQ server code and make it compatible with your own server with custom subdomain and domain.You can upload the generated directory to your web server and expose user localhost to public internet. You can use this to make your local machine a command center for your ethical hacking purpose ;)

Abir Ghosh 1 Jan 19, 2022
Envoy-eds-server - Envoy EDS server is a working Envoy Discovery Service implementation

envoy-eds-server Intro Envoy EDS server is a working Envoy Discovery Service imp

Radu Crisan 2 Apr 2, 2022
Http-server - A HTTP server and can be accessed via TLS and non-TLS mode

Application server.go runs a HTTP/HTTPS server on the port 9090. It gives you 4

Vedant Pareek 0 Feb 3, 2022
Server - Dupman server written in Go

server dupman server written in Go Requirements Go (>=1.17) Installation Usage C

dupman 9 Feb 22, 2022
“Dear Port80” is a zero-config TCP proxy server that hides SSH connection behind a HTTP server!

Dear Port80 About The Project: “Dear Port80” is a zero-config TCP proxy server that hides SSH connection behind a HTTP server! +---------------------

Abbas Gheydi 5 May 20, 2022
Simple mDNS client/server library in Golang

mdns Simple mDNS client/server library in Golang. mDNS or Multicast DNS can be used to discover services on the local network without the use of an au

HashiCorp 891 Jun 29, 2022
golang tcp server

TCPServer Package tcp_server created to help build TCP servers faster. Install package go get -u github.com/firstrow/tcp_server Usage: NOTICE: OnNewMe

null 415 Jun 2, 2022
A LWM2M Client and Server implementation (For Go/Golang)

Betwixt - A LWM2M Client and Server in Go Betwixt is a Lightweight M2M implementation written in Go OMA Lightweight M2M is a protocol from the Open Mo

Zubair Hamed 54 May 28, 2022
High-performance PHP application server, load-balancer and process manager written in Golang

RoadRunner is an open-source (MIT licensed) high-performance PHP application server, load balancer, and process manager. It supports running as a serv

Spiral Scout 6.5k Jun 20, 2022
golang NFSv3 server

Golang Network File Server NFSv3 protocol implementation in pure Golang. Current Status: Minimally tested Mounts, read-only and read-write support Usa

Will 496 Jun 28, 2022