sync
This commit is contained in:
81
README.md
Normal file
81
README.md
Normal file
@@ -0,0 +1,81 @@
|
||||
# Fitbit to Garmin Weight Sync - Dockerized
|
||||
|
||||
This application syncs weight data from the Fitbit API to Garmin Connect. This README provides instructions on how to run the application using Docker.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- Docker must be installed on your system.
|
||||
|
||||
## Building the Docker Image
|
||||
|
||||
To build the Docker image for this application, run the following command from the root directory of the project:
|
||||
|
||||
```bash
|
||||
docker build -t fitbit-garmin-sync .
|
||||
```
|
||||
|
||||
## Running the Application
|
||||
|
||||
The application requires persistent storage for configuration, database, logs, and session data. You should create a local directory to store this data and mount it as a volume when running the container.
|
||||
|
||||
1. **Create a data directory on your host machine:**
|
||||
|
||||
```bash
|
||||
mkdir fitbit_garmin_data
|
||||
```
|
||||
|
||||
2. **Run the Docker container with a mounted volume:**
|
||||
|
||||
The application can be run in several modes. The default command is `schedule` to run the sync on a schedule.
|
||||
|
||||
```bash
|
||||
docker run -d --name fitbit-sync -v "$(pwd)/fitbit_garmin_data":/app/data fitbit-garmin-sync
|
||||
```
|
||||
|
||||
This will start the container in detached mode (`-d`) and run the scheduled sync.
|
||||
|
||||
### Interactive Setup
|
||||
|
||||
The first time you run the application, you will need to perform an interactive setup to provide your Fitbit and Garmin credentials.
|
||||
|
||||
1. **Run the container with the `setup` command:**
|
||||
|
||||
```bash
|
||||
docker run -it --rm -v "$(pwd)/fitbit_garmin_data":/app/data fitbit-garmin-sync setup
|
||||
```
|
||||
|
||||
- `-it` allows you to interact with the container's terminal.
|
||||
- `--rm` will remove the container after it exits.
|
||||
|
||||
2. **Follow the on-screen prompts** to enter your Fitbit and Garmin credentials. The application will guide you through the OAuth process for Fitbit, which requires you to copy and paste a URL into your browser.
|
||||
|
||||
After the setup is complete, the necessary configuration and session files will be saved in your `fitbit_garmin_data` directory.
|
||||
|
||||
### Other Commands
|
||||
|
||||
You can run other commands by specifying them when you run the container. For example, to run a manual sync:
|
||||
|
||||
```bash
|
||||
docker run -it --rm -v "$(pwd)/fitbit_garmin_data":/app/data fitbit-garmin-sync sync
|
||||
```
|
||||
|
||||
To check the status:
|
||||
|
||||
```bash
|
||||
docker run -it --rm -v "$(pwd)/fitbit_garmin_data":/app/data fitbit-garmin-sync status
|
||||
```
|
||||
|
||||
## Data Persistence
|
||||
|
||||
The following files will be stored in the mounted data volume (`fitbit_garmin_data`):
|
||||
|
||||
- `config.json`: Application configuration, including API keys.
|
||||
- `weight_sync.db`: SQLite database for storing sync state.
|
||||
- `weight_sync.log`: Log file.
|
||||
- `garmin_session.json`: Garmin session data.
|
||||
|
||||
By using a volume, this data will persist even if the container is stopped or removed.
|
||||
|
||||
## Managing Credentials
|
||||
|
||||
Your Fitbit and Garmin credentials are an essential part of the `config.json` file, which is stored in the data volume. Be sure to treat this data as sensitive. It is recommended to restrict permissions on the `fitbit_garmin_data` directory.
|
||||
Reference in New Issue
Block a user