Ownware
Home›Gymora›Quickstart
Gymora · Quickstart

Gymora Quickstart, as shipped in the download

The QUICKSTART.txt in the download — the same steps your delivery email carries.

GYMORA — QUICKSTART
===================

REQUIREMENTS
------------
  - PHP 8.0+ with extensions: pdo, pdo_sqlite (or pdo_mysql)
  - MySQL 5.7+ OR SQLite 3 (SQLite requires no extra setup)
  - A web server (Apache with mod_rewrite, or Nginx with try_files)


SHARED HOSTING / CPANEL (RECOMMENDED FOR MOST BUYERS)
------------------------------------------------------
1. Upload the CONTENTS of the `app/` folder to your web root (e.g. public_html/)
   or a subdirectory (e.g. public_html/gymora/).

2. Make sure this directory is writable by PHP:
     data/

   Via cPanel File Manager: right-click -> Permissions -> set to 755 or 775.

3. Visit https://yourdomain.com/install/ in your browser.

4. Fill in the installer:
     - Database: choose MySQL (fill in host/name/user/pass) or SQLite (no setup)
     - Gym / studio name, currency and timezone
     - Admin name, email + password

5. The installer writes config.php and redirects you to the login page.

6. Sign in. On the dashboard or Settings, click "Load demo data" to explore a
   sample gym, or start adding your own members and plans right away.


TYPICAL FIRST-RUN WORKFLOW
--------------------------
  1. Settings      -> confirm gym name, currency and timezone.
  2. Plans         -> create your memberships (e.g. "Unlimited Monthly",
                      "Annual All-Access", a "10-Class Pack", a "Day Pass").
  3. Members       -> add a member (or import by adding them one by one).
  4. Member page   -> Assign a plan; a membership term starts and (optionally) a
                      charge is recorded.
  5. Check-in      -> at the front desk, search the member and check them in.
                      Gymora blocks expired/frozen members and burns class credits.
  6. Payments      -> record and mark payments; watch the Arrears list for anyone
                      past due.


VPS / SELF-HOSTED
-----------------
Apache example:

  <VirtualHost *:80>
    DocumentRoot /var/www/gymora/app
    <Directory /var/www/gymora/app>
      AllowOverride All
      Require all granted
    </Directory>
  </VirtualHost>

Run the web installer as above, or use the CLI seeder to load demo data:

  php bin/demo.php    # loads demo data (login: admin@gymora.app / admin123)


DOCKER (QUICK TEST)
-------------------
  docker run --rm -p 8080:8080 \
    -v "$(pwd)/app:/var/www/html" \
    -w /var/www/html \
    php:8.3-cli \
    php -S 0.0.0.0:8080 router.php

  Then visit http://localhost:8080/install/


RUNNING THE TESTS
-----------------
  docker run --rm -v "$(pwd)/app:/app" -w /app php:8.3-cli php tests/run.php

  Expect: ALL 90 TESTS PASSED (0 failed)


POST-INSTALL SECURITY CHECKLIST
--------------------------------
  [ ] config.php is protected (the .htaccess does this automatically)
  [ ] data/ is not web-accessible (.htaccess blocks it automatically)
  [ ] Use HTTPS in production
  [ ] Keep PHP updated
  [ ] Use a strong admin password


NOTES
-----
  * Gymora is the STAFF-side system (front desk + owner), not a public booking site.
  * "Today", expiry and revenue-this-month are all computed in the timezone you set
    in Settings.
  * Money is stored as integer cents; enter prices as plain decimals (e.g. 59.00).
  * The demo's "Reset all data" removes members/plans/payments/check-ins but keeps
    your login and settings.

← Back to Gymora · Manual · API · Test run

Affiliate program
Recommend tools people own — earn 35% on every sale. 90-day tracking, instant delivery, payouts by Lemon Squeezy.
Become an affiliate →