Gotosocial, a fediverse server written in Golang

Side note, you are not the first, and I think we should make more clear in the documentation and the webadmin interface what these panels do and do not do.

3 Likes

i just installed this app. seems to sort of work but not sure what else to do. i’ll have to dig into the official upstream documentation and see how that works and hope it works the same for the _ynh package :smiley:

I’m trying to access the admin panel at GoToSocial Admin Panel but it says: no client_id found in session

solved!
I needed to turn off ad blocking in Brave browser.

1 Like

I think you need to issue commands with ./ in front of gotosocial

eg.

./gotosocial admin account confirm --username some_username
2 Likes

i just installed this app. seems to sort of work but not sure what else to do. i’ll have to dig into the official upstream documentation and see how that works and hope it works the same for the _ynh package :smiley:

I tried to explain as best I could in the readme, could you tell me what information you were missing so I could try to explain it?

2 Likes

Also I wanted to report this from logs:

Okay I asked in the GTS discussion group :

it just means a write has been attempted on a websocket connection after the connection was closed already
Hijacked makes it sound really sinister :')

So nothing serious :slight_smile:

1 Like

I think maybe installation instructions and a quick start guide of the first things a user should do would be helpful.

===================
Quickstart

  • Create a domain for Gotosocial. Needs to be installed on its own domain!

  • Install the app from the Yunohost Admin panel or by running:
    yunohost app install gotosocial

  • Go to the domain you installed Gotosocial on in the webbrowser. You should see an information page about your server like this:

  • To test your server is working, try making some toots!(posts). Login with your user/pass at pinafore.social or with the Android client Tusky

  • To change options for your server go to:
    GoToSocial Admin Panel and login. If you wish to host your own admin panel, please read this page.

  • How to add a second user?
    To run the ‘gotosocial’ commands, you must be in the gotosocial folder:
    cd /var/www/gotosocial
    Then you can run the following commands:

./gotosocial admin account create --username some_username  --email someuser@example.org --password 'somelongandcomplicatedpassword'

./gotosocial admin account confirm --username some_username

There are other commands you can run. Read the documentation.

===================

Some general questions I have after running Gotosocial for less than 24 hours :stuck_out_tongue:

  • Do I need to choose what instances I federate with? I can see my posts on my GTS on Mastodon.social federated timeline, but my Federated timeline is empty. I have already followed a few people.
  • If I change options in the ./config.yaml file, do I need to stop and start GTS? If so, how do I do that? Like this maybe:
./gotosocial --config-path ./config.yaml server stop
./gotosocial --config-path ./config.yaml server start
  • Is there a way to delete statuses/posts/toots/media older than a certain period? I would like to have posts be delete after 1 year.
  • When clicking on the profile of someone I follow, I can’t see any of their toots? Will I only see the toots of them after I had added them?

Thank you for packaging this! It seems very speedy, and light.

3 Likes

That’s confusing. The admin panel is hosted elsewhere :roll_eyes:. I think it should be added to the installation script so the server and its admin panel are both selfhosted. May be pinafore also.
That reminds me of the couple synapse / element.

Your quick start and faq are great for understanding how it works :ok_hand:

1 Like

Yes if the admin panel is not too hard to host, it would be cool to have the option to self-host it.

Maybe an option during install.

git clone https://github.com/superseriousbusiness/gotosocial-admin.git && cd gotosocial-admin
yarn install
node index.js

This will compile a static bundle in public/, which can be copied to any webhost, or put into your GoToSocial installation in the web/admin directory.

Yes, I saw that but I don’t know what yarn is, and don’t want to worry about keeping another thing up to date for now. I’ll use the other panel for now until it’s bundled. Still learning the ropes here on Gotosocial :smiley:

I had to manually pass --db-user gotosocial and --db-password dbpassword flags in the account creation process to actually access postgre database

db-password value is set on install and can be read at /var/www/gotosocial/config.yaml

Now I have two users!

1 Like

OMG please don’t manipulate the database directly :fearful:
you can break things in the functioning of gotosocial by doing so
I’m too lazy to read the code, but it is probable that the creation of a user touches many places in the database for it to work properly

I advise you to restore a backup

to use the command line, place yourself in the /var/www/gotosocial directory
then start your commands with ./gotosocial
(I’d forgotten the initial ./ on my previous exemple commands, sorry about that :sweat_smile:)

1 Like

That’s confusing. The admin panel is hosted elsewhere :roll_eyes:. I think it should be added to the installation script so the server and its admin panel are both selfhosted. May be pinafore also.

Yes if the admin panel is not too hard to host, it would be cool to have the option to self-host it.
Maybe an option during install.

I’m a volunteer, I do this as I can at a pace that doesn’t tire me
I plan to package the GTS admin panel as a separate package (since it is optional) and to propose the automatic installation when installing GoToSocial, but it will come when it comes
In the meantime you can use the instance proposed by the GTS developers
However I don’t plan to package Pinafore

