Admin Panel
Back to Site

dPass Invest

Product configuration access

or

Sign in with your email and password.

Enter the email you use to sign in. If an account exists, we will email a one-time link (expires in one hour).

Request an account for this product. Submissions are reviewed; accounts stay pending until an operator grants full access.

First-time setup: create the primary administrator account. This step appears only until an administrator exists.

Require a setup key first

Use this if others might open this page before you finish. On the server, add a one-line secret in admin/data/setup_token (see setup_token.example in the admin folder). This form will then ask for that key.

Must match the single line in admin/data/setup_token. You can remove that file after setup.

You will use this email address to sign in.

Manual recovery (advanced)

If this form cannot complete, create admin/data/users.json as described in your deployment guide. Passwords must be stored as a PHP password_hash:

php -r "echo password_hash('YOUR_PASSWORD', PASSWORD_DEFAULT);"

dPass Invest

Account pending

Thanks for your interest

We are selectively onboarding new operators and collaborators. Your account is on file; the team will reach out when access expands. You can sign out below and check back later.

dPass Invest

Access restricted

Administrator console

This area is only for authorized super administrators who configure the product site. Your account is approved for the member area — plans and subscription — not this console.

You are signed in as —. If you believe you should have admin access, contact your organization owner.

Plans & subscription Back to public site
Next step: Set where contact-form messages are delivered.

Overview

Snapshot of inbound interest, members, Stripe readiness, and environment. Data stays on your server (JSON files).

—
Inquiries logged
—
Last 7 days
—
Last 30 days
—
Approved members
—
With billing plan
—
Contact email
—
SSO sign-in
—
Stripe
Last inquiry: — Pending access: — PHP — Data dir: —

Contact routing

Values are stored in contact-backend.json beside your public pages—the same file contact-submit.php reads. With SMTP host and sender email set, outbound mail uses SMTP: enable Use TLS for STARTTLS (typical on port 587), or turn it off for implicit TLS on port 465. If SMTP is not configured, PHP mail() is used, subject to your server’s mail settings. A successful “test send” only means your server accepted the message; if nothing arrives in the inbox, align From email with SMTP username, check spam, SPF/DKIM, and your mail host’s logs.

SMTP configuration

For reliable delivery, set From email (in the next column) to the same address as SMTP username unless your mail host allows a different From.

Sender & site

Required when SMTP host is set; also used as the From address for PHP mail() when set.

Optional reference URL for your records. This SMTP is used for test mail and sign-in password reset links; it is separate from the public marketing contact form.

Portfolio

Upload the latest grid export (CSV). Required columns: Period and Cum. net profit. Each upload replaces the prior file and regenerates portfolio-data.json next to the public index.php so the landing chart stays current.

Export from your platform: typically “Save as” or copy the grid to a CSV file. Filename date does not matter—the file you upload is always treated as the latest.

—

Recent inquiries

Rows are appended when a visitor successfully submits the public contact form (after mail is accepted). Preview is truncated for the table.

When Name Email Subject Preview

Users

Everyone who requested access (sign-in page or SSO) stays in this list for audit: Pending rows can be approved or denied. Approve makes them an approved member (they use plans & subscription, not this console). Deny keeps the row with status Denied and blocks sign-in for that account. Revert to pending on an approved or denied row moves them back to pending, clears the last decision timestamp, and sends an email explaining the change (approved users are told access is under review again; previously denied users are told the request was reopened and can sign in while pending — use Forgot password if they need to set a password). Delete removes their row permanently after you confirm; they may request access again with the same email as a new account. Use Restrict / Unrestrict anytime (before or after approve or deny) to block or allow sign-in without changing their status row. Restricted users cannot use password or SSO until unrestricted. After approval or unrestrict, they should sign out and sign in again (or open the plans page) so their session updates. Billing summarizes Stripe-linked plan and subscription state (updated via webhooks). Only super administrators see this tab.

