A modern, lightweight, and cost-efficient VPS-deployed progress bar service that automatically calculates and posts the current year progress (e.g. [▓▓▓▓▓▓▓▓░░░░░░░] 53%) to Mastodon.
backend/) that computes the current year progress percentage and posts updates to Mastodon.static_dart_build/) served inside the container via Nginx.lokaj VPS using Kamal 2.You can run and test the service fully on your local machine using Docker / OrbStack.
To verify the progress math and state storage logic, run:
cd backend
dart test
To compile the native Dart CLI and assemble the Nginx + Cron production container locally:
make build-local
You can start the local container in the background (which runs the static web server on port 8080):
export MASTODON_ACCESS_TOKEN="your_access_token_here"
make run-local
Once running:
make logs-localmake toot-local
To stop the running container:
make stop-local
To rebuild the legacy frontend/ using old Dart 2.0 SDK:
./build_to_server.sh
The main application is deployed using Kamal 2 to the lokaj VPS.
config/deploy.yml..kamal/secrets (do not commit this file).To deploy the latest changes to production:
make deploy
The /gae folder contains a modern, minimal Google App Engine project using Python 3. Its sole purpose is to redirect all legacy traffic from Google App Engine to the new VPS URL (https://progress.filiph.net).
To deploy updates to the GAE redirector:
cd gae
gcloud app deploy