From 5453f1fc6177df5022a5cbc500214eb73128f3ae Mon Sep 17 00:00:00 2001 From: Jacob Schlecht Date: Tue, 30 Jun 2026 16:41:19 -0600 Subject: [PATCH 1/2] feat: Add gifbox integration Signed-off-by: Jacob Schlecht --- Guides.md | 16 +++++++++++++++- generate_config.sh | 10 +++++++--- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/Guides.md b/Guides.md index edd11d1c..50650f9a 100644 --- a/Guides.md +++ b/Guides.md @@ -20,6 +20,7 @@ Below are guides provided by the core team and by the community. Contributions t - [Placing Stoat Behind Other Reverse Proxies](#placing-stoat-behind-other-reverse-proxies) - [NGINX](#nginx) - [Making Your Instance Invite-only](#making-your-instance-invite-only) +- [Enabling the Gif Picker](#enabling-the-gif-picker) ## Placing Stoat Behind Other Reverse Proxies @@ -148,4 +149,17 @@ docker compose exec database mongosh # create the invite use revolt db.invites.insertOne({ _id: "enter_an_invite_code_here" }) -``` \ No newline at end of file +``` + +## Enabling the Gif Picker + +To enable the gif picker, you must create a Gifbox account and create an api key. Go to [gifbox.me](https://gifbox.me) and make an account. After creating an account and logging in, go to your account settings page by clicking your email in the top right. On your settings page, create an api key. Copy the api key and put it on the bottom of your secrets.env file like so: + +```bash + +REVOLT__API__SECURITY__TENOR_KEY='' +``` + +Restart the stoat-gifbox service by running `docker compose down gifbox && docker compose up -d gifbox`. + +The gifpicker should now work. \ No newline at end of file diff --git a/generate_config.sh b/generate_config.sh index 6db90f35..ef22a33a 100755 --- a/generate_config.sh +++ b/generate_config.sh @@ -50,11 +50,11 @@ if test -f "Revolt.toml"; then fi echo "Overwriting existing config." echo "Renaming Revolt.toml to Revolt.toml.old" - mv Revolt.toml Revolt.toml.old + mv Revolt.toml Revolt.toml.old || true echo "Renaming livekit.yml to livekit.yml.old" - mv livekit.yml livekit.yml.old + mv livekit.yml livekit.yml.old || true echo "Renaming compose.override.yml to compose.override.yml.old" - mv compose.override.yml compose.override.yml.old + mv compose.override.yml compose.override.yml.old || true else echo "Existing config found, in caution, this script will refuse to execute if you have existing config." if [ "$SECRETS_FOUND" -eq "0" ]; then @@ -184,6 +184,7 @@ echo "VITE_API_URL=https://$DOMAIN/api" >> .env.web echo "VITE_WS_URL=wss://$DOMAIN/ws" >> .env.web echo "VITE_MEDIA_URL=https://$DOMAIN/autumn" >> .env.web echo "VITE_PROXY_URL=https://$DOMAIN/january" >> .env.web +echo "VITE_GIFBOX_URL=https://$DOMAIN/gifbox" >> .env.web echo "VITE_CFG_ENABLE_VIDEO=$VIDEO_ENABLED" >> .env.web # client config @@ -200,6 +201,7 @@ echo "api = \"https://$DOMAIN/api\"" >> Revolt.toml echo "events = \"wss://$DOMAIN/ws\"" >> Revolt.toml echo "autumn = \"https://$DOMAIN/autumn\"" >> Revolt.toml echo "january = \"https://$DOMAIN/january\"" >> Revolt.toml +echo "gifbox = \"https://$DOMAIN/gifbox\"" >> Revolt.toml # livekit hostname echo "" >> Revolt.toml @@ -247,6 +249,8 @@ if [[ -n "$VIDEO_ENABLED" ]]; then echo "video_aspect_ratio = [0.3, 10]" >> Revolt.toml fi +echo "If you would like to enable the gif picker, please see the Guides section of the Readme" + if [[ $IS_OVERWRITING -eq 1 ]]; then echo "Overwrote existing config. If any custom configuration was present in old Revolt.toml, you may now copy it over from Revolt.toml.old." fi \ No newline at end of file From 9da7d6bc797017bd770090010106d6c9141f43f2 Mon Sep 17 00:00:00 2001 From: Jacob Schlecht Date: Tue, 30 Jun 2026 16:42:07 -0600 Subject: [PATCH 2/2] feat: Update services to v0.13.8 Signed-off-by: Jacob Schlecht --- compose.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/compose.yml b/compose.yml index c29344c8..b8f3b94b 100644 --- a/compose.yml +++ b/compose.yml @@ -78,7 +78,7 @@ services: # API server api: - image: ghcr.io/stoatchat/api:v0.13.6 + image: ghcr.io/stoatchat/api:v0.13.8 env_file: secrets.env depends_on: database: @@ -95,7 +95,7 @@ services: # Events service events: - image: ghcr.io/stoatchat/events:v0.13.6 + image: ghcr.io/stoatchat/events:v0.13.8 env_file: secrets.env depends_on: database: @@ -110,7 +110,7 @@ services: # File server autumn: - image: ghcr.io/stoatchat/file-server:v0.13.6 + image: ghcr.io/stoatchat/file-server:v0.13.8 env_file: secrets.env depends_on: database: @@ -125,7 +125,7 @@ services: # Metadata and image proxy january: - image: ghcr.io/stoatchat/proxy:v0.13.6 + image: ghcr.io/stoatchat/proxy:v0.13.8 env_file: secrets.env volumes: - type: bind @@ -135,7 +135,7 @@ services: # Tenor proxy gifbox: - image: ghcr.io/stoatchat/gifbox:v0.13.6 + image: ghcr.io/stoatchat/gifbox:v0.13.8 env_file: secrets.env volumes: - type: bind @@ -145,7 +145,7 @@ services: # Regular task daemon crond: - image: ghcr.io/stoatchat/crond:v0.13.6 + image: ghcr.io/stoatchat/crond:v0.13.8 env_file: secrets.env depends_on: database: @@ -160,7 +160,7 @@ services: # Push notification daemon pushd: - image: ghcr.io/stoatchat/pushd:v0.13.6 + image: ghcr.io/stoatchat/pushd:v0.13.8 env_file: secrets.env depends_on: database: @@ -177,7 +177,7 @@ services: # Voice ingress daemon voice-ingress: - image: ghcr.io/stoatchat/voice-ingress:v0.13.6 + image: ghcr.io/stoatchat/voice-ingress:v0.13.8 env_file: secrets.env restart: always depends_on: