gotosocial
Light ActivityPub server compatible with Mastodon's client API, designed for small to medium sized deployments.
- Category: Apps
- Status: 4, pre-release
- Image:
gotosocial
, 4, upstream - Healthcheck: Yes
- Backups: No
- Email: Yes
- Tests: 2
- SSO: 3 (OIDC)
Quick start
- Deploy
coop-cloud/traefik
(note that you will have to enable host networking on traefik for the ratelimiting feature to work) abra app new gotosocial
abra app config <app-domain>
(choose database type now, migration is possible but annoying)abra app deploy <app-domain>
Note: This deployment can be pretty wonky on instances with <2GB of available RAM or <2 cores, this is a known issue related to wasm compilation running on initialization. Please be patient and check the logs.
Database
Sqlite
This is the default, nothing needs to be changed unless you know there are sqlite options you want to change.
Postgres
You will need to generate a secret for the db password
abra app secret generate <app-domain> db_password v1
Then uncomment the following line
COMPOSE_FILE="$COMPOSE_FILE:compose.postgres.yml"
Add your first account
Create the account
Note: Redeploying the app is required after creating or promoting new accounts using the cli, this is expected to change in future updates of GtS
abra app cmd <domain> app newuser <user-name> <email> '<password>'
Make them an admin
abra app cmd <domain> app admin <user-name>
Federation mode
You will want to consider either using an allowlist or a blacklist for federation, this is configurable using GTS_INSTANCE_FEDERATION_MODE
which is set to allowlist by default meaning you will have to explicitly allow federation with other instances via the settings panel https://your-domain.com/settings
.
SMTP
Add your SMTP password
Note: Only STARTTLS is supported currently, if you don't know what this means then please consult your mail service provider.
abra app secret insert <app-domain> smtp_password v1 <smtp-password>
Uncomment and populate these environment variables
#COMPOSE_FILE="$COMPOSE_FILE:compose.smtp.yml"
#GTS_SMTP_HOST=
#GTS_SMTP_PORT=
#GTS_SMTP_USERNAME=
#GTS_SMTP_FROM=
OIDC
Add your OIDC secret
abra app secret insert <app-domain> oidc_secret v1 <oidc-secret>
Uncomment and populate these environment variables
#COMPOSE_FILE="$COMPOSE_FILE:compose.oidc.yml"
#GTS_OIDC_ENABLED=false
#GTS_OIDC_IDP_NAME=""
#GTS_OIDC_ISSUER=""
#GTS_OIDC_CLIENT_ID=""
Optionally also uncomment these environment variables to automate setting up allowed groups for admins and users
#GTS_OIDC_LINK_EXISTING=false
#GTS_OIDC_ALLOWED_GROUPS=[]
#GTS_OIDC_ADMIN_GROUPS=[]
S3 Storage backend
Add your S3 bucket secret key
abra app secret insert <app-domain> s3_secret v1 <s3-secret-key>
Uncomment and populate these environment variables
#COMPOSE_FILE="$COMPOSE_FILE:compose.s3.yml"
#GTS_STORAGE_BACKEND=s3
#GTS_STORAGE_S3_ENDPOINT=""
#GTS_STORAGE_S3_ACCESS_KEY=""
#GTS_STORAGE_S3_BUCKET=""
Further reading & commands
Please refer to https://docs.gotosocial.org some of the commands run will require redeploying the app.
If you need to run any particular command make sure to append ./
to the command gotosocial
as it is not in the contianer's PATH.