A multilingual chat app powered with translate-gemma LLM. Messages are translated on the fly using Google's translategemma hosted on hugging face zeroGPU space.
openssl available on your shell (Git Bash or WSL on Windows)The app calls out to a Gradio Space for translation, so the Space needs to exist before the stack comes up — otherwise translate requests will just error.
Create a new Space at https://huggingface.co/new-space.
@spaces.GPU)Copy everything from model/ in this repo into your Space:
app.pyrequirements.txtREADME.md (the frontmatter pins the Gradio/Python versions)Commit and push the files to the space repository.
Wait for the Space to build. Grab the URL — it'll look like
https://<username>-<space-name>.hf.space.
Create a read token at https://huggingface.co/settings/tokens, you'll
need it for HF_TOKEN.
Copy the example file:
cp .env.example .env
Generate a 32-byte key for message encryption and paste the output into
MESSAGE_ENCRYPTION_KEY:
openssl rand -base64 32
If you don't have openssl on Windows, PowerShell works too:
$bytes = [byte[]]::new(32)
[System.Security.Cryptography.RandomNumberGenerator]::Create().GetBytes($bytes)
[Convert]::ToBase64String($bytes)
Then fill in HF_TOKEN and HF_SPACE_URL from step 1, and set
NUXT_SESSION_PASSWORD to a long random string.
After cloning, on Windows or macOS:
docker compose up -d
Once all services are up, access the database through adminer: http://localhost:8080
and copy paste all /sql files in the order given.
setup.sh is a provisioning script written for a fresh DigitalOcean Ubuntu
droplet. It installs Docker, generates the encryption key, opens a text editor
so you can fill in the rest of .env, brings up the stack, and loads the
schema.
Make it executable and run it:
chmod +x setup.sh
bash setup.sh
It's specific to that deployment and isn't needed for local development —
docker compose up -d is enough there.
After the project is handed in, the script will be reworked to be more portable. For now, treat it as deployment-specific.
241 commits
Vue
71.4%
TypeScript
24.6%
Python
2.3%
A multilingual chat app powered with translate-gemma LLM. Messages are translated on the fly using Google's translategemma hosted on hugging face zeroGPU space.
openssl available on your shell (Git Bash or WSL on Windows)The app calls out to a Gradio Space for translation, so the Space needs to exist before the stack comes up — otherwise translate requests will just error.
Create a new Space at https://huggingface.co/new-space.
@spaces.GPU)Copy everything from model/ in this repo into your Space:
app.pyrequirements.txtREADME.md (the frontmatter pins the Gradio/Python versions)Commit and push the files to the space repository.
Wait for the Space to build. Grab the URL — it'll look like
https://<username>-<space-name>.hf.space.
Create a read token at https://huggingface.co/settings/tokens, you'll
need it for HF_TOKEN.
Copy the example file:
cp .env.example .env
Generate a 32-byte key for message encryption and paste the output into
MESSAGE_ENCRYPTION_KEY:
openssl rand -base64 32
If you don't have openssl on Windows, PowerShell works too:
$bytes = [byte[]]::new(32)
[System.Security.Cryptography.RandomNumberGenerator]::Create().GetBytes($bytes)
[Convert]::ToBase64String($bytes)
Then fill in HF_TOKEN and HF_SPACE_URL from step 1, and set
NUXT_SESSION_PASSWORD to a long random string.
After cloning, on Windows or macOS:
docker compose up -d
Once all services are up, access the database through adminer: http://localhost:8080
and copy paste all /sql files in the order given.
setup.sh is a provisioning script written for a fresh DigitalOcean Ubuntu
droplet. It installs Docker, generates the encryption key, opens a text editor
so you can fill in the rest of .env, brings up the stack, and loads the
schema.
Make it executable and run it:
chmod +x setup.sh
bash setup.sh
It's specific to that deployment and isn't needed for local development —
docker compose up -d is enough there.
After the project is handed in, the script will be reworked to be more portable. For now, treat it as deployment-specific.
241 commits
Vue
71.4%
TypeScript
24.6%
Python
2.3%