Después de escuchar a Lorenzo de atareao.es hablar en su podcast de GoToSocial como alternativa para los zumbados que mantenemos una instancia de Mastodon para una sola persona, he decidido probarlo, porque la verdad es que es un puto coñazo mantener toda esa infraestructura para poder decir que soy admin de algo. Así que he buscado en la documentación y me he liado la manta a la cabeza y lo he levantado, otra vez (y me da hasta vergüenza reconocerlo, pero es que es muy cómodo), con docker.
Al lío.
Como siempre, creo una carpeta donde poner el docker-compose.yaml y los volúmenes que necesite para así tenerlo todo a mano y ordenadito con la orden: mkdir ~/docker/gotosocial
.
Me ha pasado que al intentar levantar el docker, me ha creado la carpeta ~/docker/gotosocial/data
y le ha puesto ‘root’ como usuario, así que se ve que como GoToSocial usa el usuario 1000:1000 (o sea, tu usuario) para funcionar dice que te vayas al carajo cuando quiere acceder a la base de datos.
Mi solución: le cambio el usuario y zumbando, ya no tiene problemas de acceso. Para esto usamos: sudo chown -R tusuario:tuusuario ~/docker/gotosocial/data
y ya podemos volver a levantar el docker.
Ahora toca descargarse el docker-compose.yaml de la página oficial y hacerle algunos cambios en la configuración.
1
2
3
cd ~/docker/gotosocial
wget https://raw.githubusercontent.com/superseriousbusiness/gotosocial/main/example/docker-compose/docker-compose.yaml
nvim docker-compose.yaml
Y lo dejamos así:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
version: "3.3"
services:
gotosocial:
image: superseriousbusiness/gotosocial:latest
container_name: gotosocial
user: 1000:1000
networks:
- gotosocial
environment:
GTS_HOST: gotosocial.tudominio.es
GTS_DB_TYPE: sqlite
GTS_DB_ADDRESS: /gotosocial/storage/sqlite.db
GTS_LETSENCRYPT_ENABLED: "false"
GTS_LETSENCRYPT_EMAIL_ADDRESS: ""
## For reverse proxy setups:
# GTS_TRUSTED_PROXIES: "172.x.x.x"
## Set the timezone of your server:
TZ: Europe/Madrid
GTS_INSTANCE_LANGUAGES: es
GTS_MEDIA_REMOTE_CACHE_DAYS: 7
ports:
#- "443:8080"
## For letsencrypt:
#- "80:80"
## For reverse proxy setups:
- "127.0.0.1:8083:8080"
volumes:
- ./data:/gotosocial/storage
restart: "always"
networks:
gotosocial:
ipam:
driver: default
Recuerda cambiar el nombre del dominio por el tuyo.
Ahora vamos a añadir a /etc/caddy/Caddyfile
la configuración del virtualhost.
1
2
3
4
5
6
7
8
9
10
gotosocial.tudominio.es {
# Optional, but recommended, compress the traffic using proper protocols
encode zstd gzip
# The actual proxy configuration to port 8080 (unless you've chosen another port number)
reverse_proxy * http://127.0.0.1:8083 {
# Flush immediatly, to prevent buffered response to the client
flush_interval -1
}
}
Lanzamos el compose y recargamos caddy.
1
2
sudo docker-compose up -d
sudo systemctl reload caddy
Nota: si lanzas el compose y falla, cambia el propietario de la carpeta ‘data’ y lo vuelves a lanzar.
Ya puedes acceder desde el navegador al panel de GoToSocial, pero todavía no tenemos usuario administrador y hay que crearlo desde la terminal y darle permisos para administrar la instancia.
1
2
3
4
5
6
7
8
9
10
11
12
#Creamos el usuario
sudo docker exec -it gotosocial \
/gotosocial/gotosocial \
admin account create \
--username some_username \
--email someone@example.org \
--password 'some_very_good_password'
#Le damos rol de administrador a nuestro usuario
sudo docker exec -it gotosocial \
/gotosocial/gotosocial \
admin account promote \
--username some_username
Con esto ya puedes entrar a la web de administración con tu usuario y contraseña.
Y esto es todo, ahora toca probarlo.
Más información en gotosocial.org