Setting up Gush!

Just get me going

Requirements

Steps

  1. Download and unpack Gush!
  2. Edit the gush.env file, paying special attention to:
  3. Run docker compose up
gush-gush-1      | ***********************
gush-gush-1      | *
gush-gush-1      | * The initial admin password is anK8CIurv+5SDz/SjuF7VjP5SJS6slg7QoKuSutVjXQ=
gush-gush-1      | *
gush-gush-1      | ***********************
gush-gush-1      | 2024-07-26 09:10:33.163 [DefaultDispatcher-worker-2] INFO  Application - Responding at http://0.0.0.0:80

Information

This configuration creates two containers: one for the database, and one for the gush application. The database will use the default postgres container image, and its raw files will be stored in the postgresql-data external directory. The gush application uses the openjdk:24-jdk-slim container image, and it will use the external directories attachments (for attachments) and dataCollection (for user "give me my data" requests). You can back up your instance by backing up the database and the attachments directory.

This ain't my first rodeo

Requirements

Steps

  1. Download/unpack Gush!, either via a release or git
  2. Edit the configuration in application.conf
  1. Inspect/edit the default logging settings in src/main/resources/logback.xml
  2. Run ./gradlew buildFatJar to build the release binary with embedded resources
  3. Deploy build/libs/garden.taks.gush-all.jar to wherever you're planning to serve Gush! from
  4. Run java -jar garden.taks.gush-all.jar
 ***********************
 *
 * The initial admin password is anK8CIurv+5SDz/SjuF7VjP5SJS6slg7QoKuSutVjXQ=
 *
 ***********************
 2024-07-26 09:10:33.163 [DefaultDispatcher-worker-2] INFO  Application - Responding at http://0.0.0.0:80

Information

SSL certificate

Easily the most annoying part of setting up a web presence is acquiring and configuring an SSL certificate. This isn't technically part of setting up Gush!, but everybody will need to do it, so 🤷

Get a certificate

If you already have one, or if you're hosting on an existing domain, skip this subsection. I recommend Let's Encrypt.

Convert your certificate

If you're going to have Gush! directly facing the internet (as opposed to being behind a reverse proxy), you'll need to convert your certificate.