And keep in mind that GoToSocial is an alpha software, as mentionned in the readme
So it’s a normal thing that everything is not perfect and that some features are missing
This is also true for my package of it!


I think maybe installation instructions and a quick start guide of the first things a user should do would be helpful.

Everything you proposed is already written in the readme, but in a different way
Maybe I should rephrase it, but at first sight all the information is there


Do I need to choose what instances I federate with? I can see my posts on my GTS on Mastodon.social federated timeline, but my Federated timeline is empty. I have already followed a few people.

The behavior of GTS is to federate with all possible instances if they are not part of the blocklist
Federation can take time, if you can, try to make some public posts
And if you have an account elsewhere on the fediverse, you can boost those public posts to make your instance known to other instances

If I change options in the ./config.yaml file, do I need to stop and start GTS? If so, how do I do that? Like this maybe:

Use the yunohost administration interface to restart the service, or service gotosocial restart
This way the service will be properly in the background and with the protections provided by systemd

Is there a way to delete statuses/posts/toots/media older than a certain period? I would like to have posts be delete after 1 year.

There are external tools dedicated to that, I don’t use them so I didn’t remember names

When clicking on the profile of someone I follow, I can’t see any of their toots? Will I only see the toots of them after I had added them?

This is the normal way of working, your instance is only aware of the posts that were created after the beginning of the federation with another instance

2 Likes

Thanks for the information! I’ll keep playing around with this and follow your suggestions.

1 Like

Uh, i’m tired, I forgotten about that:

If I change options in the ./config.yaml file, do I need to stop and start GTS? If so, how do I do that? Like this maybe:

Do not edit the config.yaml file by hand. Always use this config panel instead. Otherwise your changes will be deleted at each update!
explanations here ^^

But if you need to restart the GTS service, proceed as described in the previous message :slight_smile:

1 Like

OMG please don’t manipulate the database directly :fearful:
you can break things in the functioning of gotosocial by doing so

I have not :laughing:

Just executed user creation command adding database user and pass to access it, otherwise it prompts this error:

time=2022-05-14T12:51:13+02:00 level=fatal msg=error executing command: error creating dbservic
e: postgres ping: failed to connect to host=/var/run/postgresql user=root database=gotosocial
: server error (FATAL: password authentication failed for user “root” (SQLSTATE 28P01))

as I’m connected to YNH server using ssh as root user.

This:

./gotosocial admin account create --username some_username  --email someuser@example.org --password 'somelongandcomplicatedpassword' --db-user gotosocial --db-password thatlongpassword

Might it be that $GLOBAL settings in config file are not read or passed to the binary?

1 Like

@OniriCorpe thank you for your work

I put here this “problems” to help develop as this is the only way I can contribute. Take your time to improve/solve issues. Thank you.

2 Likes

Oh I see! :sweat_smile:

I just tried it on my test instance and I see the same thing

I posted this in the GTS chat group:

I would like to know if this behaviour is normal
an user of my yunohost package reported this to me and I have the problem too
the GTS server is running, I run the user creation command, and it returns an error asking me to authenticate to the database

./gotosocial admin account create --username test_user --email test@example.com --password "someextracomplicatedpassword"
time=2022-05-14T18:42:43+02:00 level=fatal msg=error executing command: error creating dbservice: postgres ping: failed to connect to `host=/var/run/postgresql user=root database=gotosocial`: server error (FATAL: authentification par mot de passe échouée pour l'utilisateur  « root » (SQLSTATE 28P01))

the user in question has bypassed using --db-user gotosocial --db-password thatlongpassword however from my point of view as a packager, I don’t want users to have to go digging for that password

btw feel free to joint those chats on matrix :slight_smile:
General #gotosocial:superseriousbusiness.org
Help #gotosocial-help:superseriousbusiness.org
Code #gotosocial-code:superseriousbusiness.org

edit : okay, I got an answer

that’s kind of annoying yeah, ran into that too because my gotosocial user is a system account and my postgres uses peer auth
ideally that’d be fixed with the cli talking to the running gotosocial server instead of doing things manually in the database, imo

and I opened an issue

edit2:
okay, commands should start with ./gotosocial --config-path config.yaml to retrieve the DB credentials
I’ve edited the readme accordingly and fixed a residual upgrade bug, so an update will be released

2 Likes

I had to disable Pi-Hole in order to be able to use it the first time. I published my first post and now, even with Pi-Hole enabled everything seems to work.

1 Like

updated to 0.3.5-ynh

process run without issues, now we have

  • admin panel at domain.tld/admin
  • mastodon official android app works fine with gotosocial. Tested in /e/ (lineageOS fork), f-droid version.

thanks :heart:

2 Likes