Skip to content

DreeveΒ #2138

Open
Open

Description

@MickLesk

Name of the Script

Dreeve

Script Type

CT (LXC Container)

Does this script support arm64?

arm64 supported

πŸ“‹ Script Details

Self-hosted dashboard for sports and fitness data β€” imports Strava activities into statistics, heatmaps, gear tracking and yearly overviews. Formerly "Statistics for Strava". Requested in discussion #4640.

Caveat up front: upstream documents Docker only. docs.dreeve.app has no bare-metal path. This script reproduces their image natively and is therefore not on a path the project supports β€” flagged as a warning in the JSON.

How it maps:

  • Their image is dunglas/frankenphp:1-php8.5-alpine. FrankenPHP publishes standalone binaries (frankenphp-linux-x86_64-gnu), so PHP comes bundled and the Debian PHP version is irrelevant β€” relevant here since composer.json requires php: >=8.5 and trixie ships 8.4.
  • Composer is bootstrapped through frankenphp php-cli, then composer install --no-dev --optimize-autoloader.
  • The Caddyfile is adapted from docker/app/config/Caddyfile (worker mode, 3 threads, http_port 8080) with absolute paths.
  • Migrations use the same commands as their entrypoint: bin/console app:db:migrate + cache:warmup.
  • SQLite via DATABASE_DIRECTORY=/opt/dreeve_data, per config/packages/doctrine.yaml.

Deliberately not reproduced: the Go fit-tool built in the first Docker stage, and the bundled shoutrrr binary. FIT file import and push notifications are therefore unavailable. Adding them means building a Go binary from docker/fit-tool/ β€” worth doing if the script proves useful.

Note: Strava API credentials are mandatory; without them the app has no data at all.

Source: https://github.com/dreeveapp/dreeve

Activity

  1. community-scripts-issue-bot commented on Oct 12, 2026

    @community-scripts-issue-bot

    The Dreeve script is ready for testing. Run it in the Proxmox VE shell (or on an Incus host) to create a container:

    bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/DevScripts/main/ct/dreeve.sh)"
    

    Dreeve does nothing without Strava credentials. Create an API application at https://www.strava.com/settings/api and put STRAVA_CLIENT_ID, STRAVA_CLIENT_SECRET and STRAVA_REFRESH_TOKEN into /opt/dreeve/.env.local, then restart the service.
    Upstream only documents a Docker deployment. This script reproduces that setup natively - FrankenPHP as the server (the same one their image is based on) plus composer install - but it is not a path the project supports, so an upstream change can break it.
    Activity data is stored in a SQLite database under /opt/dreeve_data via DATABASE_DIRECTORY. Back up that directory.
    Not included: the Go-based fit-tool and shoutrrr notification binary that the official image bundles. FIT file import and push notifications are therefore unavailable.

    Note: This is not in the official repo yetβ€”it's just a dev version! After merging into ProxmoxVE, it will need to be recreated.

    Discord testing thread: https://discord.com/channels/1302816934508630047/1559185052066385992

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions