This application serves as a wall display for viewing your Folding@Home team ranking and work unit progress.
- Docker, OR Python 3.8+ with
virtualenv
(pip install virtualenv
) - FAHClient version 7.4+
-
Copy
config.example.json
toconfig.json
and input your configuration parameters. See the Configuration section for details. -
From the Folding@Home client, go to Configure > Remote Access.
- Configure a password if desired.
- Under IP Address Restriction follow the instructions to configure a subnet that will allow the server running this application to reach the client.
- If you chose not to use a password, also configure this subnet under Passwordless IP Address Restriction.
- You may need to close the advanced control and restart Folding@Home for the changes to take effect.
-
Follow the instructions under Running the Application.
The application uses a JSON-based configuration file, like so:
{
"team": "1",
"servers": [
{"address": "192.168.1.10", "password": "abcd1234"},
{"address": "192.168.1.11"}
]
}
The parameters are as follows:
-
team
: Your team id, used to display the leaderboard. You can find this in your Folding@Home client. If this option is omitted, the leaderboard will not display. -
servers
: This is a list of servers running the Folding@Home client, formatted as a dictionary with the following options:-
address
: The IP address or hostname of the server. Note that using hostname may slow down fetches. -
password
: The password configured on the server. Omit this option if the server does not use a password. Authentication is also skipped if the password is null or the empty string.
-
From the project directory, run:
# If you want application output, you may wish to remove the -d flag.
docker-compose up -d
Docker will build the container with the appropriate dependencies and launch gunicorn to host the application. By
detault, the app runs on port 5000 and listens on all interfaces (0.0.0.0
). You can change this on the CMD
line of
Dockerfile
.
If you desire to host the dashboard publicly, you may choose to use nginx.sample.conf
(or your own configuration)
to put an nginx proxy in front of the app.
When you want to terminate the application, run the following from the project directory:
docker-compose down
-
Install dependencies and set up the virtual environment:
# First run virtualenv venv # Every run source venv/bin/activate pip install -r requirements.txt
-
Start the application while inside the virtualenv:
gunicorn -b 0.0.0.0:5001 -w 1 wsgi:app
-
Navigate to
http://<server ip>:5001
in your browser. -
When you're finished, you can press Ctrl+C in the terminal to stop the server, then run
deactivate
to return to your normal shell.
Contributions are welcome! If you see a problem or would like a feature, create an issue or open a pull request on this repository.
This application is distributed with the MIT license. See the LICENSE file for more information.