TorrentPier Download Center: verified builds of TorrentPier from GitHub (https://get.torrentpier.dev)
  • PHP 75.1%
  • Go Template 24.9%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Roman Kelesidis 4a4d242b17
All checks were successful
deploy / deploy (push) Successful in 58s
Page views go to Umami (stats.belomaxorka.dev)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-13 02:11:59 +07:00
.forgejo/workflows Deploy over SSH on push; retry broken downloads; fix LTS tag archive URL 2026-10-10 20:11:52 +07:00
css Import TorrentPier Download Center as deployed 2026-10-10 17:51:08 +07:00
fonts Import TorrentPier Download Center as deployed 2026-10-10 17:51:08 +07:00
install Import TorrentPier Download Center as deployed 2026-10-10 17:51:08 +07:00
js Import TorrentPier Download Center as deployed 2026-10-10 17:51:08 +07:00
template Page views go to Umami (stats.belomaxorka.dev) 2026-10-13 02:11:59 +07:00
.editorconfig Import TorrentPier Download Center as deployed 2026-10-10 17:51:08 +07:00
.env.example Verify every build before listing it; console-only cron with a log 2026-10-10 17:51:48 +07:00
.gitattributes Verify every build before listing it; console-only cron with a log 2026-10-10 17:51:48 +07:00
.gitignore Deploy over SSH on push; retry broken downloads; fix LTS tag archive URL 2026-10-10 20:11:52 +07:00
.htaccess Import TorrentPier Download Center as deployed 2026-10-10 17:51:08 +07:00
bootstrap.php Import TorrentPier Download Center as deployed 2026-10-10 17:51:08 +07:00
composer.json Import TorrentPier Download Center as deployed 2026-10-10 17:51:08 +07:00
composer.lock Deploy over SSH on push; retry broken downloads; fix LTS tag archive URL 2026-10-10 20:11:52 +07:00
cron.php Stop on an unusable GitHub API answer instead of guessing 2026-10-10 20:22:09 +07:00
dl.php Import TorrentPier Download Center as deployed 2026-10-10 17:51:08 +07:00
favicon.ico Import TorrentPier Download Center as deployed 2026-10-10 17:51:08 +07:00
functions.php Import TorrentPier Download Center as deployed 2026-10-10 17:51:08 +07:00
index.php Import TorrentPier Download Center as deployed 2026-10-10 17:51:08 +07:00
LICENSE Import TorrentPier Download Center as deployed 2026-10-10 17:51:08 +07:00
README.md Deploy over SSH on push; retry broken downloads; fix LTS tag archive URL 2026-10-10 20:11:52 +07:00
renovate.json Renovate config: dependency PRs, PHP 7.4 constraint 2026-10-10 21:13:05 +07:00
robots.txt Import TorrentPier Download Center as deployed 2026-10-10 17:51:08 +07:00
Updater.php Stop on an unusable GitHub API answer instead of guessing 2026-10-10 20:22:09 +07:00

TorrentPier Download Center

Download center for TorrentPier builds: https://get.torrentpier.dev

A cron job reads releases and tags of torrentpier/torrentpier and torrentpier/torrentpier-lts, downloads the builds into secret/ and lists them in MySQL. A build is listed only after it passes verification:

  • the final HTTP status is 200 and the body length matches Content-Length;
  • sha256 and size match the release asset digest, when GitHub provides one;
  • the file is a valid ZIP archive.

The checksum shown on the site is the sha256 of the stored file. A file already on disk is re-checked the same way and downloaded again if it fails.

Fetching builds (console only)

php cron.php                         # latest build of the main repository
php cron.php version=v2.4.1          # a specific build
php cron.php version=all             # every build
php cron.php type=lts                # latest LTS build
php cron.php type=lts version=all    # every LTS build

Progress and errors go to logs/cron.log. cron.php refuses to run over HTTP.

Setup

  1. composer install
  2. cp .env.example .env and fill in the database settings. Use APP_ENV=production: with local the cached GitHub responses in json/ are never refreshed. GITHUB_TOKEN is optional and only raises the GitHub API rate limit.
  3. Import install/mysql.sql.
  4. Schedule php cron.php and php cron.php type=lts (for example once a day).

Deploy

A push to main runs .forgejo/workflows/deploy.yml: lint, composer install --no-dev, then the code is shipped over SSH to the server, where it is checked with the site's PHP and copied over the previous version (with a backup). .env, secret/, json/, logs/ and caches on the server are never touched by a deploy. Needs the DEPLOY_SSH_KEY secret and the DEPLOY_TARGET and DEPLOY_KNOWN_HOSTS variables in Forgejo.

Keep .env, json/, logs/, vendor/, cache/, compiled/, install/, template/ and the PHP helpers (cron.php, Updater.php, bootstrap.php, functions.php) out of public reach. .htaccess alone does not protect them when nginx serves static files itself.