Deployment and setup

Deployment and configuration

University-operated Compose and optional provider starters.

Get the application source

Choose one of the following methods on your server. This is the application repository, separate from the public documentation website.

Clone with Git

The university implementation is now on main:

git clone --branch main --single-branch https://github.com/KenseiEmam/Rafik-OpenSource.git
cd Rafik-OpenSource

The documentation follow-up in PR #127 remain under review. A branch can change between installations. For a repeatable deployment, prefer a published release tag and record the selected tag or commit alongside your instance’s operational notes.

Download a release tarball

When a release is published, open the GitHub releases page, select the version you intend to run and download Source code (tar.gz) from its assets. Extract it and enter the extracted application directory before continuing below. Git is not required for this method.

For a command-line download, replace the placeholder with the release’s exact tag, including a v prefix only if the published tag has one:

RAFIK_TAG='REPLACE_WITH_PUBLISHED_TAG'
curl --fail --location "https://github.com/KenseiEmam/Rafik-OpenSource/archive/refs/tags/${RAFIK_TAG}.tar.gz" --output rafik-source.tar.gz
mkdir rafik-source
tar -xzf rafik-source.tar.gz -C rafik-source --strip-components=1
cd rafik-source

Run each command only after the preceding command succeeds. Use a new, empty extraction directory. The tarball is application source, not a prebuilt installer; the Docker Compose prerequisites still apply. If no release is listed, use the maintained Git branch rather than inventing a tag. The source tag v1.0.0-beta.1 exists; a tag is distinct from a published GitHub Release or an uploaded APK. See release status.

Prepare the host

Use a university-controlled Unix server, Docker Compose, domain and persistent storage. Read requirements. Keep first setup private. From the application repository on that server:

cp infrastructure/.env.selfhost.example infrastructure/.env.selfhost
# Edit the instance ID, domain and unique secrets first.
bash infrastructure/scripts/deploy.sh

Set a unique lowercase RAFIK_INSTANCE_ID and unique random 64-character hex PostgreSQL/API passwords. Point DNS before Caddy requests HTTPS. Protect the env file, keep it out of Git and do not expose PostgreSQL or sample identities.

Runtime

The selfhost profile runs web, API, PostgreSQL, migrations and HTTPS proxy. Current password/invitation authentication requires neither SMTP nor Google service-account keys. This website’s contact email is a separate optional integration.

Provider templates

AWS EC2, Google Compute Engine and Azure Linux VM Terraform starters prepare the same stack. They do not provide managed databases, backup schedules or monitoring. They remain unverified; provider deployment, cost/IAM review, update, paired restore and teardown remain for user testing. Protect Terraform state and never commit secrets.

Evaluation and live use

Use synthetic data for a technically supported evaluation beta. Institution privacy/security review, paired recovery, Unix update/rollback and retention alert delivery remain necessary before real athlete data. Optional provider validation and first-user feedback remain backlog items, not claims of completed testing.

Downloads and canonical guidance

Keep source archives and accepted binary assets on GitHub; link from this website instead of rehosting copies. Source tarballs are not database backups or prebuilt container installers. Verify checksums against uploaded assets; automatically generated archive bytes may change even when source contents do not.

Reviewed on 19 October 2026. Follow the version-pinned operations guide and release status.