Installation

Setup your app

Remove the installer, then configure the app

Make sure you have removed installer folder before moving forward. Installer should not be usable after installation but remove it anyway. Also please make sure you have removed the zip file containing the script. We don't want it to be stolen

Upon vising your website for the first-time, you'll see a blank page with no content what-so-ever. This is normal as you are able to create everything yourself

Visit admin-area by going to https://yourwebsite.com/admin/

Use the email & password you entered during installation to login. First thing you want to do in admin-area is visiting "Setting -> Seo & Brand" and entering your brand name, shortname & upload icon & logos. Upon these changes script will recreate manifest.json which is used by browsers to identify PWAs ( your website becomes installable for users ). Next thing is uploading user-avatar-placeholder & cover-placeholder. Items will not display correctly if there is no cover or fallback-cover provided for them. Also visit "Setting -> Themes -> Theme setting" and define your brand's color

By default, the only defined content-objects for app is Blog. If you plan on using music, podcast, radio, audiobook or etc in your app, go to "Setting -> Plugins" and install the plugins you like. Also visit "Setting -> Tools -> Tool manager" and install any tool that might be useful for your business. Upon installing plugins/tools, the admin-area & client-end become upgraded automatically and you just need to refresh them. More info

Next thing is content. Generally, there are 3 ways to generate content

  1. Upload them yourself: You can use the admin-area or client-end to upload your content. You can provide different kind of sources such as audio, video, Youtube or SoundCloud. You can share them for free, sell them one by one or offer subscription plans
  2. Let users upload: Allow user to upload free-content, or upload premium content after they request & get verified on becoming a manager More info. Users can provide different sources as well
  3. Use APIs to automate: Use Spotify, YouTube, Busyowl's API & etc to fully automate content populating. More info

After generating content, you need to link or display them in your pages. In order to do that, you can use Page Builder. Installing extensions will upgrade Page Builder as well and add related widgets. Use those widgets to display content in different styles. More info. You can also use Menu builder to change menu link/behavior

Development/Production mode

RKHM does a lot of caching on both server & client end. This is extremely useful as it will save bandwidth & resource usage for you & clients alike. But it can be a nuisance during customization or when building your app

To help you with editing, we have added production mode to the app. It disables most of caching done by service worker & etc.

To enable/disable production mode, you need to edit "path_to_rkhm\api\app\config_user.php" and set production to false or true. Leaving production value as "false" will put the script into development mode, resulting in cache being disabled and more logs & errors & reports produced

Users' access are stored in their session record to reduce SQL query count. This means that your changes to Roles might take time to effect for new users. While editing, you can set session_live to true to disable access caching

You also need to disable browser's cache during editing. To do that ( in Chrome ), press Ctrl + Shift + I or select Developer tools from More tools in Chrome's menu, select Network tab and check Disable cache

The Incognito feature of Chrome can also be used to test edits

Make sure you set production to true & session_live to false before launching your project

There are something that you better decide and set before starting to publish content

Storages

If you are planning on using third-party servers or services to host your files, set them up before uploading content. You can setup as many storages as you wish and micro manage them but currently we don't offer and solution to move content from 1 storage to another

FFmpeg - HLS Encryption

No matter what you are planning on using RKHM for, we can say with confidence that HLS can help you & your clients. HLS encrypted files are semi-bound to URL address, so you can't change your web-address later. We use FFmpeg to HLS-encrypt files, make sure you test & enable ffmpeg. It's not a requirement but we highly suggest doing it. You don't have to install FFmpeg on your server, static build is already included in the files and there is a 99% chance it will work on your server as well!

Currency

RKHM support multi-currencies but if your main currency differs from USD, we suggest you change it before setting any price. If you change your default currency later, you have to edit all prices as they won't get exchanged automatically

Language

RKHM supports multi-languages as well. If your main language differs from English, change it before editing texts. Language is decided for users based on their IP address or the language they prefer otherwise it will fallback to default language

Session setting

Setting new session-setting might not effect previously-created ones. We suggest you change them before allowing people to user your website

Email setting

Not setting email server setting or setting wrong credentials can cause script to freeze whenever it requires to send an email, for example during password restoration process