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.
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>