Note: last sign-in and first-seen IP are stored when the network exposes a reliable client address (e.g. Cloudflare, X-Forwarded-For, REMOTE_ADDR).

Name Email Requested SSO Sign-in IP Status Billing Decided Actions

Stripe payments

Keys and price IDs are stored in admin/data/stripe_config.json on the server (not in the browser). Create products in Stripe Dashboard: Evaluation and Lifetime are one-time prices; Quarterly is a recurring subscription (e.g. every 3 months). Enable Stripe Tax in the Dashboard if you use automatic tax. Register the webhook URL below for checkout.session.completed, customer.subscription.updated, and customer.subscription.deleted.

Get keys from the Stripe Dashboard (Developers → API keys). Webhook endpoint: register the URL below under Developers → Webhooks, then paste the signing secret here.

Webhook endpoint: —

If Stripe Dashboard → Webhooks shows failed deliveries and the response body is invalid signature, the signing secret here does not match that endpoint: open the endpoint in Stripe, click Reveal under Signing secret, copy the full whsec_… value, paste into the field below, and save. Each endpoint has its own secret; test and live differ.

This URL must subscribe to all three events: checkout.session.completed (records the purchase and sends member email), customer.subscription.updated, and customer.subscription.deleted. If checkout.session.completed is missing, checkout succeeds in Stripe but this site never updates the member’s plan or sends purchase mail.

Offer plans on the member page

Turn a switch off to mark a plan as sold out on plans & subscription (button disabled, not clickable). Stripe price IDs can remain saved.

Price IDs

—

Single Sign-On (SSO)

Turn on Google, Microsoft, and/or Apple below to show those sign-in options on the public admin page. Google and Microsoft use a client ID and client secret; Apple uses a Services ID, Team ID, Key ID, and the .p8 private key text (Sign in with Apple). New visitors can use SSO to request access (pending account), the same idea as the password form. The optional list below is only if you want to restrict who may create a new account via SSO. People already in users.json can always use SSO. With no users.json yet, first-time setup can still use SSO to create the super admin if a provider is enabled.

Required when the browser’s host does not match the URL you registered with Google or Microsoft (reverse proxy, CDN). Must be the folder that contains sso_callback.php, no trailing slash. Leave blank to auto-detect from the current request.

When this is empty, any verified Google, Microsoft, or Apple identity can create a pending account via SSO (like Request access). When you add addresses, only those emails can create a new SSO account; existing rows in users.json are unaffected.

Google

Enable Google SSO

Google shows the secret only once. If SSO fails after “Save”, paste a new secret from Google Cloud (Credentials → your OAuth client → reset secret), then Save SSO configuration again. An empty field keeps the previous value only if one was already saved successfully.

Create at Google Cloud Console. Authorized redirect URI (copy exactly — must include the full word google, not go): …/admin/sso_callback.php?provider=google

Microsoft

Enable Microsoft SSO

Create at Azure Portal → App registrations. Redirect URI (exact match, type Web): …/admin/sso_callback.php?provider=microsoft

Apple

Enable Sign in with Apple

Paste the full text of the key you download from Certificates, Identifiers & Profiles → Keys. Leave blank to keep a key already saved on the server.

Configure in Apple Developer: enable Sign in with Apple on the Services ID, create a Key for Sign in with Apple, and set Return URL (exact): …/admin/sso_callback.php?provider=apple. The primary App ID for the Services ID must have Sign in with Apple enabled.

Overview and the sign-in page treat SSO as ready only when each enabled provider has the required credentials saved (Google/Microsoft: client secret; Apple: Team ID, Key ID, and private key).

Account & security

Sign-in settings for your operator account. Password data is stored in admin/data/users.json on the server. To review other people’s access requests, use the Users tab (super administrators). Organization SSO is configured on the SSO tab.

Password

Use a strong password you do not reuse elsewhere. You must enter your current password to apply a change.

© · Calisken Technologies
Homepage Privacy Terms

Confirm