/translaite

Simple webapp to translate text via ChatGPT

Primary LanguageTypeScript

translAIte

Translations app built with Remix, supports authentication. Uses ChatGPT to translate text.

After your first login, you will be prompted to enter your OpenAI API key. You can get one here.

Built for self-hosting: host it anywhere you want, and use it for free.

View on DockerHub.

Table of contents

Pre-built Docker Image

docker pull nzambello/translaite

If you want to use the pre-built Docker image, you can run it with:

docker run -d -p 8080:8080 -v /path/to/data:/data/data.db nzambello/translaite

If you want to use different defaults, you can build your own image. See Running with docker

Docker compose

Basic example:

version: "3.8"

services:
  translaite:
    image: nzambello/translaite
    container_name: translaite
    restart: always
    ports:
      - 8080:8080
    volumes:
      - ./dockerData/translaite:/data # Path to data for DB persistence

Example of docker-compose.yml with Traefik as reverse proxy:

translaite:
  depends_on:
    - watchtower
  image: nzambello/translaite
  container_name: translaite
  restart: always
  volumes:
    - /dockerData/translaite:/data # Path to data for DB persistence
  labels:
    - "com.centurylinklabs.watchtower.enable=true"
    - "traefik.enable=true"
    - "traefik.http.routers.translaite.rule=Host(`translate.YOURDOMAIN.com`)" # change it to your preferences
    - "traefik.http.routers.translaite.entrypoints=websecure"
    - "traefik.http.routers.translaite.tls.certresolver=letsencrypt"
    - "traefik.http.routers.translaite.service=translaite-service"
    - "traefik.http.services.translaite-service.loadbalancer.server.port=8080"

Custom deployment or development

Tech Stack

Running Locally

# Clone the repo
git clone https://github.com/nzambello/translaite.git
cd translaite

# Install dependencies
yarn install

# Setup .env
cp .env.example .env
vim .env

# Start the app
yarn dev

Running with Docker

# Clone the repo
git clone https://github.com/nzambello/translaite.git
cd translaite

# Setup .env
cp .env.example .env
vim .env

# Build the image
docker built -t translaite .

# Start the app
docker run -p 127.0.0.1:8080:8080 translaite

Multi-platform Docker image

docker buildx create --name mybuilder --driver docker-container --bootstrap --use # create a new builder and switch to it using a single command.
docker buildx build --platform linux/amd64,linux/arm64 -t nzambello/translaite:latest --push .

License

Nicola Zambello © 2023

GNU GPLv3