This is an official TubeSync. Login and upload your youtube videos from TubeSync.
This repo is configured to be built with Docker, and Docker compose. To build all apps in this repo:
# Create a network, which allows containers to communicate
# with each other, by using their container name as a hostname
docker network create app_network`
# Build prod using new BuildKit engine
COMPOSE_DOCKER_CLI_BUILD=1 DOCKER_BUILDKIT=1 docker-compose -f docker-compose.yml build
# Start prod in detached mode
docker-compose -f docker-compose.yml up -d
Open http://localhost:3000.
To shutdown all running containers:
# Stop all running containers
docker kill $(docker ps -q) && docker rm $(docker ps -a -q)
Run the following command:
git clone https://github.com/me-imfhd/TubeSync.git
pnpm install
This turborepo uses pnpm as a package manager. It includes the following packages/apps:
webapp
: a Next.js app.api
: an Express server.ui
: ui: a React component library.eslint-config-custom
:eslint
configurations for client side applications (includeseslint-config-next
andeslint-config-prettier
).eslint-config-custom-server
:eslint
configurations for server side applications (includeseslint-config-next
andeslint-config-prettier
).logger
: Isomorphic logger (a small wrapper around console.log).tsconfig
: tsconfig.json;s used throughout the monorepo.
- Shadcn: Unstyled components in React.
- Tailwind CSS: Utility-first CSS.
- Clerk: User management solution.
- Prisma: Database toolkit.
- tRPC: End-to-end typesafe APIs.
- React Query: Server state management in React.
- Zod: Schema validation in TypeScript.
- TypeScript: A strongly typed superset of JavaScript.
- ESLint: A linter tool for identifying and fixing problems in your JavaScript code.
- Prettier: An opinionated code formatter for consistent code styling.
Each package/app is 100% TypeScript.
This example includes optional remote caching. In the Dockerfiles of the apps, uncomment the build arguments for TURBO_TEAM
and TURBO_TOKEN
. Then, pass these build arguments to your Docker build.
You can test this behavior using a command like:
docker build -f apps/web/Dockerfile . --build-arg TURBO_TEAM=“your-team-name” --build-arg TURBO_TOKEN=“your-token“ --no-cache