GoToSocial

GoToSocial is an ActivityPub social network server, written in Golang and currently in alpha. It provides a lightweight, customizable, and safety-focused entryway into the Fediverse.


Note

For this guide you should be familiar with the basic concepts of

Prerequisites

Your URL needs to be setup:

[isabell@stardust ~]$ uberspace web domain list
isabell.uber.space
[isabell@stardust ~]$

Installation

Create a directory structure in your home path and cd into the root of it.

[isabell@stardust ~]$ mkdir -p ~/gotosocial/storage
[isabell@stardust ~]$ cd ~/gotosocial
[isabell@stardust gotosocial]$

Download the latest pre-comppiled binary from the releases page.

[isabell@stardust gotosocial]$ wget https://github.com/superseriousbusiness/gotosocial/releases/download/v0.8.1/gotosocial_0.8.1_linux_amd64.tar.gz

Extract the archive in place to populate the directory with the binary and static and example files.

[isabell@stardust gotosocial]$ tar xzf gotosocial_0.8.1_linux_amd64.tar.gz
[isabell@stardust gotosocial]$

Configuration

Configure GoToSocial

Copy the example configuration file via cp ./example/config.yaml . and edit it using your favorite text editor. Change the following values.

host: "isabell.uber.space"
protocol: "https"
port: 8080
db-type: "sqlite"
db-address: "sqlite.db"
storage-local-base-path: "/home/isabell/gotosocial/storage"

We’ll be using SQlite, but you can also use PostgreSQL by following the configuration guide for database.

Warning

If you consider using a subdomain, you need to configure this as described in advanced installation before running ./gotosocial for the first time!

Point the uberspace web backend on / to the listener on port 8080.

To make the application accessible from the outside, configure a web backend:

[isabell@stardust ~]$ uberspace web backend set / --http --port <port>
Set backend for / to port <port>; please make sure something is listening!
You can always check the status of your backend using "uberspace web backend list".
[isabell@stardust ~]$

Test your installation by running ./gotosocial --config-path ./config.yaml server start and opening https://isabell.uber.space in your web browser to access the splash screen.

If the splash screen loads successfully, hit Ctrl+C to abort GoToSocial and procede with the rest of the configuration.

Setup daemon

Create ~/etc/services.d/gotosocial.ini with the following content:

[program:gotosocial]
directory=%(ENV_HOME)s/gotosocial
command=%(ENV_HOME)s/gotosocial/gotosocial --config-path ./config.yaml server start
autostart=yes
autorestart=yes

After creating the configuration, tell supervisord to refresh its configuration and start the service:

[isabell@stardust ~]$ supervisorctl reread
SERVICE: available
[isabell@stardust ~]$ supervisorctl update
SERVICE: added process group
[isabell@stardust ~]$ supervisorctl status
SERVICE                            RUNNING   pid 26020, uptime 0:03:14
[isabell@stardust ~]$

Administration

Create a user

Create your user account and make it the instance admin. Replace the values for --username, email and --password with your desired information.

[isabell@stardust gotosocial]$ ./gotosocial --config-path ./config.yaml admin account create --username isabell --email isabell@uber.space --password '5up3r_s3cur3_p4ssw0rD'

To promote the new user as instance admin use the following command:

[isabell@stardust gotosocial]$ ./gotosocial --config-path ./config.yaml admin account promote --username isabell

Login

Login into your account. GoToSocial recommends using Pinafore or Tusky. Setup your profile and start participating in the fediverse. You can also customize your profile and adjust settings by navigating to https://isabell.uber.space/settings with a web browser.

Customization

To provide some information on your instance, you might want set basic instance settings, such as contact user and email. Browse to https://isabell.uber.space/settings/admin/settings and configure the details.

Additionally, there is some documentation on custom CSS, if you’d like to adjust the appearance of your instance.

Best Practices

On a single-user instance you might want to disable further account registration and redirect the landing page to your user profile. For this, edit the configuration in ~/gotosocial/config.yaml and adjust the following settings:

landing-page-user: "isabell"
accounts-registration-open: false

Updates

Note

Check the update feed regularly to stay informed about the newest version.

Stop the service using supervisorctl stop gotosocial and rename your current installation to keep a backup.

[isabell@stardust ~]$ mv ~/gotosocial ~/gotosocial-backup

Repeat the installation step and copy your config.yaml and storage directory back into the new installation.

[isabell@stardust ~]$ cp ~/gotosocial-backup/config.yaml ~/gotosocial/config.yaml
[isabell@stardust ~]$ cp -r ~/gotosocial-backup/storage ~/gotosocial/storage

Sart GoToSocial using the supervisorctl start gotosocial command. If it’s not starting, investigate errors in the supervisord logfile located in ~/tmp. Otherwise have fun using the latest version and consider removing your backup after some days.


Tested with GoToSocial 0.8.1, Uberspace 7.15.1

Written by: this.ven <https://this.ven.uber.space>