Get started
This page describes the installation & update process of 66toolkit, as well as technical features.
Most features inside 66toolkit are self-explanatory and have helper texts near them.
Installation steps are straight-forward, minimum web related knowledge is required.
Support is exclusively handled through email. Ensure to attach proof of purchase when requesting support.
Requirements
Ensure your server meets the specified requirements prior to installation or purchase.
These requirements assume you're running on a decent, up-to-date server with the essential extensions already in place.
| PHP | PHP 8.4 - 8.5 |
| Extensions | cURL, OpenSSL, mbstring, MySQLi |
| Database | MySQL 5.7.3+ or MariaDB equivalent |
| Server | Apache or Nginx |
Installation Services
We offer fast & reliable installation services at an affordable price.
Software installation - $35
- Uploading the product files on your server (requires a fully configured and ready to go server).
- Creating and configuring the database that is going to be used.
- Full installation of the product.
Server configuration & software installation - $69
- Setting up a new server (Ubuntu OS) on one of those platforms: Hetzner, Cloudways, Vultr, DigitalOcean
- Setting up the domain for the server
- Free SSL Certificate Installation (Let's Encrypt)
- Installation of Apache, MySQL with MySQLi, PHP
- Installation and configuration of PHP's necessary modules / extensions
- Full installation of the product
Product Update - $30
- Backup of the files & database (upon request).
- Update of the product to the latest version (no matter which version you are currently on).
- Update of all the plugins you own (if any).
Installation
The installation takes approximately 10 minutes.
Prepare the database
- Create a new database user (optional).
- Create a new database.
- Keep the database Host, Name, Username and Password available for the installation.
Upload the product
- Upload the contents of the
product/folder to your web host. - Install it on a domain, subdomain or subfolder, depending on your needs.
- Apache: Ensure the
.htaccessfile is uploaded. It may be hidden on your computer. - Nginx: Complete the Nginx setup after installation.
Run the installation
- Open
domain.com/installin your browser. - Set the required file and folder permissions to 755, 775 or 777, depending on your server configuration.
- Follow the installation steps.
- After a successful installation, your admin login credentials will be displayed.
Set up cron jobs
Cron jobs are required for background tasks.
- Go to Admin Panel β Settings β Cron.
- Create a cron job for each command displayed there.
- If needed, refer to your hosting provider's documentation for instructions on creating cron jobs.
Set up email
Configure SMTP if you want the site to send emails.
- Go to Admin Panel β Settings β SMTP (Email).
- Enter your SMTP provider credentials.
- Save the settings and send a test email.
Update
Follow these steps to update your current installation to the latest version.
Before updating, review the latest changes in the changelog and demo.
Create a backup
Back up your installation before starting the update.
- Back up your database.
- Back up your product files.
Update the files
- Download and extract the latest version of the product.
- Open the
product/folder and upload its contents over your existing installation. - Do not overwrite the
config.phpfile.
Update the database
- Open
domain.com/updatein your browser. - Follow the update steps.
- After the update is complete, delete the
update/folder from your server.
Update plugins
- Go to Admin Panel β Plugins and update any plugins with newer versions available.
- If you use the Offload plugin, also replace the assets in your offloaded storage with the latest files from the
themes/assets/folder.
Caching
Caching is used throughout the application to reduce database load and improve response times.
By default, caching is enabled and uses the file system to store selected database query results.
Caching can be disabled if needed (not recommended) by opening index.php and setting the CACHE constant to 0. This disables caching across the entire application.
To change the cache driver, edit config.php and set the CACHE_DRIVER constant to files, apcu, or redis.
You can switch caching from the file system to Redis if your host supports it.
To enable Redis, edit config.php, configure your Redis connection settings, and set the REDIS_IS_ENABLED constant to 1.
Recommendation: Redis > APCu > File system > No caching. Use Redis when available and memory allows; otherwise, use APCu or the default file system caching.
NGINX Setup
Use the following NGINX rewrite rule to ensure proper functionality of the URLs:
if (!-e $request_filename) {
rewrite ^\/(.+)$ /index.php?altum=$1 last;
}
This command should be added in your domain.conf nginx file in the location / { ... } field.
Docker
Docker is optional and intended for users who prefer container-based deployment instead of the standard shared hosting or VPS installation.
Requirements
Make sure Docker and Docker Compose are installed and running on your system.
Start the application
- The
Dockerfileanddocker-compose.ymlfiles are included in the root folder of the product. - Open a terminal and navigate to the product folder.
- Start the Docker containers:
docker compose up -d
- Open
http://localhost/installin your browser and follow the installation process.
Database configuration
Use the following database credentials during installation:
- Host:
db - Port:
3306 - Username:
root - Password:
root - Database:
app
SSL configuration
SSL should be configured at the server level using a reverse proxy in front of the Docker container.
Captchas
These are the steps to integrate more advanced and powerful captcha codes for your system.
Cloudflare Turnstile
- In your Admin Panel β Settings β Captcha page, set the captcha type to Cloudflare Turnstile.
- Log in to your Cloudflare Dashboard.
- In the sidebar, go to Turnstile and click Add Widget.
- Fill in the form:
- Widget Name β a descriptive name (e.g., "Website Login").
- Domain β your actual website domain (e.g.,
yourdomain.com). - Widget Mode β choose Managed for the simplest setup.
- Click Create to generate the widget.
- Cloudflare will now provide a Site Key and Secret Key.
- Go back to your Admin Panel and paste these keys into the fields under the Captcha settings.
- Click Save to apply the new settings.
Google reCAPTCHA
- In your Admin Panel β Settings β Captcha page, set the captcha type to Google reCAPTCHA v2 Checkbox.
- Log in to the Google reCAPTCHA Admin Console.
- Register a new site:
- Label β a name for your site.
- Select reCAPTCHA v2.
- Add your website domain.
- Once created, copy the Site Key and Secret Key.
- Paste these keys into the corresponding fields in your Admin Panel.
- Click Save to enable Google reCAPTCHA on your site.
hCaptcha
- In your Admin Panel β Settings β Captcha page, set the captcha type to hCaptcha.
- Go to the hCaptcha Website and log in or create an account.
- Navigate to Sites β Add New Site.
- Fill out the required details:
- Site Name
- Domains β your actual website domain.
- After saving, hCaptcha will generate a Site Key.
- Go to Settings β Account and copy your Secret Key.
- Paste both the Site Key and Secret Key into the corresponding fields in your Admin Panel.
- Click Save to activate hCaptcha on your site.
Payment Processors
Follow these steps to connect your system with available payment gateways. Only available for Extended License holders.
PayPal
- Go to the PayPal Developer Dashboard and log in.
- Go to My Apps & Credentials β REST API Apps and click Create App.
- Enter an app name and other required details, then create it.
- Switch the app to Live Mode using the toggle near the app name.
- Copy the Client ID and Secret.
- In your Admin Panel β Settings β Processors β PayPal page, paste the Client ID and Secret. Set the Mode to Live and Submit the settings.
- Back in PayPal Dashboard, open the created app and go to the Webhooks section.
- Click Add Webhook and set the URL:
https://yourdomain.com/webhook-paypal - Select the events:
- Payment sale completed
- Checkout order approved
- Save the webhook.
Stripe
- Log in to the Stripe Dashboard.
- Go to Developers β API Keys.
- Ensure your keys are set to Live Mode to accept real payments.
- Copy the Publishable Key and Secret Key.
- In your Admin Panel β Settings β Processors β Stripe page, paste the keys and save.
- From the Stripe sidebar, go to Developers β Webhooks and click Add Endpoint.
- Set the Endpoint URL:
https://yourdomain.com/webhook-stripe - Select events to send:
checkout.session.completedinvoice.paidinvoice.upcoming
- Save the webhook and copy the Signing Secret.
- In your Admin Panel, paste the Signing Secret into the Webhook Secret field under the Stripe tab.
Offline Payments
- Enable offline payments in your Admin Panel β Settings β Processors β Offline payment page.
- In the Instructions field, add clear details about how customers should complete offline payments (e.g., bank account details).
- When customers check out, they can select offline payment as a method.
- They will see the instructions and must upload proof of payment.
- As an admin, go to Admin Panel β Payments, review proofs, and approve valid payments.
- Upon approval, the plan is activated for the customer.
- If proof is invalid or fake, delete the payment to reject it.
Coinbase Commerce
- Log in to the Coinbase Dashboard.
- Go to Settings.
- Under API Keys, generate and copy your API Key.
- In your Admin Panel β Settings β Processors β Coinbase page, paste the API Key.
- Under Webhook Subscriptions, click Add Endpoint and enter:
https://yourdomain.com/webhook-coinbase - Save the webhook and copy the Shared Secret.
- In your Admin Panel, paste the Shared Secret into the Webhook Secret field under the Coinbase tab.
Crypto.com
- Log in to the Crypto.com Merchant Dashboard.
- Go to Developers β API Keys.
- Copy your Publishable Key and Secret Key.
- In your Admin Panel β Settings β Processors β Crypto.com page, paste the keys.
- Go to Webhooks in the Crypto.com dashboard and click Add Webhook.
- Set the URL:
https://yourdomain.com/webhook-crypto-com - Copy the Signature Secret and paste it into the Webhook Secret field in your Admin Panel.
PayU
- Log in to your PayU account.
- Create a new shop and fill in all required details.
- In your Admin Panel β Settings β Processors β PayU page, paste the provided API keys.
Iyzico
- Log in to the Iyzico Merchant Dashboard.
- Go to Merchant Settings.
- Copy your API Key and Secret Key.
- In your Admin Panel β Settings β Processors β Iyzico page, paste the keys.
- Scroll to the Merchant Notifications section and add:
https://yourdomain.com/webhook-iyzico - Save the configuration.
Paystack
- Log in to your Paystack Dashboard.
- Go to Settings β API Keys & Webhooks.
- In your Admin Panel β Settings β Processors β Paystack page, paste the API keys.
- In Paystack, set your Webhook URL to:
https://yourdomain.com/webhook-paystack - Save changes.
Razorpay
- Log in to your Razorpay Dashboard.
- Go to Settings β API Keys and generate keys.
- In your Admin Panel β Settings β Processors β Razorpay page, paste the keys.
- Go to Settings β Webhooks and click Add New Webhook.
- Set the Webhook URL:
https://yourdomain.com/webhook-razorpay - Create a new Webhook Secret (like a password).
- Enable these events:
subscription.chargedpayment_link.paid
- Save the webhook, then paste the secret into the Razorpay tab in your Admin Panel.
Mollie
- Log in to your Mollie Dashboard.
- Go to Developers β API Keys and copy your Live API Key.
- In your Admin Panel β Settings β Processors β Mollie page, paste the key.
- Activate allowed payment methods in your Mollie account.
Yookassa
- Log in to your Yookassa Dashboard.
- Go to Developers β API Keys and generate keys.
- In your Admin Panel β Settings β Processors β Yookassa page, paste the keys.
- Go to Integration β HTTP Notifications and add:
https://yourdomain.com/webhook-yookassa - Ensure receipts/invoices are enabled for compliance.
Paddle Classic
- Log in to the Paddle Vendors Dashboard.
- Go to Developer Tools β Authentication and copy your Vendor ID and API Key.
- In your Admin Panel β Settings β Processors β Paddle page, paste the Vendor ID and API Key.
- Go to Developer Tools β Public Key and copy it into the Public Key field in your Admin Panel.
Paddle Billing
- Log in to your Paddle Billing Dashboard.
- Go to Developer Tools β Authentication:
- Under the API Keys tab, click New API Key.
- Enable All permissions for Write.
- Copy the generated API Key.
- In your Admin Panel β Settings β Processors β Paddle Billing page, paste the key and save.
- Still under Authentication:
- Go to the Client-side Tokens tab.
- Click New Client-side Token and copy the Token.
- In your Admin Panel β Settings β Payment Processors β Paddle, paste the token and save.
- Next, go to Developer Tools β Notifications:
- Click New Destination.
- In the URL field, enter your webhook endpoint:
https://yourdomain.com/webhook-paddle - In the Events section, select only:
subscription.createdsubscription.updatedtransaction.paid
- Save the destination, then click Edit and copy the Secret Key.
- In your Admin Panel β Settings β Payment Processors β Paddle, paste the Secret Key and save.
- Finally, go to Checkout β Checkout Settings and set your website URL in the Default Payment Link field.
Midtrans
- Log in to the Midtrans Dashboard.
- Go to Settings β Access Keys and copy your Server Key.
- In your Admin Panel β Settings β Processors β Midtrans page, paste the Server Key.
Flutterwave
- Log in to the Flutterwave Dashboard.
- Go to Settings β API Keys and copy your Secret Key.
- In your Admin Panel β Settings β Processors β Flutterwave page, paste the Secret Key.
- Go to the Flutterwave Webhooks page and add:
https://yourdomain.com/webhook-flutterwave
LemonSqueezy
- Log in to LemonSqueezy.
- Create a product in LemonSqueezy.
- Create variants for:
- One-time Payments (Monthly, Quarterly, Biannual, Annual, Lifetime)
- Recurring Payments (Monthly, Annual)
- Go to Settings β API Keys and generate an API key.
- In your Admin Panel β Settings β Processors β LemonSqueezy page, paste:
- API Key
- Store ID (found in store settings)
- Each Variant ID for your products
- Go to Settings β Webhooks and create a webhook with URL:
https://yourdomain.com/webhook-lemonsqueezy - Select events:
order_createdsubscription_payment_success
- Copy the Signing Secret and paste it into the LemonSqueezy tab in your Admin Panel.
Klarna
- Log in to the Klarna Portal or Klarna Playground Portal (development).
- Go to Settings β Klarna API Keys page.
- Generate your new Klarna API key & make sure to copy both the Username and Password.
- In your Admin Panel β Settings β Processors β Klarna page, paste the keys and save.
Plisio
- Log in to your Plisio Dashboard.
- Ensure your domain is connected and your crypto wallets are properly configured.
- Navigate to the API page, then click on the Site Settings button for your connected domain.
- Copy the generated Secret Key and paste it into your Admin Panel β Settings β Processors β Plisio page.
- Specify the list of cryptocurrencies you wish to accept, choose your default currency, and save the settings.
1pay
- Log in to your 1pay account.
- Find your checkout instance name. If your checkout domain is
yourname.1pay.ch, use onlyyourname. - Go to the API settings page and copy your API Key.
- In your Admin Panel β Settings β Processors β 1pay page, enable 1pay payments, paste the instance name and API key.
- Select the currencies that you want to accept through 1pay.
- Create a new webhook in your 1pay account and set the webhook URL to:
https://yourdomain.com/webhook-onepay - Make sure the webhook sends JSON requests.
- Copy the Webhook Signing Key and paste it into your Admin Panel β Settings β Processors β 1pay page.
- Optionally add a Look&Feel Profile ID if you want to use a custom 1pay checkout design.
- Optionally add a Subscription Cancellation Interval if you want to use a custom cancellation period for recurring payments. Use the PHP interval format, such as
P1Mfor one month. - Save the settings and make a test payment to confirm the integration works properly.
Revolut
- Log in to your Revolut Business dashboard.
- Navigate to the Settings page, then click on the APIs sidebar link, then in the Merchant API section.
- Copy the generated API secret Key, paste it into your Admin Panel β Settings β Processors β Revolut page, and save the settings.
Taxes & Billing
Use the Taxes & Billing system to collect billing information and apply taxes to paid plans.
Enable taxes & billing
- Go to Admin Panel β Settings β Payment.
- Enable the Taxes & Billing system.
Create a tax
- Go to Admin Panel β Taxes.
- Select Create Tax.
- Configure the tax according to your requirements and save it.
Assign a tax to a plan
- Go to Admin Panel β Plans.
- Select the paid plan you want to configure.
- Assign the desired tax and save the plan.
Multicurrency
Multicurrency allows users to choose from the currencies you make available.
Enable multicurrency
Go to Admin Panel β Settings β Payment and configure the currencies you want to support.
Configure plan prices
Go to Admin Panel β Plans, select a plan and set its price for each supported currency.
Configure payment processors
Go to Admin Panel β Settings and enable or disable currencies individually for each payment processor.
Configure exchange rates
For automatic currency conversion, obtain an API key from FreeCurrencyAPI.com and add it under Admin Panel β Settings β Payment.
The API key is optional, but recommended. It converts transactions to your default currency so administrative statistics remain consistent across multiple currencies.
Webhook verification
Each webhook which comes from the Admin panel β Settings β Webhooks page, includes a unique ID, a timestamp, and a signature in each request. These values are sent as HTTP headers and are required for verification.
On your endpoint, you must read the raw request body, rebuild the signed payload, and verify the signature using your webhook secret key.
The signed payload is created in the following order:
webhook_id.webhook_timestamp.raw_body
The signature is generated using HMAC SHA-256, base64-encoded, and sent in the
Webhook-Signature header with a v1, prefix.
You must also validate the timestamp and reject requests outside a 5-minute window to prevent replay attacks.
Use the following PHP example to verify incoming webhooks:
/* Get webhook related headers */
$webhook_id = $_SERVER['HTTP_WEBHOOK_ID'] ?? null;
$webhook_timestamp = $_SERVER['HTTP_WEBHOOK_TIMESTAMP'] ?? null;
$webhook_signature = $_SERVER['HTTP_WEBHOOK_SIGNATURE'] ?? null;
if (!$webhook_id || !$webhook_timestamp || !$webhook_signature) {
http_response_code(400);
die();
}
/* 5 minute tolerance replay window */
if (abs(time() - (int) $webhook_timestamp) > 300) {
http_response_code(400);
die();
}
/* Get raw posted body of the request */
$raw_body = file_get_contents('php://input');
/* Start regenerating the signature */
$signed_payload = $webhook_id . '.' . $webhook_timestamp . '.' . $raw_body;
/* Webhook secret key from the admin panel */
$secret_key = settings()βwebhooksβsecret_key;
/* Strip the version from the webhook signature */
$signature_key = substr($webhook_signature, strlen('v1,'));
/* Generate expected signature to compare */
$expected_signature = base64_encode(
hash_hmac('sha256', $signed_payload, $secret_key, true)
);
/* Compare the signatures */
if (!hash_equals($expected_signature, $signature_key)) {
http_response_code(401);
die();
}
/* Continue with your own processing */
OpenAI integration
Connect your system to the OpenAI API to enable AI-powered features such as AI translation.
Create an API key
- Log in to the OpenAI API Platform.
- Open the API Keys page for the project you want to use.
- Create a new secret key and optionally give it a descriptive name, such as
Production Website. - Copy and securely store the generated API key. The full secret key is only displayed when it is created.
Configure 66biolinks
- Go to Admin Panel β Settings β Main β Other settings.
- Paste the API key into the OpenAI API key field.
- Save the settings.
API billing
OpenAI API usage is billed separately from ChatGPT subscriptions. Configure API billing in your OpenAI API Platform account if required.
Google Safe Browsing
The Safe Browsing integration will automatically check all url's that are submitted by your users with Google to see if they are malware, spam or any other threats.
- Go to Google Developers Console page and make sure you are logged in.
- Now you need to create a new project.
- Now you need to search for the SafeBrowsing API in the API Library and make sure to enable it.
- Go to the Credentials page by clicking on the link in the sidebar.
- Click on the Create Credentials button and select API Key
- Copy your freshly created API Key
- Go to your Product's Admin Panel -> Settings -> Links and enter the Google Safe Browsing API Key that you copied.
AIX plugin
This is the installation documentation for the AIX plugin.
- Download the product files from Codecanyon after purchasing & unzip them.
- Upload the
aixfolder to your 66toolkit installation,pluginsfolder. - Go to your installation website β Admin panel β Plugins β Find the
AIXplugin and enable it.
This is the documentation for the OpenAI API. It is used to provide the Documents, Images, Speech to Text & Chat functionality.
- Go to OpenAI API Keys page and make sure you are logged in.
- Make sure to create a new secret key and copy the new key.
- Go to your Admin Panel -> Settings -> AIX and enter the OpenAI API Key that you copied.
- Make sure to enable and configure the system however you want from this page as well & save the new settings.
- You can now control the plan limitations the same as with all the plan settings, from the Admin panel β Plans section.
This is the documentation for the ClipDrop API. It is used to provide the Images (StableDiffusion) functionality.
- Go to ClipDrop API Keys page and make sure you are logged in.
- Make sure to reveal your API KEY and copy that.
- Go to your Admin Panel -> Settings -> AIX and enter the ClipDrop API Key that you copied.
- Make sure to save the new settings.
- You can now control the plan limitations the same as with all the plan settings, from the Admin panel β Plans section.
Hosting & Domains
Managed Cloud Hosting
- βοΈ Cloudways - use code ALTUM for 20% off your first 3 months
Shared Hosting
- π·οΈ Namecheap - affordable beginner option
- π SiteGround - beginner-friendly shared hosting
Self-managed VPS Hosting
- π©πͺ Hetzner - use affiliated link for 20β¬ credit
Domains
- π·οΈ Namecheap - good prices and a good user experience
We recommend Cloudways for beginners or intermediates. We currently use Hetzner for hosting and Namecheap for domains for all AltumCode websites.
Frequently asked questions
Answers to common questions and troubleshooting issues.
This is usually caused by an incorrect server rewrite configuration.
Nginx: Make sure you completed the Nginx setup.
Apache:
- Make sure the
.htaccessfile was uploaded. - Make sure the
.htaccessfile has the correct permissions, usually644. - Make sure
mod_rewriteis enabled on your server. - Restore the original
.htaccessfile if it was modified.
- If your server uses
.htaccess, try removing its first line. Some server configurations do not support it. - If the error occurs when submitting a form, your web host may be blocking the request. Try disabling
mod_securityor contact your hosting provider.
Spam registrations cannot be completely eliminated, but the available protection features can significantly reduce them.
- Email confirmation - Admin Panel β Settings β Users
- Captcha - Admin Panel β Settings β Captcha
- Country blocking - Admin Panel β Settings β Users
- Email domain blocking - Admin Panel β Settings β Users
- Automatically delete unconfirmed or old users - Admin Panel β Settings β Users
- Bulk delete users - Admin Panel β Users
- Email Shield plugin - adds blacklist and additional signup protection
- Open your product database using a database manager such as phpMyAdmin.
- Open the
userstable and find your admin account. - Set its password to
$2y$10$uFNO0pQKEHSFcus1zSFlveiPCB3EvG9ZlES7XKgJFTAl5JbRGFCWy. This temporarily sets the password toadmin. - Delete the folder inside
uploads/cache/to clear the cache. - Log in and immediately change your password.
- Open your product database using a database manager such as phpMyAdmin.
- Open the
settingstable and find thecaptchakey. - Edit its
valueand change"login_is_enabled":trueto"login_is_enabled":false. - Delete the folder inside
uploads/cache/to clear the cache.
Go to Admin Panel β Languages β {language name} β Translate app to change static website text.
It is recommended to create a new language instead of editing the original one, so your changes are not overwritten during future updates.
Advanced users can also edit the language files directly:
- User side:
app/languages/english#en.php - Admin side:
app/languages/admin/english#en.php
Create a new language from Admin Panel β Languages β Create language, then use Translate app to translate its strings.
Advanced users can also duplicate the original language files and follow the same naming format: language_name#language_code.php.
Your server is limiting the number of form fields that can be submitted at once.
Increase the PHP max_input_vars setting to the value displayed under Admin Panel β Languages β {language name} β Translate app.
Contact your hosting provider if you cannot change this setting yourself.
- Page structure and components: edit
themes/altum/views/index/index.php. - Text: use the language system.
- Images: go to Admin Panel β Settings β Custom images.
- Custom landing page: go to Admin Panel β Settings and configure the Custom landing page URL.
Choose the method that best matches what you want to customize:
- Theme colors: Admin Panel β Settings β Theme
- Custom CSS: Admin Panel β Settings β Custom CSS
- CSS files: edit the files in
themes/altum/assets/css/ - SCSS: edit and recompile the source files (advanced)
Support for custom design work is not included.
- Back up your product files and database.
- Move both to the new server.
- Update the
config.phpfile with the new server and database details. - Verify that all configuration values are correct for the new hosting environment.
Social Logins
Follow these updated steps to set up additional login methods via popular social networks. Make sure to use HTTPS for all redirect URIs and verify your domains when required.
Facebook Login
- App Domains
- Privacy Policy URL
- Terms of Service URL
- App Icon (recommended)
Your domain must be verified if requested.https://yourdomain.com/login/facebookGoogle Login
openid,email,profile.https://yourdomain.com/login/googleTwitter (X) Login
https://yourdomain.com/login/twitterhttps://yourdomain.com/Discord Login
https://yourdomain.com/login/discordLinkedIn Login
https://yourdomain.com/login/linkedinMicrosoft Login
https://yourdomain.com/login/microsoftApple Login
com.yourdomain.web. This Services ID is the Client ID that you will enter in the Admin Panel.- Select the primary App ID created in the previous step.
- Under Domains and Subdomains, add your domain without the protocol, for example:
- Under Return URLs, add:
Save the configuration.yourdomain.com.https://yourdomain.com/login/apple.p8private key file. Apple only allows this file to be downloaded once, so store it securely..p8file with a text editor and copy its full contents, including theBEGIN PRIVATE KEYandEND PRIVATE KEYlines.- Client ID β the Services ID identifier.
- Team ID β your Apple Developer Team ID.
- Key ID β the identifier of the downloaded private key.
- Private Key β the complete contents of the
Enable Apple Login and Submit..p8file.If you send emails to users who choose Appleβs private relay address, configure Appleβs email relay service for your sending domain as well. See Appleβs private email relay documentation.
GitHub Login
https://yourdomain.com/.https://yourdomain.com/login/github