Favicon of wger

wger

Create custom workout and meal plans with a free, open-source fitness application. Track your progress with detailed logs, a photo diary, and a calendar view.

Take full control of your fitness journey with a comprehensive, community-driven platform. This free and open-source application helps you manage every aspect of your health, from exercise routines to daily nutrition, without ads or selling your personal information.

Design your ideal workout routines and meal plans with powerful, flexible tools.

  • Craft Your Workouts: Build weekly plans from a library of over 855 exercises. Set specific goals for reps, sets, duration, or distance for each activity.
  • Plan Your Meals: Construct nutritious daily meals using a massive database of more than 2.9 million food items. Automatically calculate nutritional values like calories, protein, and carbs for your entire plan.
  • Track Your Progress: Monitor your journey with detailed tracking features. Record your weight, keep a photo log to visualize changes, add custom notes, and review past entries in a convenient calendar view.

As a fully open-source project, you have complete control. You can use the web version, host your own private server for your gym, or integrate its features into your own application using the open API. Your data is always yours.

Directory Structure

wger
media
postgres-data
redis-data
static
.env
docker-compose.yml

docker-compose.yml

services:
  db:
    image: postgres:14
    container_name: wger_db
    environment:
      POSTGRES_USER: wger
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
      POSTGRES_DB: wger
    volumes:
      - ./postgres-data:/var/lib/postgresql/data
    restart: unless-stopped

  cache:
    image: redis:7
    container_name: wger_cache
    volumes:
      - ./redis-data:/data
    restart: unless-stopped

  web:
    image: wger/server:latest
    container_name: wger_web
    depends_on:
      - db
      - cache
    environment:
      SECRET_KEY: ${SECRET_KEY}
      SITE_URL: http://localhost:8000
      POSTGRES_HOST: db
      POSTGRES_USER: wger
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
      POSTGRES_DB: wger
      REDIS_HOST: cache
      REDIS_PORT: 6379
      REDIS_DB: 1
      CELERY_BROKER_URL: redis://cache:6379/2
      CELERY_RESULT_BACKEND: redis://cache:6379/2
      CSRF_TRUSTED_ORIGINS: http://localhost:8000
    ports:
      - "8000:8000"
    volumes:
      - ./static:/home/wger/static
      - ./media:/home/wger/media
    restart: unless-stopped

  celery:
    image: wger/server:latest
    container_name: wger_celery
    command: celery -A wger worker --loglevel=info
    depends_on:
      - db
      - cache
      - web
    environment:
      SECRET_KEY: ${SECRET_KEY}
      SITE_URL: http://localhost:8000
      POSTGRES_HOST: db
      POSTGRES_USER: wger
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
      POSTGRES_DB: wger
      REDIS_HOST: cache
      REDIS_PORT: 6379
      REDIS_DB: 1
      CELERY_BROKER_URL: redis://cache:6379/2
      CELERY_RESULT_BACKEND: redis://cache:6379/2
    volumes:
      - ./media:/home/wger/media
    restart: unless-stopped

.env

# Security Warning: Keep your secret key secret in production!
SECRET_KEY=your_super_secret_key_here_change_me

# Database Password
POSTGRES_PASSWORD=wger_secure_password
Categories:

Share:

Ad
Favicon

 

  
 

Similar to wger

Favicon

 

  
  
Favicon

 

  
  
Favicon