Gancio

Gancio is a shared agenda for local communities connected to the Fediverse.


Note

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

License

All relevant legal information can be found here

Prerequisites

You’ll need your MySQL credentials. Get them with my_print_defaults:

[isabell@stardust ~]$ my_print_defaults client
--default-character-set=utf8mb4
--user=isabell
--password=MySuperSecretPassword
[isabell@stardust ~]$

Gancio v1.6.14 is running with node 14=> and 18=<.

Installation

We will install gancio using yarn:

[isabell@stardust ~]$ yarn global add --network-timeout 1000000000 --silent https://gancio.org/latest.tgz

Note

you can ignore warnings for “unmet peer dependency” and outdated packages.

Create a database for the application:

[isabell@stardust html]$ mysql -e "CREATE DATABASE ${USER}_ganico"
[isabell@stardust html]$

Configuration

You will be asked for your database credentials at the setup process when you visit your Gancio instance for the first time.

Setup daemon

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

[program:gancio]
command=%(ENV_HOME)s/bin/gancio
directory=%(ENV_HOME)s
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 ~]$

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

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 ~]$

Updates


Tested with Gancio 1.6.14 and Uberspace 7.15.4.0

Written by: Jonathan Herper <jonathan@herper.me>