gush.env
file, paying special attention to:GUSH_JWT_SECRET
GUSH_HTTP_PORT
/GUSH_HTTPS_PORT
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
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.
gush.database.url
, gush.attachments.acceptedTypes
, ktor.deployment
, and potentially ktor.security.ssl
gush.env
- the variables here can override the values in application.conf
(unless you remove the override lines)src/main/resources/logback.xml
./gradlew buildFatJar
to build the release binary with embedded resourcesbuild/libs/garden.taks.gush-all.jar
to wherever you're planning to serve Gush! fromjava -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
gush.attachments.storage.prefix
and gush.dataCollection.storage.prefix
respectively (s3 (or whatever) support Coming Soon™️)Dockerfile
included for the Gush! app, or you can obviously write your own - once everything is configured, the jar is all you need to have inside the containerexamples/nginx-site-gush.conf
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 🤷
If you already have one, or if you're hosting on an existing domain, skip this subsection. I recommend Let's Encrypt.
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.