FitFeed is a self-hosted, privacy-first social platform designed for fitness enthusiasts.
Think of it as your personal, open-source analogue to platforms like Strava. Users can share a feed of their fitness activities, view updates from friends, and interact with posts through likes and comments, all within a secure and controlled environment.
- Activity Feed: Share and view fitness activities with friends.
- Self-Hosted: Full control over your data and infrastructure.
- Privacy-First: Designed with user privacy as the top priority.
I'm actively planning to expand FitFeed's capabilities to include:
- Social Interaction: likes and comments.
- Synchronization services for popular fitness devices (Garmin, Polar, Suunto).
- Integration with mobile health platforms (Google Fit, Apple Health).
- Storage and tracking of basic health measurements (weight, sleep, calories burned, blood pressure).
FitFeed is built as a set of microservices utilizing modern and efficient technologies:
| Component | Technology | Description |
|---|---|---|
| Backend | Go (Golang) | High-performance, compiled backend services. |
| Frontend | TypeScript, React, Ant Design | Robust, type-safe user interface built with the Ant Design component library. |
| Build/Bundler | Vite, Bun | Fast development server and high-performance package management/runtime. |
| Database ORM/Migration | Gorm, Goose | Used for database interaction and managing schema evolution. |
The core functionality is split across several services located in the services/ directory:
auth: Handles user registration and authentication logic.api: The main application programming interface service.dbm: A custom database migration tool leveraging Goose and Gorm to manage database schema updates.web: The frontend client application (React + Ant Design).
FitFeed uses a unified development environment managed by a root Makefile and Air for Go hot-reloading.
Check if you have all required tools (Go, Docker, Node.js, Bun, Air) and initialize your local configuration:
make initThis will create a config.toml from the template. Edit it to provide your OAuth credentials or adjust ports.
To start the database, apply migrations, and start backend services (with hot-reload) and the frontend (Vite) in parallel:
make devTo stop the development environment (database and other containers):
make dev-stopManage your schema evolution using the dbm service through the Makefile:
make migrate-up
make migrate-down(Note: Please fill in the detailed steps here once the setup is finalized. For now, this serves as a placeholder.)
- Prerequisites: Ensure you have [Go/Bun/Docker/etc.] installed. TBD
- Clone the Repository:
git clone [https://github.com/Linux-oiD/fitfeed.git](https://github.com/Linux-oiD/fitfeed.git) cd fitfeed - Database Setup: [Instructions to set up the database, e.g., PostgreSQL]. TBD
- Run Migrations:
./services/dbm migrate up
- Build and Run Services:
# Example commands to start backend and frontend # ...
This project is licensed under the AGPL (GNU Affero General Public License). See the LICENSE file for more details.
- Website: fitfeed.org