Gymetry makes it easy to log your daily workouts and visualize your fitness journey with powerful data insights. Whether you're tracking weights, reps, or even your walking activity, Gymetry offers an intuitive dashboard to monitor progress over time.
git clone https://github.com/pantharhsit007/gymetry.git
cd gymetryImportant
Make sure to set up the .env file before running the docker-compose.
docker-compose up --watchor
pnpm installpnpm devCreate a .env file in the root directory from .env.example and add the following:
NEXT_PUBLIC_API_URL=http://localhost:3000
AUTH_SECRET=""
AUTH_GOOGLE_ID=""
AUTH_GOOGLE_SECRET=""
DATABASE_URL="postgresql://postgres:mysecretpassword@localhost:5432/gymetry-db"
REDIS_URL="redis://localhost:6379"
UPSTASH_REDIS_REST_URL=""
UPSTASH_REDIS_REST_TOKEN=""
CACHE_TTL="86400" # 24 hours
NEXT_PUBLIC_POSTHOG_KEY=""
NEXT_PUBLIC_POSTHOG_HOST="https://us.i.posthog.com"Make sure to update the values as necessary for your setup.
Gymetry uses PostgreSQL as its database and Redis for caching. You have a couple of options:
pnpm db:dockeror
docker run --name gymetry-db \
-e POSTGRES_USER=postgres \
-e POSTGRES_PASSWORD=mysecretpassword \
-e POSTGRES_DB=gymetry \
-p 5432:5432 \
-d postgresdocker run --name gymetry-redis \
-p 6379:6379 \
-d redis- PostgreSQL: Neon, Avian or Vercel
- Redis: Redis Labs, Redis Enterprise, Upstash, etc.
Ensure that your .env file’s DATABASE_URL and REDIS_URL match the settings above.
- Frontend: Next.js, Tailwind CSS, TypeScript
- Backend: Next.js API Routes, NextAuth.js for authentication
- Database: PostgreSQL
- Caching: Redis
Contributions are welcome! To contribute:
- Fork the repository.
- Create a new branch for your feature (
git checkout -b feature-name). - Commit your changes (
git commit -m 'Add some feature'). - Push to the branch (
git push origin feature-name). - Open a Pull Request.
This project is licensed under the MIT License. See the LICENSE file for details.

